Dryxio/reagent

Reconstruct and validate C/C++ code from compiled programs with AI.

解决的问题

ReAgent 旨在自动化从编译后的二进制文件中重建 C/C++ 函数。它通过使用 AI 代理基于二进制证据迭代优化实现,弥合了原始反编译输出(通常难以阅读)与高质量、可验证源代码之间的差距。

工作原理

该工具与 Ghidra 集成,收集证据——如反编译代码、汇编代码、控制流图(CFG)和交叉引用——并将其输入 LLM 的流水线。它使用一个「逆向器」模型生成候选代码,同时使用另一个「检查器」模型进行验证。

此过程由严格的验证工作流管理:

  1. 结构验证:将生成的代码与二进制证据进行比较,查找明显的不一致。
  2. 构建与测试门控:在隔离的项目副本中执行项目特定的构建和测试命令,确保代码确实能编译并通过测试。
  3. 一致性分析:使用 11 个内置启发式信号(例如,检查缺失源码或调用次数不匹配)来标记潜在问题。

适用人群

该工具专为需要在项目规模上从二进制文件重建源代码的逆向工程师和软件分析师设计,而非在反编译器中进行单次手动分析。

主要亮点

  • 自主工作流:在有限循环中整合证据收集、实现与审查。
  • 多 LLM 支持:兼容 Claude API/CLI、OpenAI 兼容 API 以及 Codex CLI。
  • 隔离验证:在临时项目副本中运行构建和测试命令,避免修改原始源码树。
  • 知识图谱:生成连接函数、调用和全局变量的持久化证据图。
  • 保守验证:采用多层方法(检查器、结构验证器、构建测试和一致性信号)确保高置信度结果。

相关

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