Dryxio/auto-re-agent
Open-source AI reverse-engineering agent using Ghidra and LLMs to reconstruct and validate C/C++ functions from binaries.
解决的问题
auto-re-agent 自动化了将编译后的二进制文件逆向工程为可重构 C/C++ 源代码的繁琐过程。虽然传统反编译器提供伪代码,但此工具旨在生成可编译、可测试且可集成到项目源码树中的有效候选实现。
工作原理
该工具协调一个结合程序分析与 LLM 驱动重构的自主流程:
- 证据收集:使用
ghidra-ai-bridge从 Ghidra 提取反编译结果、汇编代码、控制流图(CFG)、P-代码以及结构化数据(结构体、枚举、虚函数表)。 - 逆向/检查循环:一个“逆向”LLM 生成候选实现,随后由独立的“检查”LLM 进行审查。此循环持续进行,直到代码被接受或达到上限为止。
- 保守性验证:该代理使用结构验证器查找生成代码与二进制证据之间的不匹配,并运行 11 个内置启发式一致性信号,以标记缺失源码或调用次数不一致等问题。
- 验证门控:可自动在临时项目副本中运行项目特定的构建和测试命令(例如通过 CMake 和 CTest),以确保生成的代码确实能编译并通过测试。
适用人群
需要大规模重构高质量 C/C++ 函数的软件逆向工程师和开发人员,适用于遗留二进制文件或闭源项目。
主要亮点
- 多 LLM 支持:兼容 Claude(API/CLI)、OpenAI 兼容 API 以及 Codex CLI。
- 自主工作流:无需持续人工干预,即可处理函数选择、证据收集和迭代优化。
- 构建验证:与实际构建系统集成,确保候选代码不仅语法正确,而且功能上可行。
- 知识图谱:维护一个持久的
knowledge-graph.json,连接函数、调用和全局变量,为 LLM 提供上下文。 - 非破坏性:在覆盖层和临时目录中生成候选代码,而非直接修改原始源码树。
相关
- 项目
- 项目
- 项目
- 项目
- 项目