☰
REA 完整上手指南:让 AI Agent 逆向二进制、APK 与网页
2026/10/23 1:53:06 网站建设 项目流程

REA 完整上手指南:让 AI Agent 逆向二进制、APK 与网页

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

REA(npm 包名rea-agents)是一个本地运行的逆向工程工具:装好之后,你或你手头的编码 Agent 都可以对原生二进制、Electron/JavaScript 应用、.NET 程序集、安卓 APK、Linux 固件和网页发起分析,每条结论都附带证据。本文面向刚接触它的开发者,讲清它能做什么、怎么三步验证环境,以及一条分析请求在代码里走完的路径。

能力边界:REA 覆盖哪些分析对象

先说结论:原生二进制、JS/Electron、.NET 这三类是它的核心能力,安卓 APK、固件和受控进程也开箱即用,其中只有原生二进制需要外挂分析引擎。

分析对象REA 返回什么外部依赖
原生二进制(Mach-O/ELF/PE)伪代码、汇编、字符串、交叉引用Hopper、Ghidra 12.1 或 IDA 三选一
JavaScript/Electron 应用模块结构、导入关系、Electron 边界、source map无,纯静态
.NET 程序集元数据、CIL 指令、声明的原生依赖无,纯静态元数据解析
安卓 APK清单声明、反编译后的方法与引用自带 headless JADX
Linux 固件分区分区区域、提取结果、后续原生分析入口自带 Binwalk/Unblob
受控进程终端输出、交互记录、退出状态、文件系统观察本地 PTY 后端

除上表外,README.md 的能力清单还包括 Go/Rust 二进制的内嵌构建信息、WASM 工件校验与 WAT 解码、SQLite 数据库快照、抓包文件(HAR/SAZ/pcap)解读、网页与网络捕获等。运行基线是 Node.js 22.19+/24.11+/26+ 和 npm;Linux 上部分能力还要求PATH里有 procps 系的ps命令,用于进程归属检查。

快速验证:三条命令检查环境

不需要先装任何逆向引擎,三条短命令就能确认 REA 在你机器上跑得通。

# 1. 把 REA 的 MCP 服务器注册进你的编码 Agent,并安装配套工作流指令 npx rea-agents setup # 2. 对一个已提取的 JavaScript/Electron 应用目录做纯静态分析 npx -y rea-agents@latest analyze-javascript-application /绝对路径/应用 --json # 3. 按任务范围做健康自检,检查引擎与 Agent 注册状态 npx -y rea-agents@latest doctor --json

setup支持 Claude Code、Codex、Cursor、Gemini CLI 等客户端,会先展示拟改动并备份现有配置,执行后需重启 Agent。analyze-javascript-application输出模块、导入、Electron 边界及各自证据,是验证整条静态分析链路的最短路径。日常使用也可以npm install --global rea-agents后直接用rea命令,后续用rea update升级。

请求旅程:从入口路由到证据报告

把一次分析请求类比成一次医院就诊:挂号分诊、进专科检查、出化验报告。对应到代码里是四站。

第一站,入口分发(挂号)。所有命令先落到 scripts/rea.mjs。它只做一件事:第一个参数是mcp就加载长驻服务器运行时dist/mcp/main.js,否则加载一次性 CLI 适配层dist/cli-runtime/cli.js等文件,并先校验编译产物存在。npm 包的files清单(见 package.json)只打包dist、bridge/、skills/等运行必需物,测试和文档不会进用户机器。

第二站,会话路由(分诊)。应用层 src/application/ 共 406 个 TypeScript 文件,负责给每个分析目标开一张"就诊单":同一目标的所有后续调用挂在同一张会话上;浏览器、固件、安卓等辅助能力走各自独立路由。这一层同时管着证据账本、未知项追踪,以及doctor健康检查和setup引导安装。

第三站,专科检查(目标适配)。每种分析对象一个模块,源码量级差异很大:

模块分析对象依赖引擎
src/hopper/原生二进制Hopper(Unix 套接字协议)
src/ghidra/原生二进制 + 函数注释Ghidra 12.1 + JDK
src/ida/IDA 当前目标(只读)上游 ida-pro-mcp
src/browser/网页、Electron、CDP 捕获Chrome 系浏览器 / Playwright
src/dotnet/.NET 程序集无
src/android/APK 静态分析自带 headless JADX
src/firmware/固件分区自带 Binwalk/Unblob
src/process/受控进程行为本地 PTY 后端

第四站,化验报告(证据输出)。src/contracts/ 用 Zod 定义所有工具对外可见的输入输出 Schema;src/domain/ 的 785 个文件几乎全是纯函数,做证据比较、摘要计算、应用图模块拼装,无副作用。所以每条结论都自带证据、局限性与未知项,可以复现、可以跨版本对比。

桥接层:Node 如何直接指挥 Hopper 与 Ghidra

核心问题:Node.js 调不到 Hopper 或 Ghidra 的 API。REA 的解法是在外部工具进程内部"驻留一段解释器",走认证过的私有通道对话。

  • bridge/hopper_bridge.py 运行在 Hopper 进程内,监听一个权限受限、单客户端的 Unix 套接字,用 NDJSON 承载请求,连接需通过认证才接受命令,负责把 REA 的操作翻译成 Hopper 的 Python API 调用
  • bridge/ghidra/ReaGhidraBridge.java 打包为 Ghidra HeadlessScript,覆盖清单、反编译、交叉引用与控制流图
  • bridge/android/ReaJadxBridge.java 是 headless JADX 的桥接脚本
  • bridge/native/ReaNativeUI.swift 负责 macOS 原生 UI 捕获辅助

进程侧由 src/providers/ 的进程组管理、超时控制与清理机制兜底(见OwnedCommandCleanup.ts),外部分析工具不会"跑野"。这个设计的直接好处:外部工具升级不需要动 REA 主程序,换对应桥接脚本即可。

两类读者:Agent 技能包与 VitePress 文档

REA 把"怎么用它"拆给了两类读者。

  • 面向 Agent:npm 包里内置skills/技能包(源在 .agents/skills/reverse-engineer-anything/SKILL.md),明确告诉 Agent 什么时候该连 REA、什么时候不该(比如分析完整源码仓库时直接跳过 REA)、连接失败时按哪条恢复路径排查,再按"反编译 → 理解 → 复刻"的节奏推进任务
  • 面向人类:docs/ 是 VitePress 官方文档。docs/mcp-contracts.md 逐个 MCP 工具讲契约,docs/installation.md 覆盖 Hopper/Ghidra/IDA 的接入配置,docs/architecture.mermaid 是分层架构图源文件。工具目录由源码自动生成,CI 会校验它与文档的一致性

架构借鉴:三个值得抄的设计决策

  • 入口极薄,分层解耦:一个 mjs 只做流量路由,底下是 MCP/CLI 适配、应用路由、Provider 适配、契约与领域四层(src/composition/负责组合装配)。换分析引擎只需替换 Provider 层,路由与契约不动
  • 驻留解释器而非改造工具:把小脚本送进外部工具进程,用认证私有套接字对话。工具本体升级与桥接代码互不牵连,这对"第三方闭源工具"这类无法改源码的场景尤其实用
  • 证据优先:结论自带证据、局限与未知项,领域层纯函数保证结果可复现、可对比。这是"给 Agent 用"的工具与"给人用"的 GUI 之间最本质的差异——Agent 需要的是可校验的事实,不是渲染得漂亮的界面

上手路径建议:先跑上面的三条命令确认链路,再用analyze-javascript-application熟悉证据输出格式,最后按 docs/native-investigation.md 接一个原生引擎开始真正的二进制逆向。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询