Decompiling FAQ

From AutoIt Wiki
Jump to: navigation, search

Below are frequently asked questions about decompiling AutoIt scripts.

Is there a decompiler available?

Yes, sort of. The official decompiler will only decompile scripts compiled with AutoIt v3.2.5.1 and earlier. Any script compiled with a version later than that will not decompile.

Where can I find the decompiler?

If the version of AutoIt is v3.2.5.1 or lower, then the decompiler is located at C:\Program Files\AutoIt3\Extras\Exe2Aut\Exe2Aut.exe by default. The directory may be different if you performed a custom installation. For all other newer versions, the decompiler has been removed.

What if I need to decompile a script compiled with a newer version of AutoIt?

You are mostly out of luck. Take the opportunity to learn how to properly back up your important files. The developers can decompile scripts but you must be prepared to prove you own the script. This is not done very often and the developers reserve the right to say no for any reason.

Is there a 3rd-party decompiler?

Yes. There is software in existence which can decompile all versions of AutoIt. Creation or use of such software may be a violation of the law depending on your local laws. DO NOT USE IT.

What happens if I use the 3rd-party decompiler?

If you mention you have used a 3rd-party decompiler you will be permanently blocked from the forum and issue tracker. You may be blocked for any of the following:

* Admitting you have decompiled your own script with a 3rd-party decompiler.
* Admitting you have decompiled another user's script with a 3rd-party decompiler.
* Posting any script that has been decompiled by a 3rd-party decompiler.

This includes decompiling scripts users have posted in binary-only form. Under no circumstances are scripts to be decompiled unless the author grants their explicit permission and the script can be decompiled with the official decompiler.

Are my compiled scripts safe?

No. Any unscrupulous user may decompile your compiled script. There is not much you can do to stop decompilation. A determined user will get your source code if they truly want it.

I designed a counter-measure to break the 3rd-party decompiler, may I share it?

No. It is theoretically possible to modify compiled scripts in a way that it still works but a decompiler fails to extract the source. However, tools that are capable of doing this violate the reverse engineering clause of the AutoIt license (the very same clause the 3rd-party decompiler violates).

Where in the AutoIt license does it mention decompilation?

This clause:

Reverse engineering. You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.

That clause covers both reverse engineering how AutoIt works (in order to create a working decompiler or a counter-measure to decompiling) as well as decompilation of compiled scripts.