rea-agents 逆向分析指南:让 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)是开源的本地逆向分析工具,同时暴露 CLI 命令与 MCP 服务器两种通道。终端手动执行或让 Claude Code、Codex 等编码 Agent 自动调用,底层走同一套工作流。适合逆向工程师、安全研究员,以及想让 AI 参与二进制分析流程的开发者。读完本文,你可以跑通第一次分析,并理解各模块如何分工协作。
先看它帮你解决什么
📱APK 与安卓包:把 APK 交给 rea-agents,它调用自带的 headless JADX 完成反编译,返回 Smali/Java 代码与资源结构,无需本地安装额外工具。
🌐网页与 Electron 应用:对提取后的前端目录做纯静态扫描,输出模块依赖图、import 关系和 Electron 主进程边界。不依赖外部引擎,装好 Node.js 即可运行。
🔍原生二进制(Mach-O / ELF / PE):需要 Hopper、Ghidra 或 IDA 三者之一作后端,返回伪代码、汇编、字符串与交叉引用,每条结论附带证据链。
⚙️.NET 程序集与 Linux 固件:.NET 走纯静态元数据解析,零外部依赖;固件分区由自带的 Binwalk / Unblob 完成区域划分与提取。
快速验证:第一次跑通 rea-agents
无需预装任何逆向引擎,三条短命令即可确认环境就绪。
npx rea-agents setup将 MCP 服务器注册进你常用的编码 Agent(支持 Claude Code、Codex、Cursor、Gemini CLI),同时安装配套工作流指令。
npx -y rea-agents@latest analyze-javascript-application /绝对路径/目标目录 --json对 JavaScript 或 Electron 应用目录做纯静态分析,输出模块结构、导入关系与 Electron 边界证据。
npx -y rea-agents@latest doctor --json按当前任务范围做健康自检,报告各分析引擎与 Agent 注册状态。
一次分析任务如何流转
把一次分析请求想象成餐厅后厨的出餐流程。
接单:所有命令先经 scripts/rea.mjs 分发。该文件只判断参数——是mcp则加载长驻 stdio 服务器运行时dist/mcp/main.js,否则加载一次性 CLI 适配层dist/cli-runtime/cli.js。npm 发布时,package.json的files字段精确控制哪些编译产物、桥接脚本和技能包进入用户机器。
开灶:src/application/为每个分析目标分配独立会话,后续调用都挂在这张会话单上。浏览器、固件、安卓等辅助能力各走独立路由。该层同时管理证据账本、未知项追踪,以及doctor健康检查与setup引导安装。
加工:每种分析对象对应一个适配模块,按需调度外部引擎:
| 适配模块 | 分析对象 | 外部引擎 |
|---|---|---|
| src/dotnet/ | .NET 程序集 | 无(纯静态元数据) |
| src/android/ | APK 静态分析 | 自带 headless JADX |
| src/firmware/ | Linux 固件分区 | 自带 Binwalk / Unblob |
| src/browser/ | 网页 / Electron / CDP 捕获 | Chrome / Playwright |
| src/process/ | 受控进程行为 | 本地 PTY 后端 |
| src/hopper/ | Mach-O / ELF / PE | Hopper(Unix 套接字) |
| src/ghidra/ | 原生二进制 + 函数注释 | Ghidra 12.1 + JDK |
| src/ida/ | IDA 当前目标(只读) | 上游 ida-pro-mcp |
出餐:src/contracts/里的 Zod Schema 约束每个工具的输入输出格式;src/domain/(400+ 文件)全部纯函数,负责证据比较、摘要计算与应用图构建,无副作用。每条结论因此自带证据、局限与未知项,结果可复现、可对比。
外部引擎如何被遥控:桥接层设计
Node.js 无法直接调用 Hopper 或 Ghidra 的内部 API。rea-agents 的方案是将桥接脚本注入目标工具进程,通过认证过的本地私有套接字通信:
bridge/hopper_bridge.py在 Hopper 进程内执行,把 REA 的操作请求翻译成 Hopper 的 Python API 调用bridge/ghidra/ReaGhidraBridge.java打包为 Ghidra HeadlessScript,负责清单、反编译、交叉引用与控制流图bridge/android/ReaJadxBridge.java驱动 headless JADX 完成 APK 反编译bridge/native/ReaNativeUI.swift负责 macOS 原生 UI 捕获辅助
bridge/目录下的脚本随 npm 包一起发布。外部工具升级时只需替换对应桥接文件,主程序无需改动。
继续深入:文档与源码入口
- 安装与引擎配置:docs/installation.md
- MCP 工具契约详解:docs/mcp-contracts.md
- 分层架构图源文件:
docs/architecture.mermaid - 应用层路由与会话管理:
src/application/ - 领域层纯函数:
src/domain/
值得借鉴的架构决策
入口只做路由:一个 mjs 文件判断参数后加载对应运行时,底下四层(MCP/CLI 适配 → 应用路由 → Provider 适配 → 契约与领域)各自独立。切换分析引擎时只需替换 Provider 层,入口与契约层零改动。
桥接脚本随包发布:将小脚本注入外部工具进程,通过认证套接字对话。工具升级与桥接代码互不干扰,files字段精确控制发布范围。
领域层全纯函数:400+ 文件无副作用,同一输入永远得到同一输出。这正是面向 Agent 的工具与面向人的 GUI 的核心分野——Agent 要的是可复现的结构化结论,不是一张截图。
下一步建议
- 新手:跑通
npx rea-agents setup后,先用analyze-javascript-application对一个纯前端项目做静态分析,熟悉证据输出格式,再逐步接入 Hopper 或 Ghidra 后端。 - 进阶:阅读
docs/mcp-contracts.md了解每个 MCP 工具的输入输出契约,再对照src/contracts/的 Zod Schema 理解字段定义。
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考