Jump to content

Obfuscator (discontinued)


Jos
 Share

Recommended Posts

  • Developers

Item 3 "Stripping of includes in #cs & #ce" partially solved :D. It works if the include in #cs & #ce is in the main script, but not if the include in #cs & #ce itself is in an include.

Is fixed in v 1.0.26.22 soon to be uploaded.

Thanks

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

- You were missing the /CN=0 for Strip only in the Example.

Not fully true as encryption of Funcname, Varnames, Macros and Numbers will change the line length.

I am not even going to try to make all possible exceptions possible with all parameter combinations and take the approach that when anything is going to be obfusticated then the max line length supported by obfuscator will be 2048.

My mistake. Will these combinations currently disable the 2048 line limit? I'm not asking you to go against your statement above, just want to find out what works currently.

/cn=0 /cs=0 /cf=0 /cv=0

or

/om /cn=0 /cs=0

Thanks again for your hard work!

Edited by wraithdu
Link to comment
Share on other sites

  • Developers

My mistake. Will these combinations currently disable the 2048 line limit? I'm not asking you to go against your statement above, just want to find out what works currently.

/cn=0 /cs=0 /cf=0 /cv=0

or

/om /cn=0 /cs=0

Thanks again for your hard work!

The first line makes Obfuscator don't do anything I guess so don;t see why you would want to use that one?

The second line Obfuscates Functions and Variables thus there is a Line length check.

I basiccally use tis logic to determine StripOnly (No check for Line length):

This is the logic I have for "StripOnly" :

Either "/so" or "/StripOnly"in the parameter list or:

If (StripUnUsedFunc% = 1 or StripUnUsedVars% = 1) _
And ConvStrings% = 0 _
And ConvNumerics% = 0 _
And ConvFuncs% = 0 _
And ConvVars% = 0 Then
    StripOnly% = 1
EndIf

Jos :D

Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Alright, so what's the logic with the new /om switch? That switch should only make lines shorter, so when used as you showed:

/sf /sv /om /cs=0 /cn=0

then there should be no line check?

For reference here, what is the origin of the line lenght limitation? Is it the encryption mechanism you use?

Edited by wraithdu
Link to comment
Share on other sites

  • Developers

Alright, so what's the logic with the new /om switch? That switch should only make lines shorter, so when used as you showed:

/sf /sv /om /cs=0 /cn=0

then there should be no line check?

For reference here, what is the origin of the line lenght limitation? Is it the encryption mechanism you use?

The /OM switch only tells Obfuscator to used a different (than standard) way of Obfuscating Funcnames and VariableNames.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • 1 month later...

Really to fix it (obfuscator passes a function "_Hello") ?

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/striponly
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

_Msg("_Hello")

Func _Msg($function)
    Call($function)
    ;HotKeySet("{F1}",$function)
EndFunc

Func _Hello()
    MsgBox(0,"","Hello")
EndFunc
Link to comment
Share on other sites

  • Developers

Really to fix it (obfuscator passes a function "_Hello") ?

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/striponly
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

_Msg("_Hello")

Func _Msg($function)
    Call($function)
    ;HotKeySet("{F1}",$function)
EndFunc

Func _Hello()
    MsgBox(0,"","Hello")
EndFunc

Try avoiding to use the CAll() functions when it is not needed, but when it is required you can just add this to your script:

#Obfuscator_Ignore_Funcs=_hello

There are warnings about using Call() and Obfuscator anyway.

It doesn't when using the /SO parameter.

Jos

Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • Developers

It doesn't when using the /SO parameter.

Uploaded v 1.0.28.0 to the Beta directory that will warn about Call functions when using /SO.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Running Obfuscator (1.0.28.0) from:C:\Program Files\AutoIt3\SciTE cmdline:/Beta

- Invalid Obfuscator option:

-### StripOnly Error: Found ObjEvent() statement using unsolvable Func, which will/could lead to removal of Funcs that are used by the Call() statement.

>### current Func: _IEErrorHandlerRegister

C:\Program Files\AutoIt3\Beta\include\ie.au3(3102,1) Warning for line:$oIEErrorHandler = ObjEvent("AutoIt.Error", $s_functionName)

-### StripOnly Error: Found ObjEvent() statement using unsolvable Func, which will/could lead to removal of Funcs that are used by the Call() statement.

>### current Func: __IEInternalErrorHandlerDeRegister

C:\Program Files\AutoIt3\Beta\include\ie.au3(3746,1) Warning for line:$oIEErrorHandler = ObjEvent("AutoIt.Error", $sIEUserErrorHandler)

-#############################################################################################

-#### Obfuscator Found 2 Error(s)!!!! This means your script could have problems running properly. ####

-#############################################################################################

How ca i solve the problem

Link to comment
Share on other sites

  • Developers

How ca i solve the problem

