工具
rev.ng 二进制分析框架与反编译器
开源反编译流水线:借助 QEMU 将 x86-64、AArch64、i386、ARM 和 MIPS 代码提升为与架构无关的表示,以 LLVM 进行分析,并输出以合法、可重新编译为设计目标的 C 代码。数据布局分析可根据指针用法推断数据结构;可编辑的 YAML 模型及 Python、TypeScript 封装便于自动化。基于 VSCode 的界面是单独的产品,目前处于封闭测试阶段,并计划推出商业方案。
使用条件与局限
- 仅能在 Linux x86-64 上运行;文档建议 Windows 用户使用 WSL,macOS 用户使用 Docker(Apple Silicon 需指定 linux/amd64 平台)。用户安装脚本下载 master 分支的当前发行包,仓库也没有打标签的版本,因此本条目固定到所审阅的 develop 分支提交。
- 开发环境通过 orchestra 包管理器安装,可使用二进制归档或从源码构建。脚本可在本地或经网络连接 GraphQL API;QEMU 仅用作提升器,不会仿真执行代码。
- 由于依赖 QEMU 等 GPLv2 组件,项目整体采用 GPL-2.0,单个文件采用 MIT 许可。rev.ng 网站将反编译流水线描述为自由软件。界面目前处于封闭测试阶段,计划免费提供公开项目的云端使用,私有项目及完全离线版本则将推出商业方案。
- 生成合法且可重新编译的 C 代码是项目的设计目标,并非对任意二进制都已验证的特性;推断出的类型和名称需要分析者复核。本次未反编译任何二进制。
关于此条目
- 类型
- 工具
- 类别
- 原生分析工具
- 关联
- 基础工具
- 目标
- 二进制
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- https://github.com/revng/revng/blob/57d81a3b0d946ccaa9fed8a13c9871dc36b94747/share/doc/revng/what-is-revng.md
- https://github.com/revng/revng/blob/57d81a3b0d946ccaa9fed8a13c9871dc36b94747/README.md
- https://github.com/revng/revng/blob/57d81a3b0d946ccaa9fed8a13c9871dc36b94747/share/doc/revng/user-manual/initial-setup.md
- https://github.com/revng/revng/blob/57d81a3b0d946ccaa9fed8a13c9871dc36b94747/LICENSE
- https://github.com/revng/revng/blob/57d81a3b0d946ccaa9fed8a13c9871dc36b94747/LICENSE.mit
- https://rev.ng/