Jump to content

SOFA v0.2


xwinterx
 Share

Recommended Posts

Script Obfuscator For AutoIt

version 0.2

Here is my first release of SOFA. I think I have done decently for my first release. Now, this is a very simple code obfuscator. It has not been tested extensively, one of the reasons it was put up here. Please try it and give some feedback. There are some known limitations which will be listed below. I will be working to fix those in my spare time. I've done this in the past week or so, working on it on and off. Hope I can eventually come up with a decent obfuscator for everyone.

Smoke and EncodeIt were my inspiration as you will see. The encoding of the text is pretty simple and would appreciate anyone pm-ing me who could help me out with a more complex way of encoding text. Thanks!

Known Limitations

- You MUST declare all non-local variables at the beginning of your code.

- Does not import #Include statement.

- GUIOnEvent mode is not supported. (v0.2.1)

- Does not support the usage of quotes inside of apostrophes to include the quotes for output. You must use the Chr() command to insert the quotes. The example below shows how to code the given line:

Bad: FileWriteLine( Dude! )

Good: FileWriteLine( Chr(34) & Dude! & Chr(34) )

- Does not support semi-colons (:shocked: in non-comment usages for inserting into output. The comment stripping will truncate your code. You must use the Chr() command to insert semi-colons. The example below shows how to code the given line:

Bad: MsgBox(4096, "Test!", "One;Two;Three")

Good: MsgBox(4096, "Test!", "One" & Chr(59) & "Two" & Chr(59) & "Three")

- Variable names should not contain underscores _ or the complete variable name may not be obfuscated. This can also happen if variables contain similar names at the beginning as well. This is usually the case when variables are named similar such as:

$var

$var_new

$var_old

$thisvar

$thisvaragain

- Constants or Variables that are imported via #Include (ie. $GUI_HIDE) must be declared in the main script.

- HotKeySet has arguments obfuscated incorrectly (v0.2.1)

Change Log

v0.2.1:

- Fixed incorrect replacement of HotKeySet arguments.

- Fixed incorrect replacement of arguments to support GUIOnEvent Mode.

SOFA_v0.2.0000_released.au3

SOFA_v0.2.1_released.au3

Edited by xwinterx
Link to comment
Share on other sites

Its because fileinstall doesn't handle variables :( so in your parsing I'm guessing your using StringRegExp which you should be using just do a check to see if it is fileinstall and if it is don't mess with it simple :shocked:

I think it has to do with how your arguments are in your fileinstall statement. I had some scripts that had problems and some that didn't when I was using EncodeIt. I'm looking at it now. Got the guieventmode figured out as well as hotkeyset.

Link to comment
Share on other sites

You should add more than 1 method of obfuscating scripts, and maybe a random function and variable creator so we could obfuscate scripts more than once. That would be nice.

will do... this is just a the beginning... but since it seems that there is a new obfuscator that is being implemented with AutoIt, I may keep doing this project, but not as aggressively. :shocked:

Link to comment
Share on other sites

will do... this is just a the beginning... but since it seems that there is a new obfuscator that is being implemented with AutoIt, I may keep doing this project, but not as aggressively. :shocked:

Yep, that sort of thing can be tough, and seeing as you're a bit newer here, I have a feeling I know which one will end up being "official". But don't let that discourage ya! If anything, contact JdeB and see if you can integrate the two and work on it together. Just a thought!

What you have is a good start though!

Link to comment
Share on other sites

I just saw 2 obfuscators. I don't understand the logic; it seems to be a waste of time.

Are people making money now on thier autoIt projects?

And if you choose to not allow decompile when you compile, that's not good enough? People have found a way to crack it and decompile it anyway?

Well if that's the case, how hard would it be to make a "de-obfuscator" if would really somehow be profitable?

lolz! :shocked:

:(

PS

I would never need it. People have always complained they could never understand my code anyway. My methods are wierd.

Link to comment
Share on other sites

Yeah that is it valik doesn't change it because it would be easy to make it allow them but he doesn't for some reason.

no it wouldn't be easy, you don't know what you're talking about. Don't just assume things like that.

Do you really think that they would make every single function in AutoIt accept variables, except that one? No. It's not an easy thing to implement. In some cases, depending on what the variable is set to, it would just be impossible.

Edited by theguy0000

The cake is a lie.www.theguy0000.com is currentlyUP images.theguy0000.com is currentlyUP all other *.theguy0000.com sites are DOWN

Link to comment
Share on other sites

I just saw 2 obfuscators. I don't understand the logic; it seems to be a waste of time.

Are people making money now on thier autoIt projects?

And if you choose to not allow decompile when you compile, that's not good enough? People have found a way to crack it and decompile it anyway?

Well if that's the case, how hard would it be to make a "de-obfuscator" if would really somehow be profitable?

lolz! :shocked:

:(

PS

I would never need it. People have always complained they could never understand my code anyway. My methods are wierd.

Yes, you can decompile it even if you choose not to allow decompile. someone cracked the decompiler. I've tried it and it works. It is easy to de-obfuscate the text because it has to have a way to decode. I did it with EncodeIt v1 because the source was available to us. You can do it with mine and if you can get the source for JdBe then you can de-obfuscate his text too.

I use it not for making profit but to make it harder for folks to "steal" any little script I make and claim it as their own. I've had it happen and I am sure other people have to. Usually it's the people that ask and ask and ask people to do stuff for them and not the people who actually post their opensourced code and stuff on here.

It just makes it harder to read because of the funky non-descriptive variable and function names.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...