Jump to content

Recommended Posts

Posted (edited)

the right way is to obfuscate the code and next think is to compile normali right .?

For my first problem ,, a guy from this forum ( i dont now if a can put there username) she tell me the problem is #include files ,,,, ,,, i resolve that problem , now I can obfuscate the code ,, but when I execute te exe file I have a Global$ Error ..(see img) , where is my mistake ? :)

post-44835-1246214479_thumb.png

Edited by GameIDevelp
  • Developers
Posted (edited)

the right way is to obfuscate the code and next think is to compile normali right .?

For my first problem ,, a guy from this forum ( i dont now if a can put there username) she tell me the problem is #include files ,,,, ,,, i resolve that problem , now I can obfuscate the code ,, but when I execute te exe file I have a Global$ Error ..(see img) , where is my mistake ? :)

Please stop posting in this thread about generic syntax problems.

As I mentioned: Obfuscation will only work on clean/proper code.

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.
  :)

Posted

sorry for problem that i make ....

Where to ask about obfuscator problem .?

I will not post on this page again .

You not read my first post on this page where is code " in the code not exist any errors" because is an exemple of library autoit .

  • Developers
Posted (edited)

sorry for problem that i make ....

Where to ask about obfuscator problem .?

I will not post on this page again .

You not read my first post on this page where is code " in the code not exist any errors" because is an exemple of library autoit .

When you have a clean running script via AutoIt3 and the Obfusctated exe doesn't work then send/pm me the following info in a zip file and I will have a look:

- original source and all none standard include files.

- Obfuscator.log from the Obfuscator program directory.

- output script.exe

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.
  :)

  • Developers
Posted

The PMed obfuscated source works fine for me using AutoIt3 v3.3.

You are using V3.2.2 which is missing the Function BinaryToString() :

20th May, 2007 - v3.2.4.5

Added: BinaryToString() for binary buffer to ANSI string quick conversions.

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.
  :)

Posted (edited)

Is this a known issue (or non-issue) with the /so option of Obfuscator?

The example below runs fine from Scite or when compiled without "/so".

With "/so", the user-defined function Input_Form1() is dropped.

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


$Current_Form = "1"
Call("Input_Form" & $Current_Form)
Exit

Func Input_Form1()
    MsgBox(1,"","I'm not going to be included in the compile")
EndFunc

Edit: I just found reference to a "GUICtrlSetOnEvent(-1, $Func[$i])" statement in this loooong thread. It looks like that is a similar question. I guess I'd best wrap the portion I want to protect in an "#obfucator=off/#obfuscator=on" block?

Edited by Spiff59
Posted (edited)

Known 'issue'

#660934

Obfuscator can handle Functions that use a UDF name in its parameters as long as this parameter is a literal string.

It will never ever work when it contains variables as it will not be able to determine its value at run time.

So I assume your Func is identified as not used and thus stripped. Edited by KaFu
Posted (edited)

Spiff59, as long as a function isn't directly called, and is either in a variable or in a string, Obfuscator doesn't recognize it as being 'in use'. The following directive helps obfuscation, but *NOT* for strip-only obfuscation (which I wish they'd change the operation on:

#Obfuscator_Ignore_Funcs=Input_Form1
; (above does NOT work correctly for strip-only)

Spiff59, what I do to fix the problem is to directly call the function. Either call it after an 'Exit' or 'Return' statement inside another function. For example:

Func Obfuscator_ForceNoStrip()
    Return
    Input_Form1()  ; doesn't actually get called here, as it occurs after the Return
        ;However, as long as Obfuscator_ForceNoStrip() is called, this line forces Input_Form1 to not be stripped
EndFunc

Add this line to your main code, and you won't have the function stripped:

Obfuscator_ForceNoStrip()

*edit: sorry, I called you spiffy not spiff59 :) my bad!

Edited by ascendant
Posted

Hello,

since many monthes I use the obfuscator with all my scripts without any problem.

