ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

rea-agents 逆向分析指南:让 AI Agent 拆解二进制与网页应用

rea-agents 逆向分析指南:让 AI Agent 拆解二进制与网页应用

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 / PEHopper(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),仅供参考

RELATED READING

延伸阅读

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