# avast-tl/retdec

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/avast-tl-retdec).**

8,556 stars · 992 forks · C++ · MIT

## Links

- GitHub: https://github.com/avast-tl/retdec
- Homepage: https://retdec.com/
- awesome-repositories: https://awesome-repositories.com/repository/avast-tl-retdec.md

## Description

Retdec is an LLVM-based machine code decompiler and static binary analysis tool designed for binary reverse engineering. It translates binary executable code into high-level representations to facilitate the reconstruction of program logic from compiled machine code.

The system utilizes a retargetable frontend architecture and a multi-stage lifting pipeline to convert raw bytes into a common intermediate language. It differentiates custom program logic from known library code through signature-based identification and provides utilities for binary symbol demangling to restore human-readable names.

The toolkit covers a broad range of static analysis capabilities, including the reconstruction of high-level functions, types, and class hierarchies. It also provides visualization tools to generate call graphs and control-flow diagrams to map the execution structure of decompiled binaries.

## Tags

### Operating Systems & Systems Programming

- [Decompilers](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/decompilers.md) — Translates compiled binary machine code back into higher-level source code to facilitate reverse engineering. ([source](https://github.com/avast-tl/retdec#readme))
- [Reverse Engineering Tools](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/reverse-engineering-tools.md) — Provides comprehensive tools for analyzing the internal logic and structure of compiled binaries.
- [Program Logic Recovery](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-file-reconstructions/program-logic-recovery.md) — Recovers original function calls, data types, and class hierarchies from stripped binary executables.
- [Intermediate Representation Lifting](https://awesome-repositories.com/f/operating-systems-systems-programming/cross-architecture-binary-analysis/intermediate-representation-lifting.md) — Translates machine code into a common intermediate representation to facilitate cross-architecture analysis and optimization.
- [Static Binary Analysis](https://awesome-repositories.com/f/operating-systems-systems-programming/static-binary-analysis.md) — Analyzes compiled binaries without execution to extract debugging information and determine program structure.
- [Retargetable Binary Frontends](https://awesome-repositories.com/f/operating-systems-systems-programming/retargetable-binary-frontends.md) — Provides a pluggable architecture to support various CPU architectures through a shared decompilation backend.
- [Symbol Demanglers](https://awesome-repositories.com/f/operating-systems-systems-programming/symbol-demanglers.md) — Restores human-readable function and variable names from compiled binaries to improve code readability.

### Programming Languages & Runtimes

- [Binary Logic Analysis](https://awesome-repositories.com/f/programming-languages-runtimes/language-internals-analysis/binary-logic-analysis.md) — Analyzes compiled binaries to reconstruct high-level functions, types, and execution logic.

### Software Engineering & Architecture

- [Control Flow Analysis Tools](https://awesome-repositories.com/f/software-engineering-architecture/control-flow-analysis-tools.md) — Reconstructs logical execution paths and branching structures from binary code via static analysis.
- [Decompiled Project Reconstructions](https://awesome-repositories.com/f/software-engineering-architecture/source-file-organization/source-export-utilities/decompiled-project-reconstructions.md) — Recovers functions, types, and class hierarchies from machine code to restore original program logic. ([source](https://github.com/avast-tl/retdec#readme))
- [Linked Library Stripping](https://awesome-repositories.com/f/software-engineering-architecture/binary-linking-interfaces/linked-library-stripping.md) — Identifies and strips statically linked library code using signature-based detection to isolate custom logic. ([source](https://github.com/avast-tl/retdec#readme))
- [Control-Flow Graph Generation](https://awesome-repositories.com/f/software-engineering-architecture/control-flow-logic-models/control-flow-graph-generation.md) — Generates visual call graphs and control-flow graphs representing the logical execution paths of functions.
- [Symbolic Type Inference](https://awesome-repositories.com/f/software-engineering-architecture/schema-based-type-systems/type-hierarchies/symbolic-type-inference.md) — Infers original data structures and class hierarchies by analyzing memory access patterns and offsets.

### Development Tools & Productivity

- [Library Code Identification](https://awesome-repositories.com/f/development-tools-productivity/signature-based-identification/library-code-identification.md) — Identifies and filters out known library code using signature matching to isolate custom program logic.

### Security & Cryptography

- [Malware Analysis](https://awesome-repositories.com/f/security-cryptography/malware-analysis.md) — Supports malware analysis by identifying malicious patterns and unpacking binaries to isolate logic.

### Part of an Awesome List

- [Reverse Engineering Tools](https://awesome-repositories.com/f/awesome-lists/devtools/reverse-engineering-tools.md) — Retargetable machine-code decompiler based on LLVM.
