REA 本地二进制分析指南:如何让 AI Agent 直接驱动逆向引擎
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
拿到一个闭源 App,想弄清某个功能的实现,却不想打开 Hopper 或 Ghidra 逐条指令翻。REA(npm 包名rea-agents,当前版本 6.5.0)是一个面向 AI Agent 的本地逆向工程工具:你向编码 Agent 描述目标,它驱动你本机已安装的逆向引擎完成分析,结果附带证据与局限。全程在本机运行。
为什么传统方式走不通
- 引擎门槛高。Hopper、Ghidra、IDA 各有自己的界面与流程,学习曲线陡,且彼此不通用。
- GUI 结论无法直接进入工作流。你在逆向引擎里看到的伪代码,没法被脚本消费,更没法交给 Agent 继续推理。
- 结论难验证。没有证据链的分析结果无法复核,两次运行的差异也无法归因。
接入编码 Agent 的最短路径
三条命令完成接入,全程约几分钟。
npx rea-agents setup这一步为选定的编码 Agent(Claude Code、Codex、Cursor、Gemini CLI、Grok 等)注册 REA 的MCP 服务器并写入配套工作流指令,属于对现有配置的改动,执行时会先展示变更列表并等你逐项审批,已有配置会自动备份。完成后重启 Agent,即可用自然语言提问。
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json对解压后的 JS 目录或 ASAR 文件做静态还原,输出模块、导入关系、Electron 边界及各自的证据。这条命令不需要任何逆向引擎,适合先验证链路是否通畅。
npx -y rea-agents@latest doctor --json环境自检。按你选定的任务范围检查引擎可用性、MCP 注册状态与技能文件,缺失项会给出明确原因,而不是笼统的失败信息。
能分析哪些目标
| 目标类型 | 分析方式 | 是否依赖本机引擎 |
|---|---|---|
| 原生二进制 | 反编译、伪代码、交叉引用、控制流 | 是:自备 Hopper / Ghidra / IDA |
| JavaScript / Electron | 静态还原模块结构、导入与 IPC 边界 | 否,只读文件不运行目标 |
| .NET 程序集 | 静态解析元数据与 IL 指令 | 否 |
| Android APK | 反编译方法与引用(headless JADX) | 是:JDK + REA 锁定的 JADX 发行版 |
| Linux 固件 | 区域划分与解包(Binwalk / Unblob) | 是:自备对应版本工具 |
| 网页 / 浏览器 | CDP 运行时捕获脚本与网络请求 | 是:Chrome 系浏览器 |
各目标的版本要求与指南入口见 docs/cli.md。
一次请求的内部链路
CLI 与 MCP 两条入口最终汇合到同一份编译产物,自上而下经过四层:
- 入口路由:scripts/rea.mjs 是唯一可执行入口。
mcp模式加载dist/mcp/main.js启动 stdio 服务器,其余参数加载dist/cli-runtime/cli.js执行一次性命令。 - 应用编排:会话路由、证据账本与快照缓存集中在 src/application/,两条通道共用同一套工作流。
- Provider 适配:每种目标类型一个实现,如 src/hopper/、src/ghidra/、src/ida/、src/dotnet/,负责与外部引擎的完整对话。
- 进程内桥接:Node.js 调不动引擎 API,桥接脚本在引擎进程内执行,例如 bridge/hopper_bridge.py 与 bridge/ghidra/ReaGhidraBridge.java,经带 token 认证的本地私有套接字回传结果。
一次原生分析就是这样流转的:Agent 发出分析请求,server 层将其接入会话,application 层确认 Provider 可用并启动引擎,Provider 把指令交给引擎内的桥接脚本,反编译结果经 Schema 校验后,连同证据、局限与未知项一起封装返回。
让结论可审计的 3 个设计
CLI 与 MCP 共享同一份 dist 产物。两条通道复用相同的应用工作流与证据契约,因此终端里验证过的结果就是 Agent 拿到的结果,排查问题时不存在"另一套逻辑"。
每个结论固定携带 evidence、limitations、unknowns 三块。结果不只给答案,还给出结论依据、能力边界和未确认项,你可以据此复核或复现任何一次分析。
核心计算集中在纯函数层。src/domain/ 下 245 个文件全部是无副作用的纯函数,负责摘要计算与证据比较;配套 tests/boundary/ 中 725 个边界测试用例锁定行为边界。
适合谁,不适合谁
适合维护 AI 编码工作流、经常需要理解二进制或闭源应用内部实现的开发者:把"看懂竞品功能"这件事交给 Agent 执行,你只负责提出问题和验收证据。不适合只想要一套 GUI 逆向界面的用户——它不替代 Hopper 或 Ghidra 的交互体验,而是把它们纳入 Agent 可编排的范围。前置要求:Node.js 22.19+(或 24.11+ / 26+)与 npm;原生分析需自备 Hopper、Ghidra 或 IDA,固件任务需自备 Binwalk 与 Unblob。
想跟进新目标类型的接入进度可看 docs/roadmap.md,想深入工具行为契约可从 docs/mcp-contracts.md 开始 🗺️
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考