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

典型适用场景

  1. 闭源 App 功能调研:竞争对手出了一个新功能,想知道用了什么算法或 API,REA + Agent 直接分析二进制。
  2. 安全研究:检测调试器/模拟器的实现方式,验证保护机制的有效性。
  3. Legacy 软件行为理解:维护一个没有文档的老二进制,需要了解某个函数的行为。
  4. 供应链审计:检查引入的闭源 SDK 是否做了可疑行为(如静默网络连接、数据外泄)。
  5. 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 替你深入分析任何闭源应用,输出带证据的分析结论。