What is New

Want to see all news? Click here.

New Version: 1.5

15 Nov 2013

A new version 1.5 of the retargetable decompiler is now up and running! The leading features of this version are reconstruction of simple data types, reconstruction of instruction idioms produced by a compiler into a more readable form, addition of more options to the decompilation form, and several new optimizations of the generated high-level language.

A list of changes:

  • added reconstruction of simple data types
  • added reconstruction of instruction idioms
  • added more options to the decompilation form, namely
    • a -O3 optimization parameter when decompiling from C
    • selecting a compiler when decompiling from C (GCC and Clang)
    • selecting a new instruction set: ARM+Thumb
  • added new optimizations of the generated high-level language, namely
    • conversion of if/else-if/else constructs into switch statements
    • movement of negation inside expressions (e.g. !e1 && !e2 instead of !(e1 || e2))
    • conversion of dereferences into array accesses (e.g. p[4] instead of *(p + 4))
    • use of compound operators instead of assignments (e.g. i += 5 instead of i = i + 5)
  • added a recovery from decompilation errors (if some functions were decompiled with errors, an error message appears in the generated source code)
  • added support of decompiling more types of MIPS processors
  • various minor enhancements and bug fixes