Now I added many new functions to one of my scripts. The AU3Check works without errors. If I compile the large script with using the obfuscator, the obfuscator crashes at the end of his work, but it seams, the obfuscator has done his job. The AU3Check for obfuscated file runs without errors, also the aut2exe.exe.

Crashes means, I got a windows with from XP: "Obfuscator has detect a problem... [close] [send to M$]" [sorry, free translation :) ]

Here an extract of the obfuscator.log

0.00 AutoIt3 Source Obfuscator v1.0.26.13   Copyright © Jos van der Zande  May 27, 2009
0.00 CommandLine  Params$:
0.00 ============================== Reading Source For Directive ======================================================
0.36 Ignore Function: onautoitstart
0.36 Ignore Function: onautoitexit
0.36 Directive  Params$:/cs=1 /cn=1 /cf=1 /cv=1 /sf=1 /sv=1 
...
...
119.58 ===================================================================================================
+> Source   47380 lines 2260239 Characters.
+> Stripped  10946 Func/Var lines and  27719 comment lines, Total 1916730 Characters.
+> Saved     81% lines 84% Characters.
+> Obfuscator v1.0.26.13 finished obfuscating 9327 lines, created:H:\projects\\ruKernelTool\ruKernelTool_V0.1.0.4_Obfuscated.au3
119.64 ############################## Done #####################################################################

I tried to compile this script on a second PC with the same result. I reinstalled autoit and scite completely, nothing helps.

What can I do?

Many thanks in advance

R@iner

  • Developers
Posted

Spiff59, as long as a function isn't directly called, and is either in a variable or in a string, Obfuscator doesn't recognize it as being 'in use'. The following directive helps obfuscation, but *NOT* for strip-only obfuscation (which I wish they'd change the operation on:

#Obfuscator_Ignore_Funcs=Input_Form1
; (above does NOT work correctly for strip-only)
Thought I did that already? :

v 1.0.26.12: Added support for #OnAutoItStartRegister and #ignorefunc. the funcs defined in these directives are not stripped.

What version are you testing with? :)

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.
  :)

  • Developers
Posted

Hello,

since many monthes I use the obfuscator with all my scripts without any problem.

Now I added many new functions to one of my scripts. The AU3Check works without errors. If I compile the large script with using the obfuscator, the obfuscator crashes at the end of his work, but it seams, the obfuscator has done his job. The AU3Check for obfuscated file runs without errors, also the aut2exe.exe.

Crashes means, I got a windows with from XP: "Obfuscator has detect a problem... [close] [send to M$]" [sorry, free translation :) ]

Here an extract of the obfuscator.log

0.00 AutoIt3 Source Obfuscator v1.0.26.13   Copyright © Jos van der Zande  May 27, 2009
0.00 CommandLine  Params$:
0.00 ============================== Reading Source For Directive ======================================================
0.36 Ignore Function: onautoitstart
0.36 Ignore Function: onautoitexit
0.36 Directive  Params$:/cs=1 /cn=1 /cf=1 /cv=1 /sf=1 /sv=1 
...
...
119.58 ===================================================================================================
+> Source   47380 lines 2260239 Characters.
+> Stripped  10946 Func/Var lines and  27719 comment lines, Total 1916730 Characters.
+> Saved     81% lines 84% Characters.
+> Obfuscator v1.0.26.13 finished obfuscating 9327 lines, created:H:\projects\\ruKernelTool\ruKernelTool_V0.1.0.4_Obfuscated.au3
119.64 ############################## Done #####################################################################

I tried to compile this script on a second PC with the same result. I reinstalled autoit and scite completely, nothing helps.

What can I do?

Many thanks in advance

R@iner

First give the latest Beta version a try and when the hardcrash remains please zip up all needed sourcefiles and PM them to me to recreate the issue and do some debugging.

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.
  :)

Posted

First give the latest Beta version a try and when the hardcrash remains please zip up all needed sourcefiles and PM them to me to recreate the issue and do some debugging.

