holdec

  • loads ELF, PE, MZ and Amiga binaries
  • has support for i386 and m68k
  • has a GUI
  • contains over 20 different passes which are executed for a total of about 50 times to produce correct and compact source code
  • uses SSA (single static assignment) as its internal main data structure
  • cope with functions which use a framepointer as well as functions without one
  • supports a variety of user input to specify for example extra non-code areas in the binary, volatile memory locations or function signatures
  • the function signatures go beyond the classical signatures of C by allowing for example to specify multiple result values in multiple registers, passing flag registers or stack changes
  • requires Java 6 to run
  • Limitations

    A decompiler usually assumes a static non-changing program: self-modifying code is also not not supported by holdec. The implemented type system is currently in a non-working condition and only basic type information (operand size in bytes and signedness).

    Future

    As there are always ways to improve the holdec decompiler is not finished. Currently planned are FPU and SIMD support, improved naming of functions and variables. ]]>

    Leave a Reply

    Your email address will not be published. Required fields are marked *