Jump to content

Recommended Posts

Posted (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"

and

Construction: 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: 0

Fuzzy seed: -237697471

Camouflage fully deployed

BIN version 3, 3, 6, 1

A2E version 3, 3, 6, 1

##########POST BUILD CAMO>

Sub Interface: Window

Compiler unpack - Not packed with upx warning

DNB 0

CMP 2

VRL 2057

PBC 0

ACE 0

BIN C:\Program Files\AutoIt3\Aut2Exe\AutoItSC.bin

A2E C:\Program Files\AutoIt3\Aut2Exe\Aut2exe.exe

SUB win

DBG 1

DCA 0

TMP 0

DCE 0

OUT C:\Users\john\Documents\AUDFS\Camo\AutoIt3Camo\test.exe

IN C:\Users\john\Documents\AUDFS\Camo\AutoIt3Camo\test.exe

DIR: C:\Users\john\Documents\AUDFS\Camo\AutoIt3Camo\

BIN: C:\Program Files\AutoIt3\Aut2Exe\AutoItSC.bin

A2E: C:\Program Files\AutoIt3\Aut2Exe\Aut2exe.exe

If 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 by JohnOne

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Posted (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 by Mobius

wtfpl-badge-1.png

Posted

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.

Posted (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.

Respect

Vlad

Edited by Mobius

wtfpl-badge-1.png

Posted (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 by JohnOne

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Posted (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 <- Optional

Type = 24

Index/Name = 1

Lang = 1033

File = #@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 by Mobius

wtfpl-badge-1.png

Posted (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 by Mobius

wtfpl-badge-1.png

  • 2 weeks later...
Posted (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 proper

header and tail sequences can be saved to in the popup menu in the gui

Header: #cs A3C

Tail : #cs ;A3C

This as you can see simply makes use of AutoIt's '#cs' and '#ce' comment

block directives so you don't have to worry about them actually being

added 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 changes

to your config through the gui and click 'Save settings to' -> YourScriptName.au3

The changes will be saved to the source file because of the Header & Tail

wrapper sequences.

Only files with a '.au3' file extension and only those with the stated

wrapper sequences can be saved to this way, config files (cfg a3c) will

still erase the contents of the file with the config data when saved to

directly.

A copy of your source file called YourScriptName.au3.BAK will be created

whenever you save directly to a source file, this file will be overwritten

with subsequent saves so be very careful this is still only beta.

Always back up your data (particularly source), DRXL has a basic command

for handling this if you do not have an archiver on your rig.

I always want to know if AutoIt3Camo screws something up but offer no

sympathy 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 in

the section CFG_MRU. The list is maintained on the fly within this

file but the popup menu invoked via the Input button on the main

tab is only updated when AutoIt3Camo is executed.

Secondly and Optionally within the A3C_MAC config section you can

specify your own macros that can be used in configs and will appear

in 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 macro

Macros are handled in reverse order from last user defined to first

internal, So all user defined macros can contain internal macros but

if you want a user defined macro within user defined macro be sure

to keep such entrances simple because macro handling is not very robust

and does not support an infinite number of nested macro's. (more like 2)

Thirdly 'A3C.pref' can be used to define default 'A3C_' based options

That are checked every time you open another config and used only when

your current config does not have an option entrance for a particular

option specified in A3C.pref.

Finally any grouped config options [A3C_RES|PBE|VER|PAT] that exist in

A3C.pref will be added to all configs that are loaded into AutoIt3Camo

if 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 shown

in the input popup menu under the templates heading.

It is not set in stone what these files are for, since they could be

used as project or config files or just templates of certain options

you want to load into the gui before saving it as a config or embedding

in an au3 script.

Templates loaded via this gui menu are simply loaded like config files

with settings in them and settings found in A3C.pref being used at the

same time.

Which is not the same as loading a config and a template at the same

time from the commandline.

> Commandline options <

Switch '~SH' added to allow for a silent build, log output will be

written to a file in the construction (script) directory.

When loading a config file via the commandline an optional second file

commandline 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 accumilated

with the second file taking place of the default settings described in

A3C.pref above.

> Adapt icon indexes option <

A3C_AII

if enabled when you add icon resources and enter an index value that is

less than the main icons index, those icons will have thier indexes

increased by the current specified value plus the main icon index.

> Execution without waiting <

In the Execute tab or config section, when specifying the program you

can now add an exclamation character '!' to the beggining of the field

to 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 your

output with optional commandline parameters while being able to close

or minimize AutoIt3Camo. If this is the case then the program parameter

only 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 system

you could try the following:

Specify for the compiler (A3C_A2E) the path to Aut2Exe not Aut2Exe_x64

Then specify the path to the 64 bit interpreter (A3C_BIN) AutoItSC_x64

Then construct as normal. (and test on a 64 bit rig)

> Interface Changes / Fixes <

The gui is self explanetory and differences will be obvious but here

are some basic highlights:

Log control can now be popped out to an independant window to ease

viewing 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 the

Resources - 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 clicking

the 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 by Mobius

wtfpl-badge-1.png

Posted (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: 0

Fuzzy seed: 1547001848

Camouflage fully deployed

BIN version 3, 3, 6, 1

A2E version 3, 3, 6, 1

##########PRE BUILD CAMO>

Sub Interface: Window

Compiler unpack - Not packed with upx warning

AII 0

DNB 0

CMP 2

VRL 2057

PBC 0

ACE 0

BIN C:\Program Files (x86)\AutoIt3\Aut2Exe\AutoItSC_x64.bin

A2E C:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe_x64.exe

KOR 0

SUB win

DBG 1

DCA 0

TMP 0

DCE 0

IRI 99

OUT C:\Users\Admiral\Desktop\A3C_20.4bb\tests\MsgBox.exe

IN C:\Users\Admiral\Desktop\A3C_20.4bb\tests\MsgBox.au3

DIR: C:\Users\Admiral\Desktop\A3C_20.4bb\tests\

BIN: C:\Program Files (x86)\AutoIt3\Aut2Exe\AutoItSC_x64.bin

A2E: C:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe_x64.exe

Edited by AdmiralAlkex
Posted

Aye its supposed to warn you of its incompatibilities on every start otherwise you might forget :mellow:

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

wtfpl-badge-1.png

Posted

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.

wtfpl-badge-1.png

Posted (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 by Mobius

wtfpl-badge-1.png

  • 2 weeks later...
Posted

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

Regards,

4Eyes

Posted

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

Regards,

4Eyes

Could 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.

wtfpl-badge-1.png

Posted

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

Posted (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.

Secondly

You 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 on

Open 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 by Mobius

wtfpl-badge-1.png

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
×
×
  • Create New...