- General Machine Code to C Decompiler
- Free Windows I64 target edition
- Interactive Windows GUI
Features of C Decompiler
While function analysis alone provides information of the function’s control flow, only global program analysis can reveal the full details of the function’s interaction with the program.
Type Detection and Propagation
Data types are deduced from operations performed on the data and then propagated and synchronized globally.
Full Data Flow Analysis
Machine code has to work around CPU characteristics like the limited number of registers or operator location restrictions. Full data flow analysis facilitates the elimination of irrelevant data transfers and provides clear and short C code.
Machine Code to C
The low level features of C allow expressing most machine code functions in C. It is not relevant if the function was initially written in C or any other stack frame based language, including Assembler.
Static decompilation has its limits and needs user guidance to provide missing context. Interactive manipulations, directly at the source allow you to guide the decompilation process. E.g. change a function’s ABI to restrict its return value locations or add missing destinations to a computed call.
No Compiler Detection
Global analysis provides the information to make compiler based assumptions obsolete. General compiler patterns are only employed as a last resort to resolve situations where information are missing, e.g. both, a called function’s code and its signature are not available.
Function Signatures Library
Detection of known functions from static compiler libraries shortens the decompile process and introduces additional type information. The build-in signature generator enables the user to extend the library with required signatures.