工具

RetDec 可重定向机器码反编译器

Avast 推出的基于 LLVM 的可重定向机器码反编译器。可处理 ELF、PE、Mach-O、COFF、AR、Intel HEX 或原始机器码,覆盖 32 位 x86、ARM、MIPS、PIC32、PowerPC 以及 64 位 x86-64 和 ARM64,能恢复函数、类型和 C++ 类层次结构,输出 C 或类 Python 语言代码,并生成调用图和控制流图。

使用条件与局限

  • README 警告 RetDec 处于有限维护模式:拉取请求会优先审阅,议题的回应会有延迟,且除基本维护相关问题外不会主动解决,开发工作也极为有限。最新发行版为 v5.0(2022-12-08);所审阅的 master 提交(2026-05-26)比它多 81 个提交,版本号仍为 5.0。
  • 发行包覆盖 Linux、macOS 和 Windows;README 列出 Windows 7+、Linux、macOS 以及实验性的 FreeBSD,每次安装约占 5–6 GB。源码构建需要支持 C++17 的编译器(GCC 7+、Visual Studio 2017 15.7+,或 macOS 10.15+ 上的完整 Xcode)、OpenSSL 1.1.1+、Python 3.4+,Windows 以外还需 autotools;CMakeLists.txt 要求 CMake 3.13,而非 README 所写的 3.6。构建时会下载固定版本的 Capstone、Keystone、YARA 和 yaramod 压缩包、Avast 维护的 LLVM 分支以及 2019 年的支持包。
  • 输入为使用者自有的可执行文件、目标文件、归档或原始机器码。自 v5.0 起,反编译器也以一组 CMake 库的形式供其他项目调用;独立的 retdec-idaplugin 和 retdec-r2plugin 仓库将其嵌入 IDA 和 radare2。
  • GitHub Actions 在 Ubuntu 22.04、Windows(MSYS2)和 macOS 上构建 Release 与 Debug 配置,再运行独立的 retdec-regression-tests 测试套件。README 说明每夜构建不作保证、可能出现回归,Docker 支持则由社区维护。
  • 采用 MIT 许可(Avast Software)。修改过的 PeLib 保留其 zlib/libpng 许可,LICENSE-THIRD-PARTY 列出其他组件,其中 Keystone 依据其针对 GPLv2 的 FOSS 例外条款使用。

关于此条目

类型
工具
类别
原生分析工具
关联
基础工具
目标
二进制

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · avast/retdec · 修订 9450585
  2. CHANGELOG.md GitHub · avast/retdec · 修订 9450585
  3. CMakeLists.txt GitHub · avast/retdec · 修订 9450585
  4. cmake/deps.cmake GitHub · avast/retdec · 修订 9450585
  5. .github/workflows/retdec-ci.yml GitHub · avast/retdec · 修订 9450585
  6. .github/workflows/common/prepare-retdec-tests.sh GitHub · avast/retdec · 修订 9450585
  7. LICENSE GitHub · avast/retdec · 修订 9450585
  8. LICENSE-PELIB GitHub · avast/retdec · 修订 9450585
  9. LICENSE-THIRD-PARTY GitHub · avast/retdec · 修订 9450585
  10. https://github.com/avast/retdec/releases/tag/v5.0

同分区更多条目:原生二进制

原生二进制分区全部 74 项资源