Sign in to follow this  
Followers 0
xwinterx

SOFA v0.2

23 posts in this topic

#1 ·  Posted (edited)

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

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

I love you.

LOL not that way but ive been needing one of these for quite some time.

/edit w00t 100 posts!

Edited by Bounda

Share this post


Link to post
Share on other sites

I love you as well. >_> Nice job!


[center][/center]Working on the next big thing.Currently Playing: Halo 4, League of LegendsXBL GT: iRememberYhslaw

Share this post


Link to post
Share on other sites

thanks! my first attempt. going to try it on my more complex scripts to see what else I need to work on.

Share this post


Link to post
Share on other sites

Havent tried it but be sure to not mess with fileinstall :shocked:

Share this post


Link to post
Share on other sites

Havent tried it but be sure to not mess with fileinstall :shocked:

ooooo.... never thought of that. I'll try it out tonight.

thanks!

Share this post


Link to post
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:

Share this post


Link to post
Share on other sites

Ever since Smoke_N removed his obfuscator, i've been desperate. Thanks for this i'll have to try it out sometime.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Updated to support HotKeySet and GUIOnEventMode.

Share this post


Link to post
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.

Share this post


Link to post
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:

Share this post


Link to post
Share on other sites

what I like about having 2 obfuscators is that they usually migrate to make one huge mega obfuscator lol.

Share this post


Link to post
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!

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

#17 ·  Posted (edited)

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

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

unless you randomize the variable/func names...


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

Share this post


Link to post
Share on other sites

unless you randomize the variable/func names...

Meant only the text. Variables and function names are completely randomized. So you can decode "text" but not the variable/function names.

Share this post


Link to post
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
Sign in to follow this  
Followers 0