Jump to content
Patrick09

Au3Stripper - I think that does not work properly

Recommended Posts

Patrick09

Hello,

I have this file (e.g. "script.au3"):

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Run_Au3Stripper=y
#Au3Stripper_Parameters=/SOI /SF=0 /SV=0 /RM /SCI=0
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

Const $const1 = "const1";

Dim $var1 = "var1"

Func Func1()
  Local $var2 = "var2";
EndFunc

and the result ("script_stripped.au3" - Au3Stripper v15.503.1200.0, including Beta version) is:

#Region
#AutoIt3Wrapper_Run_Au3Stripper=y
#Au3Stripper_Parameters=/SOI /SF=0 /SV=0 /RM /SCI=0
#EndRegion
Const $0 = "const1"
Dim $1 = "var1"

Where is the function ("/SF=0")?

The result is right when "/SV=1":

#Region
#AutoIt3Wrapper_Run_Au3Stripper=y
#Au3Stripper_Parameters=/SOI /SF=0 /SV=1 /RM /SCI=0
#EndRegion
Const $0 = "const1"
Dim $1 = "var1"
Func _0()
EndFunc

Maybe... If the existing (unused) global constants/variables is correctly.

And if it is all right, I think it would improve the documentation (e.g. https://www.autoitscript.com/autoit3/scite/docs/SciTE4AutoIt3/Au3Stripper.html, https://www.autoitscript.com/wiki/AutoIt3Wrapper_Directives - and also unite it, including AutoIt3Wrapper GUI).

Wiki: Lack of mention of: /rsln

AutoIt3Wrapper GUI:

Possible Parameters:
/so : This is the default when no parameters are provided. same as /sf + /sv
/sf : Strip all unused Func's
/sv : Strip all unused Global var records.
/mo : Just merges the Include files into the source and strips the Comments.
      This is similar to aut2exe and helps finding the errorline.
/soi: same as /so but will leave master script untouched.
/mi : Sets the maximum Iterations Au3Stripper will perform. Default is 5.
/Beta: Use Beta Includes.

Lack of mention of: /PE, /RM, /SCI, /rsln

Thank you and have a nice day :-)

Edited by Patrick09

Share this post


Link to post
Share on other sites
Jos

@Patrick09,

Thanks for your elaborate report. The reason your test is giving strange results is that you are using conflicting parameters which confuses au3stripper.
You start with /soi which tells au3stripper to leave the main script intact and only process included files, but then you continue with telling it to strip/not-strip funcs and/or vars.

Currently AU3Stripper translates the below parameters to "let's do a standard stripping" when /MergeOnly isn't defined.
#Au3Stripper_Parameters= /SF=0 /SV=0
I could change that so Au3Stripper tells you that there is nothing to do.

The /RM option is currently not an option you can use without also activating the stripping function. It was initially also removed from the old Obfuscator source as it is still an form of Obfuscation but they were able to convince me that it would drastically minimize the size of the source stored in the EXE.
I remember having considered simply getting rid of all these options and making it sweet and simple but don't remember why I didn't any more as I wish I done that. :)

I am going to have a look to see if any of these conflicting parameters can be supported or better warnings given and will also check out the reported inconsistencies in AutoIt3Wrapper and Doc's. Others can look at the Wiki for you.

Jos

Edited by Jos

Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
Patrick09

Thank you for your response (I'm going to wait for the results) :-)

Share this post


Link to post
Share on other sites
Jos

Just give the current Beta version a spin to see if I missed anything.
I remove the /StripOnlyIncludes (/soi) option as that has been broken beyond repair ever since I converted Obfuscator to Au3Stripper and, since nobody reported this, I can only assume this is not really needed. 

The /rm should now also work when /sv=0 and /sf=0.

*** Updated AutoIt3Wrapper v15.503.1200.x (Jos)
    - 15.503.1200.1: Removed obsolete Debug console messages.
    - 15.503.1200.2: Updated dropdownlist with scrollbar. (argumentum)
    - 15.503.1200.3: Added logic to ensure we have the proper SciTE Director handle in case of multiple instances.
    - 15.503.1200.4: updated the GUI with the proper available options for au3stripper.

*** Updated Au3Stripper v15.503.1200.x (Jos)
    - 15.503.1200.1: Added check for File encoding for include files and strip the BOM which was leading to an invalid merged script.
    - 15.503.1200.2: Updated some logic for /SV /SF /RM and removed /SOI as that was broken beyond repair

Jos

Edited by Jos

Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
Patrick09

Thank you. It looks like it works (I tested only these parameters: /SF /SV /RM) :-)

/PE - I don't know what it means... "Replace and reference to a Global Const variable with its actual value"

But this information is correct ("/SV")? => "Strip all unused Global var records"

And I think there's a little typo (in the log file: Au3Stripper.log): "/RenameMinmum" vs "/RenameMinimum"

Share this post


Link to post
Share on other sites
Jos
  • There is also a typo in the /PreExpand text and should be: "Replace any reference to a Global Const variable with its actual value."
  • /sv description should be: "Strip unused Global and Local variable declarations (Default = 1)"
  • Fixed the typo in the program for the log for next version.

tnx

Jos

Edited by Jos

Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

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

×