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 驱动重构的自主流程:

  1. 证据收集:使用 ghidra-ai-bridge 从 Ghidra 提取反编译结果、汇编代码、控制流图(CFG)、P-代码以及结构化数据(结构体、枚举、虚函数表)。
  2. 逆向/检查循环:一个“逆向”LLM 生成候选实现,随后由独立的“检查”LLM 进行审查。此循环持续进行,直到代码被接受或达到上限为止。
  3. 保守性验证:该代理使用结构验证器查找生成代码与二进制证据之间的不匹配,并运行 11 个内置启发式一致性信号,以标记缺失源码或调用次数不一致等问题。
  4. 验证门控:可自动在临时项目副本中运行项目特定的构建和测试命令(例如通过 CMake 和 CTest),以确保生成的代码确实能编译并通过测试。

适用人群

需要大规模重构高质量 C/C++ 函数的软件逆向工程师和开发人员,适用于遗留二进制文件或闭源项目。

主要亮点

  • 多 LLM 支持:兼容 Claude(API/CLI)、OpenAI 兼容 API 以及 Codex CLI。
  • 自主工作流:无需持续人工干预,即可处理函数选择、证据收集和迭代优化。
  • 构建验证:与实际构建系统集成,确保候选代码不仅语法正确,而且功能上可行。
  • 知识图谱:维护一个持久的 knowledge-graph.json,连接函数、调用和全局变量,为 LLM 提供上下文。
  • 非破坏性:在覆盖层和临时目录中生成候选代码,而非直接修改原始源码树。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目