Sign in to follow this  
Followers 0
tom13

Wrap AutoIT executable inside an other language such as c++?

18 posts in this topic

#1 ·  Posted (edited)

Hi there,

I have been looking for ways to avoid false virus reports and strangers from decompiling my AutoIT executables. Now I have heard something about wrapping an autoit executable inside an other programming language.

I'm not experienced at all with other programming languages and thus was wondering whether such thing is possible - and if so, how it'd work?

My main reason for this is because I have spend a couple of months on a program and I do not want randoms to simply decompile all my hard work. It'd also make my authentication system quite useless.

Thanks in advance.

- Tom

Edited by tom13

Share this post


Link to post
Share on other sites



@ Pain,

Well - I can not use while loops etc. then right? I can only use the AutoIT functions?

Share this post


Link to post
Share on other sites

A While loop would be something like this

AU3_While 1;
    AU3_sleep(100);
AU3_WEnd;

Share this post


Link to post
Share on other sites

What about a function? and how are you going to call that function?

Can you do everything using that dll as you can by compiling normal autoit?

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Well, "to basically any function". Function, indeed.

I am however pretty sure that general AutoIT scripting structure such as creating functions and using them are not possible this way, can anyone confirm that?

EDIT:

Not to mention settings such as mouse click delays and tray icon options etc., right?

Edited by tom13

Share this post


Link to post
Share on other sites

Update,

The special AutoItX helpfile only lists functions and all things such as creating functions and loops are removed. So I think it's pretty safe to assume that such autoit scripting structure is not possible by using that dll.

So, is it possible to somehow bind a autoit executable within a c++ binary so decompiling isn't possible anymore (or very very very hard and nearly impossible)?

Share this post


Link to post
Share on other sites

Update,

The special AutoItX helpfile only lists functions and all things such as creating functions and loops are removed. So I think it's pretty safe to assume that such autoit scripting structure is not possible by using that dll.

So, is it possible to somehow bind a autoit executable within a c++ binary so decompiling isn't possible anymore (or very very very hard and nearly impossible)?

What is everybody going on about these days?

Just for the record: AutoIt3 is a Scripting language, nothing more nothing less... use it as such!

Answer: yes it is possible as this is exactly what aut2exe is doing, but if you are soo damn worried about it then just learn a programming language that has a true compiler available.

Jos


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

Share this post


Link to post
Share on other sites

#10 ·  Posted (edited)

What is everybody going on about these days?

Just for the record: AutoIt3 is a Scripting language, nothing more nothing less... use it as such!

Answer: yes it is possible as this is exactly what aut2exe is doing, but if you are soo damn worried about it then just learn a programming language that has a true compiler available.

Jos

Well learning a complete new programming language isn't something you do in a couple of minutes.

I think it's more then understandable to atleast look for an alternative before going into that hell, which it really is for me.

Anyway, I guess the bottom line is that such alternative unfortunately does not exist, right? I would sleep a lot better if you could confirm this aswell. :)

Edit: search results such as http://www.codeproject.com/KB/cpp/UpdateResource.aspx gave me hope, but I guess it doesn't work like that. Or well, I don't know anymore, I'm hopelessly confused.

Edited by tom13

Share this post


Link to post
Share on other sites

Start>Run>Iexpress.exe (?)

It compiles files in one single auto extracting cabinet with exe extension


Some Projects:[list][*]ZIP UDF using no external files[*]iPod Music Transfer [*]iTunes UDF - fully integrate iTunes with au3[*]iTunes info (taskbar player hover)[*]Instant Run - run scripts without saving them before :)[*]Get Tube - YouTube Downloader[*]Lyric Finder 2 - Find Lyrics to any of your song[*]DeskBox - A Desktop Extension Tool[/list]indifference will ruin the world, but in the end... WHO CARES :P---------------http://torels.altervista.org

Share this post


Link to post
Share on other sites

#13 ·  Posted (edited)

Start>Run>Iexpress.exe (?)

It compiles files in one single auto extracting cabinet with exe extension

The only thing iexpress.exe does is compressing. When you execute the new .exe you'll see in taskmanager that you are simply loading the old exe which has been extracted to a temporary folder, which can then be decompiled (aka completely useless).

You can make some (core) functions in helper DLL (compiled in C++). DLL files can't be decompiled.

That is interesting, though I am confused as you can't call those functions made in c++ in your AutoIT script right?

So it is true that you can not write all AutoIT structures in the c++ file by including the AutoItX.dll, but only the functions (so you can not use the autoit loops etc.)?

Thanks a lot.

Edit:

Eg. would this be correct?

_AU3_func _example($blabla = 0)
_AU3_if ($blabla) then
_AU3_exit
_AU3_endif
_AU3_endfunc

_AU3__example(1)

I think not.

Edited by tom13

Share this post


Link to post
Share on other sites

Hmm yeah, so then you need to know how to create DLLs.

There is no alternative right?

Share this post


Link to post
Share on other sites

Hmm yeah, so then you need to know how to create DLLs.

There is no alternative right?

The bottom line here, is you obviously you need to know another language to accomplish what you want. There's no quick fix (or everyone would be doing it).

[center]Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.[/center]

Share this post


Link to post
Share on other sites

Hmm yeah, so then you need to know how to create DLLs.

There is no alternative right?

You can create DLL files also in another programing languages for example: Delphi, FreeBasic and so on

Share this post


Link to post
Share on other sites

#18 ·  Posted (edited)

The bottom line here, is you obviously you need to know another language to accomplish what you want. There's no quick fix (or everyone would be doing it).

Hmm okay, I thought I might be able to get a default example which I can simply past my AutoIT code into. But I guess things are a lot more complicated.

I also learned that AutoIT needs to read it's own code in "raw text" in order to execute succesfully. While I thought that it would still be able to do this when bound to another executable (if that is even possible), I heard it is not.

So, I was thinking about using the .dll - but then I found out that it's not possible to do things such as _AU3__while etc., can only use AutoIT functions here.

So, I think that what I want is not accomplishable. If I am wrong however I'd like to hear so. :) Otherwise the only option is to learn some real language and delay my program for a couple of years.

Thanks for the help.

Edited by tom13

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
Sign in to follow this  
Followers 0