Auto RE Agent
利用 Ghidra 证据与 LLM 重建并验证二进制中的 C/C++ 函数。
- Star 数
- ★ 2.4k
- 最近更新
- 1 个月前
- License
- MIT
- 主语言
- Python
- FA 评分
- 61/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code · OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 高 · 需要较重的基础设施
- 开始前需要
- 典型场景
- 维护遗留 C++ 项目的逆向工程师,需要根据 Ghidra 导出的二进制证据恢复一个指定地址的函数实现。
- 不适合
- 需要完全离线或无法安装 Ghidra 与本地桥接的团队
- 希望工具直接改写原始源码树的用户
- 需要形式化证明生成代码与二进制语义等价的场景
- 源码审查
- 61/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Auto RE Agent 是一个面向已编译二进制的开源 C/C++ 函数重建工具。它通过 ghidra-ai-bridge 获取 Ghidra 的反编译、交叉引用、类型、控制流和汇编等证据,并由 reverser 与 checker 两个角色进行有界循环审查。生成结果不会直接修改原始源码树,而是写入报告目录和候选覆盖层;可选验证会在项目临时副本中执行配置的构建、测试和运行命令。其命令行提供 init、reverse、parity、status 和 estimate 等工作流,支持 Claude API、Claude CLI、OpenAI 兼容 API 与 Codex CLI。它提供的是保守的验证证据,而不是生成代码与二进制语义等价的形式化证明。
运行 re-agent reverse --address ADDR 或 re-agent reverse --class CLASS 后,工具按配置选择函数,并从 ghidra-ai-bridge 读取 decompile、xrefs_from、xrefs_to、struct、enum、vtable、global、strings、context、normalized pcode 和 cfg 等可用证据。reverser 生成候选 C/C++ 实现,checker 审查结果,流程可在限定轮数内继续修复和调查。每轮会运行结构验证器,将候选与反编译、汇编、CFG 和规范化高层 P-code 对比;随后运行 11 项内置 parity 信号。候选代码会写入 reports/re-agent/code/ 和候选 overlay;若启用 validation,工具会复制项目、替换匹配的函数体,并执行配置的 build_commands、test_commands 和 runtime 命令。报告还包括逐轮日志、re-agent-progress.json 和 reports/re-agent/knowledge-graph.json。
- 维护遗留 C++ 项目的逆向工程师,需要根据 Ghidra 导出的二进制证据恢复一个指定地址的函数实现。
- 正在处理大型类恢复任务的团队,希望用 re-agent reverse --class CTrain --max-functions 10 按依赖顺序运行受限批次。
- 拥有可构建和可测试源码树的项目维护者,希望在临时项目副本中验证候选实现,而不覆盖原始源码。
- 需要审查现有恢复源码的分析人员,可使用 re-agent parity --filter REGEX 或 --skip-ghidra 检查 parity 信号。
- 需要保留函数级历史、提示词响应和证据关联的逆向项目,可利用 session 文件、逐轮日志和知识图谱输出。
如何安装或部署这个 Agent?
需要 Python 3.10+、Git、Ghidra、已配置的 ghidra-ai-bridge,以及至少一种 LLM 配置。安装:
python3 -m pip install --upgrade "auto-re-agent[ghidra-bridge]>=0.2.0"如需无头 Ghidra 导出:
python3 -m pip install --upgrade "auto-re-agent[headless]>=0.2.0"在目标项目中执行:
ghidra-bridge init
ghidra-bridge export all
ghidra-bridge infoClaude API 需设置 ANTHROPIC_API_KEY 或 RE_AGENT_LLM_API_KEY;OpenAI 兼容 API 需设置 OPENAI_API_KEY 或 RE_AGENT_LLM_API_KEY;Claude CLI 和 Codex CLI 需先完成本地命令认证。
如何使用这个 Agent?
先在目标项目执行 re-agent init --profile generic-cpp,然后编辑 re-agent.yaml,至少配置 llm、backend.cli_path、source_root 和 validation。示例可使用 llm.provider: codex、llm.model: gpt-5.4,以及 backend.type: ghidra-bridge、backend.cli_path: ghidra-bridge。配置完成后,先运行 re-agent reverse --address 0x401000;批量恢复可运行 re-agent reverse --class CTrain --max-functions 10,并用 re-agent status 查看进度。若启用严格验证,应配置 build_commands、test_commands、require_build、require_tests、require_verified,并在确认命令由项目所有者控制后设置 trust_configured_commands: true。
这个 Agent 有哪些优点和局限?
- 将 Ghidra 反编译、交叉引用、类型、控制流、汇编与规范化 P-code 组合为可供模型使用的证据包,而非仅依赖单段伪代码。
- reverser、checker、结构验证、构建测试门禁与 parity 信号构成多层且有界的候选审查流程。
- 候选实现写入 overlay;启用 copy_project 后会在临时项目副本中验证,避免自动覆盖原始源码树。
- 支持 Claude API、Claude CLI、OpenAI 兼容 API 和 Codex CLI,且 reverser 与 checker 可分别配置提供方或模型。
- 完整的二进制驱动流程依赖本地 Ghidra、ghidra-ai-bridge 及正确的项目和导出配置。
- 验证命令是项目自有的任意 shell 命令;工具无法从命令文本证明其真正验证了候选,必须显式信任 trust_configured_commands。
- 结构检查和 parity 信号不是语义或二进制等价的形式化证明,证据不足时验证器会返回 UNKNOWN。
- 实际成本和运行时长取决于模型、证据量和目标复杂度,且需在配置中控制审查轮次、调查次数和每函数尝试次数。
这个 Agent 与同类方案有什么区别?
与传统反编译器相比,Ghidra 仍负责反汇编、反编译和程序分析,Auto RE Agent 负责组织证据、生成候选实现、审查、验证与报告。与交互式 Ghidra AI 或 MCP 助手相比,它采用持久化报告和受限的 reverser/checker 自动流程,而不是由分析师逐步驱动对话。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Auto RE Agent 当前 | 61 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 2.4k | 1 个月前 | Python | Codex · Claude Code · OpenAI API · Claude API |
| REA:让 Agent 逆向一切 | 72 · 存在缺口 | 命令行工具免费 | ★ 434k | 今天 | TypeScript | Codex · Claude Code · Claude.ai |
| REA 逆向工程工作台 | 52 · 缺口较多 | 命令行工具免费 | ★ 94 | 18 天前 | HTML | Codex · Claude Code |
| Eleven 逆向工作台 | 58 · 缺口较多 | 桌面应用免费 | ★ 967 | 6 天前 | TypeScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:工具明确不自动修改原始源码树,候选代码写入overlay,隔离验证在临时副本中运行,且需要显式设置trust_configured_commands才信任项目拥有的shell命令。这体现了最小权限和用户确认。数据流透明性:文档描述了证据收集、候选生成、验证和报告流程,但未提供详细的内部数据流图。敏感数据处理:涉及API密钥,但文档建议使用环境变量,未发现硬编码密钥。依赖安全:依赖项包括anthropic和openai,但未提供版本锁定或漏洞扫描证据。外部影响:工具执行配置的构建/测试命令,但明确警告这些命令应受项目所有者控制。回滚:会话文件原子重写,但未提供明确的回滚机制。来源归属:未验证发布者身份,但文档和代码中明确归属Dryxio。扣分原因:依赖安全证据不足,回滚机制不明确,发布者未验证。
证据显示:文档和配置示例一致,CLI命令和配置选项描述清晰。依赖可用性:依赖项在PyPI上可用,但未提供锁定版本。失败消息:文档提到错误处理,但未提供具体失败消息示例。扣分原因:依赖版本未锁定,失败消息细节不足。
证据显示:面向逆向工程师和开发者,提供了多种使用场景(单函数、类批量、parity分析)。能力边界:明确说明不能证明语义等价,需要Ghidra和LLM。触发精度:CLI命令和配置选项明确。环境适配:支持多种LLM提供商和操作系统,但需要Ghidra和bridge。扣分原因:环境依赖较多,但文档提供了安装指南。
证据显示:README结构清晰,包含安装、快速开始、CLI参考、FAQ等。安装说明详细。命名稳定:命令和配置项命名一致。示例和FAQ:提供了配置示例和FAQ。已知限制:文档列出安全性和局限性。许可证:MIT。版本和变更日志:pyproject.toml有版本号,但未提供CHANGELOG。维护责任:发布者未验证,但GitHub Actions显示持续集成。扣分原因:缺少CHANGELOG,维护责任不明确。
证据显示:输出包括生成的代码、日志、知识图谱,格式明确。边际价值:自动化逆向工程流程,节省人工。成本效益:文档提到成本控制(bounded rounds),但未提供实际成本数据。扣分原因:成本效益缺乏量化数据。
证据显示:README中的声明与代码和配置示例一致。交叉来源:文档提到YouTube演示,但未提供其他独立验证。事实与推断分离:文档明确区分保守验证和形式证明。扣分原因:交叉来源证据不足。
- 发布者身份未验证,需谨慎对待。
- 依赖版本未锁定,存在供应链风险。
- 配置的构建/测试命令可能执行任意shell命令,必须由项目所有者控制。
- 工具不能证明语义等价,仅提供保守验证。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.4.0 auto-re-agent v0.4.0
发布说明摘录
Windows validation and migration Build, test, and runtime gates now accept argument arrays that execute directly on Windows and POSIX. This addresses [#11](https://github.com/Dryxio/reagent/issues/11) without requiring /bin/sh for native Windows validation. Upgrade with: ```console python -m pip install --upgrade "auto-re-agent>=0.4.0" ``` On native Windows, convert string commands to arrays. For example, from a Visual Studio Developer Command Prompt with cl available: ```yaml validation: build_commands: …在 GitHub 查看 ↗ -
v0.3.0 auto-re-agent v0.3.0
发布说明摘录
What changed Candidate compilation, tests, runtime checks, differential comparisons and semantic parity rules now run inside the repair loop. Failures and counterexamples feed the next attempt instead of rejecting an otherwise repairable candidate after the last model review. - Evidence: direct ghidra-json export reader, repaired legacy struct/xref/symbol parsing, shared checker evidence and bounded valid JSON. - Source identity: optional Clang compilation-database indexing, overload refusal and safer function-body replacement. …在 GitHub 查看 ↗ -
v0.2.1 auto-re-agent v0.2.1
发布说明摘录
What's Changed * Fix/windows overlay filename sanitize by @HorvathAlteisen in https://github.com/Dryxio/auto-re-agent/pull/6 New Contributors * @HorvathAlteisen made their first contribution in https://github.com/Dryxio/auto-re-agent/pull/6 Full Changelog: https://github.com/Dryxio/auto-re-agent/compare/v0.2.0...v0.2.1在 GitHub 查看 ↗