让 AI Agent 替你逆向二进制:REA 从环境配置到证据复核的实战指南
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
REA(Reverse Engineer Anything)是一款面向 AI Agent 的逆向工程工具:它把 Hopper、Ghidra、IDA Pro 这类现成分析引擎,连同 JavaScript/Electron、.NET 程序集、Android APK、网站观察等能力,统一封装成 MCP 服务(让模型调用工具的协议)加一套 CLI 命令。从此"打开目标、找字符串、追交叉引用、反编译关键函数"不再需要人手点鼠标,Agent 可以直接驱动,而且每个结论都附带来源和局限性说明。
本文按四步走:一条命令配好环境、跟一个"弄明白离线搜索怎么实现"的具体任务从头走到尾、复核 Agent 给出的结论、最后判断它适不适合你。读完你可以自己在 AI 编码助手里跑通整条链路,并能回答"这个结论是从哪来的"。
为什么逆向工程以前只能靠人盯着屏幕
传统做法的摩擦很直白:每款反汇编器要各自安装、各自激活、各自学菜单快捷键;而 Agent 没有手,它连不上这些引擎,你只能人工截图、口述地址,再让模型猜。
REA 的关系不是替代,是编排:你已装的 Hopper 或 Ghidra 原样保留,登记路径即可被 Agent 调用;一样都没有,静态分析路线照样能跑。各引擎的接入与格式支持差异,仓库里 docs/native-investigation.md 有逐条说明。
一条命令配好 AI Agent 集成
传统反汇编器要各自安装、各自配置;REA 把"Agent 注册、引擎路径登记、可选组件安装"并成了同一个 setup 命令:
npx rea-agents setup # 一次完成 Agent 集成与环境配置,会先展示改动计划让你确认跑完后,MCP 配置已写入你的 AI 编码助手(Claude Code、Codex、Cursor、Gemini CLI 等,重启 Agent 后生效),原有配置有备份。怀疑环境有问题时,先跑只读诊断:
npx -y rea-agents@latest doctor # 只读环境体检,无副作用doctor会逐一读取主机前置条件、依赖状态、引擎可用性和各 Agent 的注册情况;加--provider参数可以定向体检某一个引擎,比如rea doctor --provider ghidra --json。平台要求与手动注册细节见 docs/installation.md。
💡 REA 不会替你偷偷装引擎。Hopper 可以在 setup 时经你明确批准后安装;Ghidra 和 IDA 只用你已有的安装,路径登记完就能接。
把"讲清离线搜索怎么实现"这个任务交给 Agent
MCP 配置完成后,逆向能力就成了 AI 编码助手的技能,你不必再记反汇编器的快捷键。用大白话提需求即可:
"把这个备忘录 App 的离线搜索逻辑讲清楚,附上证据,再给我写一版能跑的。"
之后 Agent 会自己走完整条链路:定位入口、找字符串、追交叉引用、还原调用图,最后反编译关键函数。这套能力对应内置的调查工作流,说明文件在 .agents/skills/reverse-engineer-anything/SKILL.md,各能力的实现源码位于 src/application/。
上图是 REA 驱动 Hopper 会话分析一个 Mach-O 二进制的画面:右侧为文件信息面板,底部为反汇编进度日志——"Agent 在上、引擎在下"是它典型的工作状态。
多引擎可用时,谁说了算
原生深度引擎是三选一:Hopper、Ghidra、IDA Pro。选引擎的逻辑讲得很透,不会替你偷偷挑一个:
- 显式传入的
--provider优先级最高,例如rea analyze /path/to/program --provider hopper; - 环境变量
REA_ANALYSIS_PROVIDER是常驻偏好,会被显式参数覆盖; - 多款引擎都可用又没指定时,直接报
ambiguous错误并列出候选,由你指定; - 选定的引擎绑定到整个会话,切换需要显式操作。
这意味着结论出自哪款引擎始终说得清,排查问题时rea doctor --provider ID --json还能单独诊断对应引擎。完整的 provider 选择规则见 docs/cli.md。
原生二进制之外,它还能分析什么
Hopper、Ghidra、IDA 的主战场是原生二进制(Mach-O / ELF / PE);REA 借它们做深度分析,但覆盖的目标面大得多,且很多目标根本不依赖原生引擎:
| 目标类型 | 处理方式 | 是否需要原生引擎 |
|---|---|---|
| 原生二进制 | Hopper / Ghidra / IDA 任选其一,返回伪代码、汇编、字符串、交叉引用 | 需要,至少一款 |
| JavaScript / Electron | 不启动 App,静态梳理模块、导入、Source Map、IPC 通道 | 不需要 |
| .NET 程序集 | 读元数据与 CIL 指令,支持不同构建对比 | 不需要 |
| Android APK | 无界面(headless)JADX 反编译后静态检查 | 不需要 |
| 网站 / 浏览器 | 经 CDP(Chrome 调试协议)观察页面结构、请求、脚本并截图 | 不需要 |
| 固件 / 网络捕获 / SQLite | 同一分析框架内处理,各有专项指南 | 视目标而定 |
没有原生引擎、或者目标根本不是二进制,分析照样能跑;JavaScript 系分析一条命令即可开始:
npx -y rea-agents@latest analyze-javascript-application /绝对路径/to/app --json # JS / Electron 应用静态分析各目标的返回内容与前置要求,README 里的能力表列得很全;.NET 目标细节见 docs/managed-code-analysis.md。
怎么复核一次分析结论
纯 GUI 分析拿到的是屏幕上的反汇编视图,价值取决于你盯着看了多少。REA 的每次分析都带一份 Evidence 证据链:结论来源、引擎版本、目标摘要、置信度与局限,由此可以做三件事:
rea compare left.json right.json对比两份证据,验证改动前后的行为差异;rea evidence-export/rea evidence-import把语义分析结果固化为文件,后续复用时不必重新拉起引擎;- 重建验证只报 pass / fail / unknown——证据缺了就老实标 unknown,从不冒充通过。
这套"可验证性契约"是单一 GUI 工具很难给到的,字段与结果格式定义见 docs/mcp-contracts.md。
分析完,结果去哪儿了
分析结果是文件,不只是屏幕上的视图。把证据导出后,你的调查资产(结论、交叉引用图、反编译产物)与具体引擎解耦:日后从 Hopper 换到 IDA、或升级引擎版本,已固化的结论照样能用。
卸载同样精准:rea uninstall只触碰 REA 自己的注册项与生成文件,你的引擎、证据和配置原样保留。另外,分析全程发生在你自己的机器上,目标软件不会被交给任何托管分析服务——你的 Agent 拿到的是工具结果,模型侧的数据策略由它自己决定。
该不该用它,看你的目标
- 适合:想让 AI Agent 替你完成从单个二进制到可运行复刻的逆向工程,且要求结论可复核、目标覆盖全栈、数据留在本地的人——把 REA 放在工具链最前面就对了 ✅
- 不适合:只想安安静静盯着反汇编窗口看的人。Hopper、Ghidra、IDA 本体是好引擎;REA 是运行在它们之上的编排层,不是替代品 ⚠️
- 注意:商业引擎(IDA Pro / Hex-Rays、Hopper、JEB)的许可证由你自己合法获取,REA 不提供任何密钥或激活权益;目标也需是你拥有或获授权分析的软件
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考