Ok, I tried the Obfuscator 1.0.26.15 (I hope this is the latest beta) and the crash occurs too.

I will send you a PM

Thanks in advance

R@iner

Posted (edited)

What version are you testing with? :)

With the Ignore_Funcs directive I get these results:

; Autoit v3.3.0.0, Obfuscator 1.0.26.13, Au3Check 1.54.14.0

#Region;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/so
#Obfuscator_Ignore_Funcs=Input_Form1
; Obfuscator_Ignore_Funcs generates an 'Invalid Compiler directive' from the AutoIT3Wrapper GUI (2.0.0.0)
#EndRegion;**** Directives created by AutoIt3Wrapper_GUI ****


$x = "1"
Call("Input_Form" & $x)
Exit

Func Input_Form1()
; With Obfuscator_Ignore_Funcs, this func makes it into the output from obfuscator.
    Input_Form1_subfunction();  This line eventually causes Au3Check to generate an "undefined function" error
EndFunc

Func Input_Form1_subfunction()
; This function doesn't make it into the obfuscated source  
  Beep(800,100)
EndFunc

So, have I told Obfuscator to simply ignore parsing the Input_Form1() function and pass it through to the output. And that causes any functions/variables first referenced inside the ignored routine to be dropped from the output because Obfuscator considers them unreferenced? Is that what Ignore_Funcs does?

Or, is it meant to force the function name onto the list of referenced functions and then still scan/parse the function normally? It may be I could use some sort of Obfuscator_Force_Funcs directive?

Edit: Or, I could always use some 'strip' parameters that are less broad than "/so" :)

Edited by Spiff59
  • Developers
Posted

Ok, I tried the Obfuscator 1.0.26.15 (I hope this is the latest beta) and the crash occurs too.

I will send you a PM

Thanks in advance

R@iner

Uploaded v 1.0.26.16 which should resolve the stack corruption.

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.
  :)

  • Developers
Posted

So, have I told Obfuscator to simply ignore parsing the Input_Form1() function and pass it through to the output. And that causes any functions/variables first referenced inside the ignored routine to be dropped from the output because Obfuscator considers them unreferenced? Is that what Ignore_Funcs does?

Or, is it meant to force the function name onto the list of referenced functions and then still scan/parse the function normally? It may be I could use some sort of Obfuscator_Force_Funcs directive?

Edit: Or, I could always use some 'strip' parameters that are less broad than "/so" :)

Why does this always get more complex than initially anticipated? :)

Just uploaded a new Beta version 1.0.26.17 that will mark Funcs used inside an #Obfuscator_Ignore_Funcs defined func as being used too.

See if that works as it should be...

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.
  :)

Posted

Why does this always get more complex than initially anticipated? :)

Just uploaded a new Beta version 1.0.26.17 that will mark Funcs used inside an #Obfuscator_Ignore_Funcs defined func as being used too.

See if that works as it should be...

Jos

Version 1.0.26.17 seems to be working perfectly with the code example I posted above. And if I use the beta AU3Wrapper GUI 2.0.0.1, it doesn't complain about invalid compiler directives. All is right with the world (from my viewpoint, at least).

Nicely done, thank you very much, and all that.

Posted (edited)

Thought I did that already? :

v 1.0.26.12: Added support for #OnAutoItStartRegister and #ignorefunc. the funcs defined in these directives are not stripped.

What version are you testing with? :)

Ahh, I was working with an earlier version, I didn't know there was a new version, thought it'd be listed on the first post in this thread. Is there a new place the History of changes is placed?

Also, what is the new directive '#ignorefunc' - I didn't see it in the online help.

(*edit: found #OnAutoItStartRegister (part of the new beta changes)

Thanks!

Edited by ascendant
Posted

[Obfuscator-Crash]

Uploaded v 1.0.26.16 which should resolve the stack corruption.

Jos

It works without problems!

Thank you very much for your quick help!

R@iner

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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