Andromeda Decompiler

Program-Transformation.Org: The Program Transformation Wiki

The Andromeda Decompiler is still in development. At present, it will only run on Windows, and only decompile Windows-based programs to C/C++. There is a demo that is downloadable; the demo is not the complete decompiler. The loader is disabled, so it is only possible to browse the provided project, a medium sized C++ program.

There are three main views: output code, assembly language (not every instruction is visible), and hex dump. The output code can be "unfolded" (where data flow is not performed, so condition codes etc are still visible), and "unblocked" (where for example all if/then/else are replaced by if/goto). Two views (code, with or without blocking, with or without folding) or assembly can be open at once, synchronised if desired.

Whole lines can be selected with a click, or a part of an expression can be selected with a control-click. The right mouse button presents a menu of options. There are also a dozen or so commands available from the Edit menu. As an example, the eXpand command can be used to include a default arm into a switch statement (if it isn't there already).

It seems quite sensible at determining types for variables, and seems to determine parameters and returns correctly. It may have trouble with indirect calls. However, there are commands for manually changing these things.

Overall, this is very impressive. It may be rather compiler specific (i.e. makes assumptions about the compiler that compiled the input binary file).

The author hopes to provide some documentation on the above web site soon (as of mid October).

See also the Andromeda Decompiler Test page.