RetDec is a reverse engineering framework and static binary analysis tool. Its primary purpose is to function as an LLVM-based machine code decompiler that translates binary machine code from multiple architectures into high-level C source code.
The system employs a multi-stage lifting pipeline to recover program logic, using an intermediate representation to apply optimizations before emitting source code. It distinguishes itself through the ability to identify compilers and packers, perform executable unpacking, and reconstruct class hierarchies and original program structures.
The framework covers broad capability areas including binary metadata extraction from formats like DWARF and PDB, symbol demangling, and the generation of call and control-flow graphs. It also provides tools for object file extraction and binary signature generation.
The analysis and decompilation components can be embedded into external software projects using provided headers and build scripts.