morluto/rea · 上手攻略
- 仓库:morluto/rea
- 链接:https://github.com/morluto/rea
- 分类:逆向工程 · AI Agent 工具 · 安全研究
- 作者:Jay
- 更新:2026-10-07
这是什么
REA(Reverse Engineer Anything)是一个连接 AI Coding Agent 与逆向工程工具链的 MCP(Model Context Protocol)中间件。它的核心价值是:让 AI 代理在不了解源码的情况下,通过 Hopper、Ghidra、IDA Pro 等二进制分析引擎,理解和复现目标应用的行为。
支持的被分析目标包括: - 原生二进制:x86/x64 ELF/PE/Mach-O(通过 Hopper/Ghidra/IDA) - JavaScript / Electron 应用:静态分析 ASAR 包,无需执行 - .NET 程序集:PE/CLI 托管代码分析 - 网站:被动式浏览器页面行为观察 - APK:静态 JADX 反编译(headless,无需模拟器)
支持的 Agent 包括 Claude Code、Claude Desktop、Codex、Cursor、Windsurf、Devin、GitHub Copilot 等。
⚠️ 本工具本身是 Agent 工作流框架,不直接执行逆向分析,而是调度用户已有的 Hopper(需独立授权)或 Ghidra(需用户自行安装)完成工作。
解决什么问题
- 痛点:AI Agent 写代码很强,但遇到"我想知道这个闭源 App 是怎么实现某个功能的"就束手无策——没有源码,Agent 无法分析。
- 解决:REA 将 Hopper/Ghidra 等专业逆向工具封装为 Agent 可调用的 MCP 工具,让 Agent 主动探索二进制,输出带证据(Evidence)的分析结论。
- 额外价值:分析结果以结构化 Evidence 对象返回,可验证、可对比、可存档,不像普通 LLM 输出那样无法追溯。
快速安装
前置依赖
| 组件 | 要求 | 说明 |
|---|---|---|
| Node.js | 22.x (≥22.19) / 24.x (≥24.11) / 26+ | REA CLI 基于 Node |
| npm | 任意版本 | REA 不指定特定 npm 版本 |
| Hopper | 可选,macOS/Linux | 独立商业软件,官网下载 demo 即可 |
| Ghidra | 可选,Linux/macOS/Windows | 开源,GitHub 下载,需 JDK 21+ |
| IDA Pro | 可选 | 仅配合 mrexodia/ida-pro-mcp 使用 |
静态 JavaScript 分析不需要任何引擎,直接运行即可。
安装步骤
# 方法一:curl 一键安装 CLI(推荐 macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/morluto/rea/main/install.sh | bash
# 方法二:npm 全局安装
npm install --global rea-agents
rea setup
# 安装后验证
npx -y rea-agents@latest doctor
rea doctor 默认做全量审计,输出每个 Agent 注册状态、skill 安装情况、分析引擎健康度;加 --json 获取结构化诊断。也可以按作用域检查:rea doctor --provider ghidra --json 或 rea doctor --client codex --json。
Agent 注册(一次性)
npx rea-agents setup
- 扫描本地已安装的 Agent(Claude Code / Cursor 等)
- 询问你要为哪些 Agent 启用 REA
- 展示具体文件和改动内容,批准后才写入配置
- Hopper 安装可选(需要用户手动同意授权)
核心用法
方式一:让 Agent 主动分析(推荐)
# 安装 REA skill(让 Agent 理解工作流)
npx skills add morluto/rea --skill reverse-engineer-anything
# 重启 Agent,然后用自然语言描述任务
# 例如:
# "帮我分析 /Applications/SomeApp.app,了解它如何检测调试器——给出实现机制和绕过方法"
Agent 会自动调用 REA 的 MCP 工具,驱动 Hopper/Ghidra 进行分析。
方式二:直接命令行分析 JavaScript/Electron 应用(无需引擎)
# 分析本地 JavaScript/Electron ASAR 包(无需 Hopper/Ghidra)
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
返回结构化的 Evidence(内联证据、恢复的调用图、已知限制、未解问题),完全本地执行,不启动应用。
方式三:原生二进制深度分析
# 明确指定分析引擎(g 初始化时只注册了一个引擎)
rea analyze /path/to/binary --provider hopper --json
# 或
rea analyze /path/to/binary --provider ghidra --json
⚠️ 如果目标同时支持多个引擎,REA 会报 capability_unavailable 错误(selection_reason: "ambiguous"),需要显式指定 --provider。选定后该 session 保持绑定,不会自动切换。
REA 特有工具集(通过 Agent 调用)
| 工具 | 能力 |
|---|---|
open_binary |
打开二进制文件,确定分析引擎 |
analyze |
执行自动化分析,返回 Evidence |
decompile |
单函数反编译 |
get_function_dossier |
获取函数元信息(名称、签名、调用关系) |
annotate_native_function |
编辑函数名和入口注释(仅改 session 数据库,不改二进制) |
evidence-import / evidence-export |
验证、规范化或对比 Evidence 记录 |
rea decompile(终端) |
CLI 直接反编译,绕过 Agent |
典型适用场景
- 闭源 App 功能调研:竞争对手出了一个新功能,想知道用了什么算法或 API,REA + Agent 直接分析二进制。
- 安全研究:检测调试器/模拟器的实现方式,验证保护机制的有效性。
- Legacy 软件行为理解:维护一个没有文档的老二进制,需要了解某个函数的行为。
- 供应链审计:检查引入的闭源 SDK 是否做了可疑行为(如静默网络连接、数据外泄)。
- AI Agent 超纲任务:Agent 遇到需要"看看这个 App 怎么工作的"问题时,REA 让 Agent 有能力自行探索。
坑与注意
| 坑 | 说明 | 建议 |
|---|---|---|
| Hopper 是独立商业软件 | REA 本身开源,但 Hopper 需单独购买授权 | Hopper 有 demo 模式(功能受限),可先用 demo 验证需求 |
| Ghidra 需要 JDK 21+ | REA 仅验证了 Ghidra 12.1.4 + JDK 21 组合 | 低版本 Ghidra 可能不兼容 |
| macOS Hopper 可能弹窗 | REA 请求后台启动,但 macOS 和 Hopper 可能仍拉起前台窗口 | Linux 上 Hopper 无 GUI 弹窗问题 |
| 首次分析耗时很长 | Ghidra 导入 + 自动分析耗时与二进制大小成正比,可能超过 Agent 默认超时 | 查看 first-query deadlines 文档处理取消恢复 |
| 分析结果非源码 | Ghidra 输出是伪代码(Pseudocode),不是原始源码 | 适用于理解行为,而非直接复用代码 |
| Windows Ghidra 为实验性支持 | README 称 Windows x64 Ghidra P0 为"experimental" | 生产级 Windows 分析建议用 Hopper 或 IDA |
| Node.js 版本要求较高 | 需要 Node 22.19+ / 24.11+ / 26+ | 低版本 Node 无法运行 REA CLI |
| 多个引擎同时可用时会 ambiguous | 不指定 --provider 时报错 |
初始化前决定用哪个引擎,后续 session 固定 |
| Agent 检测不等于启用 | setup 扫描到 Agent 后,需要手动选择才会注册 | 安装后记得在 setup 流程中勾选目标 Agent |
与同类对比
| 工具 | 定位 | REA 的差异 |
|---|---|---|
| Ghidra | 独立逆向工程框架 | REA 将 Ghidra 能力封装为 Agent 可调用的 MCP 工具 |
| ** Hopper Disassembler** | 商业级 macOS/Linux 反编译器 | 同上,REA 不替代它,而是作为 Agent 的调用层 |
| ghidra-mcp | Ghidra MCP 服务器 | REA 支持更多引擎(Hopper/Ghidra/IDA),更完整的 Evidence 体系 |
| ida-pro-mcp | IDA Pro MCP | REA 可复用已有的 ida-pro-mcp 注册(REA_IDA_MCP_CONFIG) |
| BinaryAI / OpenSource | AI 辅助逆向平台 | REA 是本地工具,数据不出本机;SaaS 平台则需上传二进制 |
| Phylum / Joern | 开源静态代码分析 | 主要针对源码,REA 专注于二进制逆向 |
结论:如果你需要让 AI Agent 具备逆向分析能力,REA 是目前支持引擎最广泛(Hopper/Ghidra/IDA)的 MCP 封装方案。Hopper 用户体验最顺滑(macOS 原生),Ghidra 用户免费但配置略繁。
一句话推荐
让 AI Coding Agent 突破"无源码即盲区"的限制——安装 REA 后,用自然语言让 Agent 替你深入分析任何闭源应用,输出带证据的分析结论。