ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

REA:让 AI Agent 逆向二进制与 APK 的 3 条命令完整上手指南

REA:让 AI Agent 逆向二进制与 APK 的 3 条命令完整上手指南

REA:让 AI Agent 逆向二进制与 APK 的 3 条命令完整上手指南

【免费下载链接】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 也能做逆向工程的开源本地工具。原生二进制、Electron 应用、.NET 程序集、APK、固件、网页都能分析,每条结论附证据与局限。适合想搞懂别人 App 功能怎么实现、再让 Agent 照着复刻的开发者。

🚀 首次上手:3 条命令跑通第一次分析

不需要先装任何逆向引擎,三条短命令就能验证整条链路。

先把 REA 注册进你的编码 Agent:

npx rea-agents setup

它会把 REA 的 MCP 服务器写进你的 Agent 配置,并装好配套的工作流指令,支持 Claude Code、Codex、Cursor、Gemini CLI 等客户端,装完重启 Agent 即可。

然后做第一次分析,拿一个已解包的 Electron 应用目录举例:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

输出应用的模块、导入关系、Electron 边界及其证据,纯静态读取,不需要任何外部引擎。

最后做一次健康自检:

rea doctor --json

按任务范围检查分析引擎与 Agent 注册是否就绪,结果以 JSON 返回,方便排障。

顺带交代覆盖面:JavaScript/Electron 和 .NET 程序集是纯静态、零外部依赖;APK 反编译走自带的 headless JADX;固件分区提取用自带的 Binwalk/Unblob;原生二进制(Mach-O/ELF/PE)返回伪代码、汇编、字符串与交叉引用,需要 Hopper、Ghidra 或 IDA 三者之一。CLI 与 MCP 两个入口走同一套底层工作流——本文以 CLI 为主线,MCP 是同一套能力给 Agent 会话用的长驻通道。

一次分析请求如何经过入口与会话

把使用 REA 想象成委托一家调查所:前台收单、分案、查案,最后交回调查报告。内部流程正好对应这四站。

前台收单:一个文件做流量路由

所有命令先落在 scripts/rea.mjs,它只做分流:参数是mcp就加载长驻服务器运行时,否则加载一次性 CLI 适配层。npm 发布时也只在package.json的files清单里打包编译产物、桥接脚本与技能包,测试和文档不会进用户机器。

分案:每个目标一张会话单

应用层src/application/(400 多个 TypeScript 文件)负责分案:每个分析目标绑定一张独立会话单,同一目标的后续追问都挂在同一张单子上,浏览器、固件、安卓等辅助能力各走独立路由。这一层还管证据账本与未知项追踪,保证多轮追问不丢上下文。

🔧 桥接机制:不改外部工具如何指挥 Hopper 与 Ghidra

Node.js 没法直接调用 Hopper 或 Ghidra 的 API,REA 的做法是把一小段脚本送进逆向工具进程内当"内线",用私有通道对话。

以 Hopper 为例,bridge/hopper_bridge.py 在 Hopper 进程内的专属 Python 线程上运行,把 REA 的操作翻译成 Hopper Python API 调用。启动前 REA 会注入一个私有套接字地址和随机 token,双方走认证过的本地套接字通信,外人插不进来。Ghidra 侧则是打包成 HeadlessScript 的ReaGhidraBridge.java,负责清单、反编译、交叉引用与控制流图;APK 反编译另有ReaJadxBridge.java。外部工具升级时只换桥接脚本,REA 主程序不用动。进程这边由src/process/做进程组管理、超时与清理,分析工具不会"跑野"。

证据优先:Agent 凭什么信任结论

给 Agent 用的工具,结论必须可复现、可对比。REA 把底层拆成两层:src/contracts/(96 个文件)用 Zod 定义所有工具对外可见的输入输出 Schema,同一工具的输出形状稳定;src/domain/(780 多个文件)全是纯函数——证据比较、摘要计算、应用图模块,无副作用。

所以每条结论都自带"证据 + 局限 + 未知项"。真实例子:Obsidian 应用的一次完整证据文件有 334 MB,Agent 实际只需读约 10 KB 的摘要视图就能继续追问。想细抠每个工具契约的字段含义,可查官方文档 docs/mcp-contracts.md。

适用边界与注意点

  • 版本与引擎门槛:需要 Node.js 22.19+ / 24.11+ / 26+;深度原生分析必须自备 Hopper、Ghidra(含 JDK)或 IDA 之一,商用工具需自行合法授权。
  • 权限就是你自己的:运行时捕获类分析(浏览器、受控进程等)会用你的用户权限真实启动或交互目标,对来历不明的目标先想清楚再跑。
  • 结果可能非常大:真实应用的完整证据可达数百 MB,先落盘再投影视图,别把整包直接喂给模型。

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进