RetDec:基于 LLVM 的可重定向机器码反编译器安装与使用指南
RetDec 是一个基于 LLVM 的可重定向机器码反编译器,不局限于特定架构、操作系统或可执行格式。它能对 ELF、PE、Mach-O、COFF、AR、Intel HEX 及原始机器代码做静态分析,还原出 C 与类 Python 两种高级语言输出,并生成调用图、控制流图与各类统计信息。
说明:RetDec 目前处于「有限维护模式」(limited maintenance mode),基础维护仍在继续,但近期提交在 12 个月内(shields 显示最近提交为 5 月),版本 v5.0,仍可正常用于反编译分析。
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | https://github.com/avast-tl/retdec |
| 官方网站 | https://retdec.com |
| 开源协议 | MIT |
| 主要语言 | C++(约 74.1%) |
| Star 数 | 8.7k+ |
| 支持格式 | ELF、PE、Mach-O、COFF、AR、Intel HEX、原始机器码 |
| 支持架构 | x86 / x86-64、ARM / ARM64、MIPS、PIC32、PowerPC |
二、官方图片
RetDec 仓库社交预览图:

三、环境要求
- 支持平台:Windows 7+、Linux、macOS,(实验性)FreeBSD;
- 安装需要约 5–6 GB 磁盘空间;
- 快速上手推荐直接下载官方预编译包;
- 源码编译需 C++17 编译器(GCC >= 7)、CMake >= 3.6、Git、OpenSSL >= 1.1.1、Python >= 3.4、autotools、pkg-config、m4、zlib;
- 可选:UPX(预处理解包)、Graphviz(生成调用图/控制流图)。
四、部署步骤
方式 A:下载预编译包(推荐)
从 Releases(https://github.com/avast/retdec/releases )下载稳定版预编译包,解压后阅读 retdec/share/retdec/README.md 中的说明即可使用。官方还提供 TeamCity 与 GitHub Actions 的每日构建(bleeding-edge)包。
方式 B:Docker 构建
docker build -t retdec - < Dockerfile
用本地仓库副本则用开发版 Dockerfile:
docker build -t retdec:dev . -f Dockerfile.dev
方式 C:源码编译(Linux)
git clone https://github.com/avast/retdec
cd retdec
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<安装路径>
make -jN # N 为并行编译进程数
make install
Debian/Ubuntu 可一键装齐依赖:
sudo apt-get install build-essential cmake git openssl libssl-dev python3 autoconf automake libtool pkg-config m4 zlib1g-dev upx doxygen graphviz
建议用 -DCMAKE_INSTALL_PREFIX=<路径> 本地安装到指定目录,卸载时只需删该目录。
五、使用方法
反编译一个二进制
以 test.exe 为例,各平台命令一致:
# Linux / macOS
$RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
# Windows
%RETDEC_INSTALL_DIR%\bin\retdec-decompiler.exe test.exe
更多参数执行 retdec-decompiler --help。
Docker 里运行反编译
# 先确保输入目录对容器可访问
chmod 0777 /path/to/local/directory
docker run --rm -v /path/to/local/directory:/destination retdec retdec-decompiler /destination/binary
输出文件会生成到本地目录。
输出能力
- 静态分析可执行文件并给出详细信息;
- 编译器与加壳(packer)识别;
- 加载与指令解码;
- 基于签名剥离静态链接库代码;
- 提取调试信息(DWARF、PDB);
- 重构指令惯用法、C++ 类层次(RTTI、vtable);
- C++ 符号反 mangling;
- 重构函数、类型与高级控制结构;
- 内置反汇编器,输出 C 与类 Python 两种高级语言;
- 生成调用图、控制流图与统计信息(配合 Graphviz)。
作为库集成
RetDec 安装目录内含头文件、库与 CMake 脚本,CMake 工程可直接:
find_package(retdec 5.0 REQUIRED COMPONENTS <component>)
target_link_libraries(your-project PUBLIC retdec::<component>)
六、常见问题 FAQ
Q1:最快的使用方式? 下载官方预编译包解压即可,无需自己编译;源码编译链较长。
Q2:反编译命令是什么?
retdec-decompiler 目标文件,Windows 为 retdec-decompiler.exe。
Q3:支持哪些文件格式和架构? 格式:ELF、PE、Mach-O、COFF、AR、Intel HEX、原始机器码;架构:x86/x86-64、ARM/ARM64、MIPS、PIC32、PowerPC。
Q4:需要多大磁盘空间? 安装后的 RetDec 约需 5–6 GB 空闲磁盘。
Q5:想生成调用图/控制流图怎么办? 安装 Graphviz,并在需要时配合 UPX 解包;RetDec 可据此产出 call graph 与 CFG。
Q6:项目还在维护吗? 处于有限维护模式:基础维护继续,PR 会评审,但 issue 响应较慢;仍可正常用于反编译分析。
七、跳转链接
- GitHub 仓库:https://github.com/avast-tl/retdec
- 官方网站:https://retdec.com
- Releases:https://github.com/avast/retdec/releases
- Wiki:https://github.com/avast/retdec/wiki