JohnOne Posted July 28, 2011 Posted July 28, 2011 (edited) Anyone fancy explaining to a dullard how you actually use this.I've tried dragging an exe into it, but it fails every time.I get an aut2exe error "unterminated string"andConstruction: Error 65535/in C:\Users\john\Documents\AUDFS\Camo\AutoIt3Camo\test.exe /out C:\Users\john\Documents\AUDFS\Camo\AutoIt3Camo\test.A3X /comp 2 ##########BUILDING>Padding nulled: 0Fuzzy seed: -237697471Camouflage fully deployedBIN version 3, 3, 6, 1A2E version 3, 3, 6, 1##########POST BUILD CAMO>Sub Interface: WindowCompiler unpack - Not packed with upx warningDNB 0CMP 2VRL 2057PBC 0ACE 0BIN C:\Program Files\AutoIt3\Aut2Exe\AutoItSC.binA2E C:\Program Files\AutoIt3\Aut2Exe\Aut2exe.exeSUB winDBG 1DCA 0TMP 0DCE 0OUT C:\Users\john\Documents\AUDFS\Camo\AutoIt3Camo\test.exeIN C:\Users\john\Documents\AUDFS\Camo\AutoIt3Camo\test.exeDIR: C:\Users\john\Documents\AUDFS\Camo\AutoIt3Camo\BIN: C:\Program Files\AutoIt3\Aut2Exe\AutoItSC.binA2E: C:\Program Files\AutoIt3\Aut2Exe\Aut2exe.exeIf I try adding an au3 script it just bombs out with cannot open "include file" (constants.au3)EDIT:I've tried with and without upx packed. Edited July 28, 2011 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
Mobius Posted July 29, 2011 Author Posted July 29, 2011 (edited) I got a live one here, You tried dragging an exe into it? And you expected that to work because? You got an unterminated string error because you told Aut2Exe (A2EFuzzy) to compile an A3X from a binary! Okay if it 'Bombed out' when you tried to use it properly and specified a source file, then I need to know where you have AutoIt3Camo set up, is it in your AutoIt3 install directory or somewhere else. Edited July 29, 2011 by Mobius
JohnOne Posted July 29, 2011 Posted July 29, 2011 Okay if it 'Bombed out' when you tried to use it properly and specified a source file, then I need to know where you have AutoIt3Camo set up, is it in your AutoIt3 install directory or somewhere else.I do apologize, I had it just in some other location, I put it in Autoit install directory, and it worked just fine.Lol, havent been called a "live one" for quite some time. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
Mobius Posted July 29, 2011 Author Posted July 29, 2011 (edited) I do apologize, I had it just in some other location, I put it in Autoit install directory, and it worked just fine.No need to apologize JohnOne, It is not absolutely necessary to put AutoIt3Camo in your AutoIt3 Installation directory, but it is the easiest way to get it up and running.AutoIt3Camo is highly dependant on the rules that govern the compiler (Aut2Exe) and as such trying to use it in a location other than AutoIt3 is like trying to use the compiler in a location other than its original where relative include and file detection is concerned.Your problem gave me an idea in work about having an include directory parameter, where if specified AutoIt3Camo would create the temporary compiler in this directory instead of its own directory.However I can already see a number of problems with this.Way too many limitations / workarounds necessary.Lol, havent been called a "live one" for quite some time. No offense sir, AM posting and all that.RespectVlad Edited July 29, 2011 by Mobius
JohnOne Posted July 29, 2011 Posted July 29, 2011 (edited) Cheers bud. I hope I'm not missing anything obvious here, but I have been having an issue when I add an icon. I have both the .au3 and .ico files in AutoIt3Camo folder Here is a very simple code if when compiled with your tool without an icon added with the main icon button, works like a charm. When I add the icon the combo box is not correct ($WS_VSCROLL, $CBS_DROPDOWNLIST) and it dosent work, (meaning there seems to be no content in it) EDIT: Works fine if I use #autoitwrapper to add icon, so not sure if the behaviour is expected. #include <ComboConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $hGui = GUICreate("The Gui", 209, 53, 192, 124) $hCombo = GUICtrlCreateCombo("text1", 32, 16, 145, 25, BitOR($WS_VSCROLL, $CBS_DROPDOWNLIST)) GUICtrlSetData($hCombo,"text1|text2|text3") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $hCombo _Func() EndSwitch WEnd Func _Func() MsgBox(0,"Func",GUICtrlRead($hCombo)) EndFunc Edited July 29, 2011 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
Mobius Posted July 29, 2011 Author Posted July 29, 2011 (edited) JohnOne,No you are not missing the obvious, it is my fault entirely that problems such as this occur for new users.AutoIt3Camo strips all original interpreter resources by default whenever you change or add resources, which unfortunately for so many users means the xml manifest which it would appear is necessary for visual styles and certain controls to work properly.In your configuration file put the following then reload it with AutoIt3Camo.; [A3C_RES] MANIFEST=24}1}1033}#@BIN>Or from the Resources tab in the gui:Description = Manifest <- OptionalType = 24Index/Name = 1Lang = 1033File = #@BIN>Right click on the list icon control and click add (top / bottom / Respective of existing resource items)Then construct after doing either of the above and test the output, does this fix your issue with the combo box data not being shown? Edited July 29, 2011 by Mobius
JohnOne Posted July 29, 2011 Posted July 29, 2011 I already had [A3C_RES] MANIFEST=24}1}1033}#@BIN> in the config file, must be by default I never even looked in the folder, I have no idea what it all does you see The latter solution worked fine. Thanks very glad for your time Mobius. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
Mobius Posted July 29, 2011 Author Posted July 29, 2011 (edited) If you already had the instruction to preserve the xml manifest in the interpreter in the resource section of your config when the problems occured then perhaps there is a snafu somewhere.in the config file, must be by default I never even looked in the folder, I have no idea what it all does you see I admit the embedded help button reference from the log output in the gui does not make ideal viewing, In the 'man' directory there should be a zip file ExeEmbeddedHlp which contains the same references but in text form which should ease viewing alongside the gui. Edited July 29, 2011 by Mobius
Mobius Posted August 7, 2011 Author Posted August 7, 2011 (edited) AutoIt3Camo update 0.20.4 beta, > Saving directly to Au3 script < (Thanks for the idea FireFox)A script that contains an AutoIt3Camo config wrapped in the properheader and tail sequences can be saved to in the popup menu in the guiHeader: #cs A3CTail : #cs ;A3CThis as you can see simply makes use of AutoIt's '#cs' and '#ce' commentblock directives so you don't have to worry about them actually beingadded to the output.Quickest way to do this: 1. Open your config as normal in AutoIt3Camo's gui. 2. Select 'Save settings to' button -> Clipboard (For Au3 script embedding) 3. Open your source au3 script with a code editor and paste the data where you like and save. 4. Open your source file with AutoIt3Camo.Obviously the settings are loaded as they always were, but if you make changesto your config through the gui and click 'Save settings to' -> YourScriptName.au3The changes will be saved to the source file because of the Header & Tailwrapper sequences.Only files with a '.au3' file extension and only those with the statedwrapper sequences can be saved to this way, config files (cfg a3c) willstill erase the contents of the file with the config data when saved todirectly.A copy of your source file called YourScriptName.au3.BAK will be createdwhenever you save directly to a source file, this file will be overwrittenwith subsequent saves so be very careful this is still only beta.Always back up your data (particularly source), DRXL has a basic commandfor handling this if you do not have an archiver on your rig.I always want to know if AutoIt3Camo screws something up but offer nosympathy if you fail to back up. If in doubt use config files > Local settings file 'A3C.pref' < (Thanks for the idea Borje)This file has a number of uses:Firstly AutoIt3Camo maintains a list of all configs loaded by it inthe section CFG_MRU. The list is maintained on the fly within thisfile but the popup menu invoked via the Input button on the maintab is only updated when AutoIt3Camo is executed.Secondly and Optionally within the A3C_MAC config section you canspecify your own macros that can be used in configs and will appearin the popup menu invoked via the macros button.The macro entrances are fairly simple and have the following format: Menu Item Name = MACROSTRING , String content to replace the macroMacros are handled in reverse order from last user defined to firstinternal, So all user defined macros can contain internal macros butif you want a user defined macro within user defined macro be sureto keep such entrances simple because macro handling is not very robustand does not support an infinite number of nested macro's. (more like 2)Thirdly 'A3C.pref' can be used to define default 'A3C_' based optionsThat are checked every time you open another config and used only whenyour current config does not have an option entrance for a particularoption specified in A3C.pref.Finally any grouped config options [A3C_RES|PBE|VER|PAT] that exist inA3C.pref will be added to all configs that are loaded into AutoIt3Camoif those particular entrances do not already exist within your config,making them very useful for repetetive tasks such as: Adding default interpreter resource preservation instructions. Adding entrances for programs you always use when building. Adding generic or company version information entrances. Adding global patching / camouflage routines. > A3C template sub directory < (Thanks for the idea Borje)Files with a '.a3c' extension in the A3C sub directory will be shownin the input popup menu under the templates heading.It is not set in stone what these files are for, since they could beused as project or config files or just templates of certain optionsyou want to load into the gui before saving it as a config or embeddingin an au3 script.Templates loaded via this gui menu are simply loaded like config fileswith settings in them and settings found in A3C.pref being used at thesame time.Which is not the same as loading a config and a template at the sametime from the commandline. > Commandline options <Switch '~SH' added to allow for a silent build, log output will bewritten to a file in the construction (script) directory.When loading a config file via the commandline an optional second filecommandline argument is now added for specification of a template.Example A3C.exe "Config File" "Template File"When loading two files, the options of both files will be accumilatedwith the second file taking place of the default settings described inA3C.pref above. > Adapt icon indexes option <A3C_AIIif enabled when you add icon resources and enter an index value that isless than the main icons index, those icons will have thier indexesincreased by the current specified value plus the main icon index. > Execution without waiting <In the Execute tab or config section, when specifying the program youcan now add an exclamation character '!' to the beggining of the fieldto tell AutoIt3Camo to run it without waiting before proceeding.When using this method the exitcode parameter is not necessary.This is only really useful if you wanted to build then execute youroutput with optional commandline parameters while being able to closeor minimize AutoIt3Camo. If this is the case then the program parameteronly needs to be ' !@OUT> '.Config example:[A3C_PBE]Build and Run = !@OUT> } Commandline } WorkingDir } 0 } 1 > 64 bit Problems < (Thanks to AdmiralAlkex & Emiel Wieldraaijer for crash tests)Running AutoIt3Camo on a 64 bit OS is not recommended.To compile a 64 bit version of an AutoIt3 Script on a 32 bit systemyou could try the following:Specify for the compiler (A3C_A2E) the path to Aut2Exe not Aut2Exe_x64Then specify the path to the 64 bit interpreter (A3C_BIN) AutoItSC_x64Then construct as normal. (and test on a 64 bit rig) > Interface Changes / Fixes <The gui is self explanetory and differences will be obvious but hereare some basic highlights:Log control can now be popped out to an independant window to easeviewing internal help and construction output.All config options now have a gui element. (enjoy it while it lasts)Identical entrances can no longer be added to the list views in theResources - Execution - Version Info and patches tabs.Sub language popup menu for resource and version info tabs.Clicking the input button on the main tab or left or right clickingthe icon will display a popup browse menu that includes: Basic recent config file list. (created at program start only) List of template files within the A3C sub directory. Edited March 26, 2012 by Mobius
AdmiralAlkex Posted August 7, 2011 Posted August 7, 2011 (edited) Is it supposed to say---------------------------AutoIt3Camo {Beta}---------------------------I am not 64 bit compatible---------------------------OK ---------------------------At every start? Is there a way to silent it?Also, if this is the version you mentioned in the PM, x64 still doesn't work :/Construction: Error 41004/in C:\Users\Admiral\Desktop\A3C_20.4bb\tests\MsgBox.au3 /out C:\Users\Admiral\Desktop\A3C_20.4bb\tests\MsgBox.A3X /comp 2 ##########BUILDING>Padding nulled: 0Fuzzy seed: 1547001848Camouflage fully deployedBIN version 3, 3, 6, 1A2E version 3, 3, 6, 1##########PRE BUILD CAMO>Sub Interface: WindowCompiler unpack - Not packed with upx warningAII 0DNB 0CMP 2VRL 2057PBC 0ACE 0BIN C:\Program Files (x86)\AutoIt3\Aut2Exe\AutoItSC_x64.binA2E C:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe_x64.exeKOR 0SUB winDBG 1DCA 0TMP 0DCE 0IRI 99OUT C:\Users\Admiral\Desktop\A3C_20.4bb\tests\MsgBox.exeIN C:\Users\Admiral\Desktop\A3C_20.4bb\tests\MsgBox.au3DIR: C:\Users\Admiral\Desktop\A3C_20.4bb\tests\BIN: C:\Program Files (x86)\AutoIt3\Aut2Exe\AutoItSC_x64.binA2E: C:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe_x64.exe Edited August 7, 2011 by AdmiralAlkex .Some of my scripts: ShiftER, Codec-Control, Resolution switcher for HTC ShiftSome of my UDFs: SDL UDF, SetDefaultDllDirectories, Converting GDI+ Bitmap/Image to SDL Surface
Mobius Posted August 7, 2011 Author Posted August 7, 2011 Aye its supposed to warn you of its incompatibilities on every start otherwise you might forget The log you posted is from the unfortunate private version I posted by mistake earlier, since the current version gives additional path finding output for the build files when 'extra log info' is checked or A3C_DBG option is set to 1. Just out of interest what os is that? xp / vista / w7
AdmiralAlkex Posted August 7, 2011 Posted August 7, 2011 This is what you have right now in your first post. Win7. .Some of my scripts: ShiftER, Codec-Control, Resolution switcher for HTC ShiftSome of my UDFs: SDL UDF, SetDefaultDllDirectories, Converting GDI+ Bitmap/Image to SDL Surface
Mobius Posted August 7, 2011 Author Posted August 7, 2011 This is what you have right now in your first post. Win7.In that case you must have implicitly specified the path to the build files, instead of AutoIt3Camo looking for them. Hence the lack of 'Not found' references when debug log output was enabled.For 64 bit os's I guess I will just display the message box then terminate.You can still create 64 bit exes on a 32 bit rig with the standard Aut2Exe.exe anyway so no real issue since resources are added properly and the camo elements work fine just a couple of things to nail down.
JohnOne Posted August 7, 2011 Posted August 7, 2011 Hey there Mobius. Regarding the message "Not packed with upx warning". Is there a way to have it use UPX ? AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
Mobius Posted August 7, 2011 Author Posted August 7, 2011 (edited) Hey there Mobius. Regarding the message "Not packed with upx warning". Is there a way to have it use UPX ? Hi JohnOne, The not packed with upx warning is from back in the day when Aut2Exe was distributed packed with upx. I would remove the check altogether if I did not still use those old versions, and If I do so might someone else so the check and the warning remain. So you want to pack your output with upx? If so just add an execution entry for it. For example within a config ; [A3C_PBE] Pack Output = ?@CD>UPX.exe}--best "@OUT>"}@SD>}0}1 or from the gui Execute tab: Description: pack output (unimportant) Exitcode : 0 Run : 1 Program: ?@CD>UPX.exe Commandline: --best "@OUT>" WorkingDir: @SD> Then add it to the list and then build. upx should have been executed after your program was constructed, and upx's output should go in the log window. Edited August 8, 2011 by Mobius
4Eyes Posted August 19, 2011 Posted August 19, 2011 Mobius, First, thanks for a great tool. It seems like others I'm having trouble with resources. I use the resources udf to embed some jpg's in my exe file but AutoItCamo strips them out. Well, they're not displayed when the exe is run. Oddly, the filesize seems about the same as when compiled without Camo. I've read the entire thread 3 times this AM but can't see what to do. I've tried Options/Keep original options checked and unchecked. Do I need to the files in the Resources tab? If so, how do I spec the Index/Name field. Sorry, I don't mean to burden you with noob questions, but I can't work it out. Regards, 4Eyes
Mobius Posted August 19, 2011 Author Posted August 19, 2011 Hi 4Eyes,Mobius,First, thanks for a great tool.It seems like others I'm having trouble with resources. I use the resources udf to embed some jpg's in my exe file but AutoItCamo strips them out. Well, they're not displayed when the exe is run. Oddly, the filesize seems about the same as when compiled without Camo. I've read the entire thread 3 times this AM but can't see what to do. I've tried Options/Keep original options checked and unchecked. Do I need to the files in the Resources tab? If so, how do I spec the Index/Name field. Sorry, I don't mean to burden you with noob questions, but I can't work it out. Regards,4EyesCould I see the entire AutoIt3Camo config file you are using?Are you adding the images to the interpreter before using AutoIt3Camo ?Don't use "Keep orginal resources" it is merely a debugging option since output executables built with this option enabled are not fit for distribution.
4Eyes Posted August 20, 2011 Posted August 20, 2011 Mobius, I have no AutoIt3Camo config file. I've changed no options at this point. What I have is a script that uses graphic images for buttons. I use Zedna's excellent Resources UDF to 'include' these in the exe file. I compile with obfuscator enabled then spec the obfuscated script in the 'Input' control in a3c.exe. The output of a3c works, just doesn't have the graphics. The filesize is less by about the size of the missing graphics. I'm sure I'm doing something idiotically. Regards, 4Eyes
Mobius Posted August 20, 2011 Author Posted August 20, 2011 (edited) 4Eyes,So you are adding the jpg images to the interperter before using AutoIt3Camo, that is fine, however you will need to add some instructions to the resources tab to tell AutoIt3Camo to not delete them and the xml manifest.Firstly Open the file A3C.pref within AutoIt3Camo's directory with your code editor and scroll down until you come to a config section named [A3C_RES], add the following line within this section and save the file.Manifest=24}1}1033}#@BIN>Why add it to the file A3C.pref? So that AutoIt3Camo will add this instruction to every other config that does not already contain it, which saves you adding it yourself to your config files.SecondlyYou will need to create resource instructions similar to the above manifest preservation instruction for each of your images. This will require a config file which should be saved in the directory of your script.At this point I have no idea what resource parameters you used when you added the images to the interpreter so certain parameters in the example below would be replaced with the parameters of your image resources.Example config:A3C_IN = My_Obfuscated.au3 A3C_KOR = 0 [A3C_RES] Image1 = 10 } Jpeg_1 } 0 } #@BIN> Image2 = 10 } Jpeg_2 } 0 } #@BIN> Image3 = 10 } Jpeg_3 } 0 } #@BIN> ; And so onOpen the config you created with AutoIt3Camo and construct your output. If done correctly your resources that were previously removed along with the default interpreter resources should now remain.Take a look at the output with resourcehacker or just execute it to see if this is so.If you are still having difficulty then either post or pm me a file that contains the resource udf instructions you used to add your images and I will turn this information into A3C resource preservation instructions for you.Vlad Edited August 20, 2011 by Mobius
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now