REA 实战拆解:三步让 AI Agent 跑通二进制逆向分析全流程
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
REA(npm 包名rea-agents)让 AI Agent 接入逆向工程工具:原生二进制、安卓 APK、Electron 应用、网页,全部本地分析。读完你能带走三条可验证的命令,和两个最核心模块的清晰拆解。
它凭什么不一样
问题很硬:Node.js 调不动 Hopper 和 Ghidra 的 API,这两个工具也不给你留外部接口。
REA 的解法是"派驻翻译":把一段小脚本塞进外部工具进程里,让它替 Node 说话。hopper_bridge.py跑在 Hopper 进程内,把 REA 的操作翻译成 Hopper 自己的 Python API 调用;Ghidra 那边则打包成 HeadlessScript。Node 和这段"翻译"之间走认证过的本地私有套接字,配合进程组管理与超时清理。
为什么选派驻而不是对接?因为外部工具升级频繁,桥接层独立出来,工具升级时只换脚本,主程序一行不动。分析工具也跑不野——超时到点就被收拾掉。
三条命令跑通首次逆向验证
不装任何逆向引擎,三条命令就能验证环境。
npx rea-agents setup这条命令把 REA 的 MCP 服务器注册进你的编码 Agent,并安装配套工作流指令,支持 Claude Code、Codex、Cursor 等客户端。
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json这条命令对 JavaScript/Electron 应用目录做纯静态逆向分析,输出模块、导入关系、Electron 边界及证据,不需要外部引擎。
npx -y rea-agents@latest doctor --json这条命令按任务范围做健康自检,确认分析引擎与 Agent 注册状态是否就绪。
拆两个模块看它怎么分工
项目源码有上千个文件,但最值的读的是"前台"与"后账"两个模块。
| 模块 | 职责 | 外部依赖 |
|---|---|---|
| src/hopper/ | 解析 Mach-O/ELF/PE,产出伪代码、汇编与交叉引用 | Hopper(Unix 套接字协议) |
| src/contracts/ | 用 Zod 定义全部工具对外的输入输出 Schema | 无,纯契约层 |
src/hopper/负责什么?它是原生二进制逆向分析的前台,把请求翻译成 Hopper 调用,再把结果取回来。它依赖谁?Hopper 的本地进程,靠桥接脚本加私有套接字打通。你换掉它会怎样?不痛——src/ghidra/是同类型前台,换掉前台,分析引擎就切换了。应用层的会话路由保证同一目标的所有调用挂在同一会话上,换前台不影响这条线。
src/contracts/负责什么?它用 Zod 给每个工具的接口画死边界:参数传不对,进不来。它依赖谁?谁也不依赖,它是架构最上面一层。你换掉它会怎样?全端跟着变——证据、局限性、未知项的输出格式都在这里定型,领域层的纯函数照着它算,结果才可复现、可对比。
两种用法,两种节奏
同一套工具,两种消费节奏。
给 Agent 用:npm 包内置技能包,见 SKILL.md,教 Agent 何时连接 REA、何时先跑诊断,再按"反编译 → 理解 → 复刻"分步推进任务。
给人类用:终端里直接跑rea命令;每个 MCP 工具的契约细节看 docs/mcp-contracts.md,安装与 Hopper/Ghidra 配置看 docs/installation.md。
- 派驻翻译,不动外部工具本体
- 每个结论自带证据与局限
- 换引擎,只换一层前台
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考