Hex-RaysPlugin

Program-Transformation.Org: The Program Transformation Wiki
http://www.hex-rays.com
http://hexblog.com/2007/04/decompilation_gets_real.html
http://www.hexblog.com/hexrays/manual

Hex-Rays is a decompiler-like visualisation plug-in for the IDA Pro disassembler. As of May 2007, it is in limited beta testing. It currently supports 32-bit x86 only (Windows, Linux, and presumably Intel OS/X), and relies on the intermediate representation of a program as interactively created in IDA Pro. Version 5.1 of IDA Pro is required. Floating point is not supported at present. The output is not designed to be recompiled. Output is quite C-like, and affords an overview of a binary program.

Procedures can be viewed one at a time, or there is an option to translate all procedures to C, or just a selected range of code. Some procedures fail to be decompiled for various reasons. Compound conditionals, arrays, and structures are supported, and functions are inlined into expressions. Parameters and returns are handled as per the disassembly view. While in the pseudocode (decompiled) view, you can perform a (currently) very limited set of commands, including following calls, returning to the caller, and renaming functions and variables. Comments cannot be added at present, due to the lack of a suitable coordinate system.

All in all, this decompiler shows great promise for when it is released.

-- MikeVanEmmerik - 30 May 2007