Don't use a variable in the ObjEvent() as Obfuscator has no idea what the value is of the variable.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • 2 weeks later...

Version 1.0.28.0

When running Obsfucator I get the following warning message which I think is related to the /Beta option

- Invalid Obfuscator option:

apart from that it seems to work OK.

#AutoIt3Wrapper_Run_Obfuscator=Y
#Obfuscator_Parameters=/SO


>"C:\Autoit3\Scite\AutoIt3Wrapper\AutoIt3Wrapper.exe" /beta /in "C:\AutoIt3Data\Scripts\Profiler\Profiler.au3" /autoit3dir "C:\Autoit3\beta"
+>23:28:07 Starting AutoIt3Wrapper v.2.0.0.3    Environment(Language:0409  Keyboard:00000809  OS:WIN_XP/Service Pack 3  CPU:X64 OS:X86)
>Running Tidy (2.0.29.0)  from:C:\Autoit3\Scite\tidy
Documentation file:C:\AutoIt3Data\Scripts\Profiler\Profiler_tidy.txt
+>23:28:10 Tidy ended.rc:0
>Running AU3Check (1.54.19.0)  params:-q -d -w 1 -w 2 -w 3 -w 4 -w 6  from:C:\Autoit3\beta
+>23:28:10 AU3Check ended.rc:0
[b]>Running Obfuscator (1.0.28.0)  from:C:\Autoit3\Scite cmdline:/Beta
- Invalid Obfuscator option: [/b]
- Iteration 1 Strip Functions result: Output  3431 lines and stripped 3368 lines
- Iteration 2 Strip Variables result: Output  1569 lines and stripped 1818 lines
- Iteration 3 Strip Variables result: Output  1529 lines and stripped 40 lines
+> Source    18754 lines 1036389 Characters.
+> Stripped  5226 Func/Var lines and  11929 comment lines, Total 968853 Characters.
+> Saved     91% lines 93% Characters.
+> Obfuscator v1.0.28.0 finished created:C:\AutoIt3Data\Scripts\Profiler\Profiler_Obfuscated.au3

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning."- Rick Cook

Link to comment
Share on other sites

  • Developers

Version 1.0.28.0

When running Obsfucator I get the following warning message which I think is related to the /Beta option

- Invalid Obfuscator option:

apart from that it seems to work OK.

It's a cosmetic issue when multiple spaces are used in the commandline.

Fixed in v 1.0.28.1 available in the Beta directory.

Thanks

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • Developers

Jos.

I think you broke something in 1.0.28.1.

Yeap... I did mess up the /cs param logic. Made a simple change to the programs and didn't really do any complex testing.

Those always prove to be the ones you screw up the easiest. :)

Anyways, Uploaded a new version that "should" process the commandline parameters correctly again.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Hallo Jos,

First of all, a great thumbs up for /Obfuscate_minimum !

Since i always (manually) post process the /om output, i've noticed that variables

always have 3 characters (a simple '$a' -> '$' 'replace all' yields 7 kB for me)

So...couldn't obfuscator, when generating shortened variable names, start off with

2 character ones, and only switch to 3 chars when it runs out of 2 char names ?

Note that i'm well aware there could be good reasons for doing it as it's done

now, and that i don't mind the post processing - it's just an idea

cheers,

wim

Link to comment
Share on other sites

Hallo Jos,

First of all, a great thumbs up for /Obfuscate_minimum !

Since i always (manually) post process the /om output, i've noticed that variables

always have 3 characters (a simple '$a' -> '$' 'replace all' yields 7 kB for me)

So...couldn't obfuscator, when generating shortened variable names, start off with

2 character ones, and only switch to 3 chars when it runs out of 2 char names ?

Note that i'm well aware there could be good reasons for doing it as it's done

now, and that i don't mind the post processing - it's just an idea

cheers,

wim

Changing from 3 character to 2 character wouldn't make any appreciable difference in the size.

George

Question about decompiling code? Read the decompiling FAQ and don't bother posting the question in the forums.

Be sure to read and follow the forum rules. -AKA the AutoIt Reading and Comprehension Skills test.***

The PCRE (Regular Expression) ToolKit for AutoIT - (Updated Oct 20, 2011 ver:3.0.1.13) - Please update your current version before filing any bug reports. The installer now includes both 32 and 64 bit versions. No change in version number.

Visit my Blog .. currently not active but it will soon be resplendent with news and views. Also please remove any links you may have to my website. it is soon to be closed and replaced with something else.

"Old age and treachery will always overcome youth and skill!"

Link to comment
Share on other sites

Changing from 3 character to 2 character wouldn't make any appreciable difference in the size.

That depends on how you define that, i would call 2% (YMMV) appreciable ...

and, in case this was not clear, i was just trying to provide (possibly useful) feedback,

as i said, i don't mind having to do a post processing step

cheers,

wim

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

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