☰
rea-agents(REA)实战上手:AI Agent 逆向二进制、APK 与网页的 3 步验证法
2026/10/23 6:01:40 网站建设 项目流程

rea-agents(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 也能做二进制分析:原生二进制、APK、.NET 程序集、固件分区,再到 JS 与 Electron 应用、网页行为,一条命令安装,CLI 与 MCP 服务器双通道可用。

没有逆向背景怎么拆一个 APK:REA 的两条入口

手里解包出一个 APK,想弄清里面的调用关系,但你没学过逆向,也不想像装重型工具那样先装好再配好。这就是 REA 要接的活:把逆向分析变成 AI Agent 能直接调用的工具。

装好后,你有两条入口:

  • 终端通道:rea与rea-agents两个命令直接可用,跑一次性分析。
  • Agent 通道:rea mcp起一个 stdio 长驻服务器,Claude Code、Codex、Cursor 这类编码 Agent 在会话里持续调用。

两条入口跑同一套底层工作流,输出一致,选哪边只取决于谁来执行。

分析对象、外部依赖与输出内容对照表

分析对象外部依赖输出内容
🔍 原生二进制(Mach-O/ELF/PE)Hopper、Ghidra、IDA 三选一伪代码、汇编、字符串、交叉引用
🌐 JS/Electron 应用与网页无外部引擎,纯静态模块结构、导入关系、source map、运行时捕获
⚙️ .NET 程序集无,静态解析 PE/CLI 元数据类型、方法、引用清单
📱 安卓 APK自带 headless JADX反编译源码、资源视图
🧩 Linux 固件分区自带 Binwalk/Unblob分区划分、提取结果
🖥️ 受控进程行为本地 PTY 后端终端输出、退出状态

边界同样要说清:

  • 原生二进制必须先装 Hopper、Ghidra、IDA 之一,三选一即可。
  • 它做静态分析与受控观测,不做漏洞利用,不生成 payload。
  • 它不是调试器,没有 GUI 断点单步;进程行为走 PTY 捕获,拿输出与退出状态。
  • 每个结论都带证据、局限性、未知项,缺证据不硬给结论。

setup、首次 JS 分析、doctor 自检:3 步验证法

第 1 步:注册通道。

npx rea-agents setup

MCP 服务器注册进 Agent 客户端,工作流指令一并装好,支持 Claude Code、Codex、Cursor、Gemini CLI。算跑通:新开会话,Agent 能看到 REA 工具列表。

第 2 步:首次 JS/Electron 静态分析。

npx -y rea-agents@latest analyze-javascript-application /绝对路径/应用 --json

对已解包的 JS 或 Electron 应用目录跑静态分析,不用装外部引擎。预期:JSON 里的模块清单、导入关系、Electron 边界,每条结论挂证据。算跑通:模块与导入边符合应用实际结构。

第 3 步:健康自检。

npx -y rea-agents@latest doctor --json

按任务范围检查引擎与注册状态。算跑通:只做 JS 分析的场景全绿;碰原生二进制而缺引擎时明确报缺,不沉默。

一次分析请求的完整链路:从入口到证据的四道工位

把一次分析请求想象成工厂里的一道工件,过四个工位。

分拣工位。入口 scripts/rea.mjs 只看第一个参数:是mcp,加载长驻服务器运行时 dist/main.js;否则加载一次性 CLI 适配层 dist/cli.js。参数不对,工件当场退回。

工位绑定。应用层 src/application/(260+ 文件)负责派工:每个分析目标绑一条独立会话,同目标的后续调用都挂在这条会话上;证据账本、未知项追踪、Doctor 自检与 Setup 引导都在这层。

生产线工位。工件按类型进对应产线:src/hopper/、src/ghidra/、src/ida/、src/browser/、src/dotnet/、src/android/、src/firmware/、src/process/,一条产线只接一类工件。

封箱工位。输出前过两道关:src/contracts/ 用 Zod 把每个工具的输入输出 schema 钉死;src/domain/(400+ 纯函数文件)只做证据比较、摘要计算、应用图拼装,零副作用,同输入同输出。

Node 不改外部工具,如何驱动 Hopper 与 Ghidra

Node 没法直接调 Hopper 或 Ghidra 的 API。REA 的办法:往外部工具进程里驻留一段轻量脚本,双方走认证过的本地私有套接字对话。

  • bridge/hopper_bridge.py 在 Hopper 进程内运行,把 REA 操作翻译成 Hopper 的 Python API 调用。
  • bridge/ghidra/ReaGhidraBridge.java 打包成 Ghidra HeadlessScript,负责清单、反编译、交叉引用、控制流图。
  • bridge/android/ReaJadxBridge.java 服务 headless JADX 反编译。
  • bridge/native/ReaNativeUI.swift 做 macOS 原生 UI 捕获辅助。

src/process/ 管进程组、超时、用毕清理,分析工具跑不野。外部工具升级时,主程序不动,只替换桥接脚本。

Agent 用 SKILL 技能包,人类用 docs 文档:调用方怎么选

两类调用方,两条通道:

  • Agent 通道:npm 包内置 skills 技能包(SKILL.md)。Agent 按技能包学会何时连 REA、何时先跑诊断,再按"反编译 → 理解 → 复刻"分步推进逆向任务。
  • 人类通道:docs/ 下的 VitePress 文档。docs/mcp-contracts.md 逐个工具讲契约,docs/installation.md 讲安装与 Hopper/Ghidra/IDA 配置,docs/architecture.mermaid 是分层架构图源。工具目录由源码自动生成,CI 校验文档与实现一致。

选型规则:会话内持续追问同一目标,走 MCP;一次性验证、脚本化固定任务,走 CLI。

选型速查表、不适用场景与高频问答

速查表:场景 → 入口与命令。

场景推荐入口命令
让 Agent 接管逆向任务MCPnpx rea-agents setup
JS/Electron 应用静态分析CLInpx -y rea-agents@latest analyze-javascript-application /绝对路径/应用 --json
原生二进制(三选一引擎装好后)MCP 或 CLI对应 hopper / ghidra / ida 工具组
APK 反编译MCP 或 CLIAPK 分析工具(headless JADX 内置)
环境健康检查CLInpx -y rea-agents@latest doctor --json

什么时候别用它。

  • 目标是漏洞利用、payload 生成:REA 只做分析与受控观测,这条路不接。
  • 需要 GUI 断点单步的调试器体验:找专业调试工具,REA 进程通道只拿输出与退出状态。

高频问答。

  • 不分析原生二进制,要装 Hopper 吗?不用。JS、.NET、APK、固件、网页这几类,外部引擎一个都不需要。
  • CLI 和 MCP 结果会不一致吗?不会。两个入口汇入同一套应用层与契约层。
  • Ghidra 升级了,REA 要改代码吗?不用,替换 bridge/ghidra/ 下的桥接脚本即可。

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

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

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

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

立即咨询