Loading...

文章背景图

morluto/rea — REA: Reverse Engineer Anything部署

2026-10-27
1
- 字
- 分钟

让 AI 分析软件和二进制,理解功能究竟是如何被实现的。 本周新增 Star 201,065 | 仓库 Star 总数 371,255 | Forks 92,975

项目

信息

官方仓库

https://github.com/morluto/rea

官网

https://rea.tools/

使用指南

https://rea.tools/guides/

案例集

https://rea.tools/showcase/

npm 包

rea-agents

语言 / 许可

TypeScript / MIT

最新提交

2026-10-23

一句话定位

一个 MCP 服务,让 AI 智能体逆向分析原生二进制、JavaScript/Electron 应用、.NET 程序集与网站行为,全程本地运行

REA 在 Hopper 中分析原生二进制.jpg

一、它到底能做什么

REA 不是一个"聊天机器人",而是一层 分析能力管道:你的智能体通过 MCP 调用 REA 的工具,REA 驱动 Hopper / Ghidra / IDA / JADX 等本地引擎去真正读代码,然后把 带证据(Evidence)的结论 返回给智能体。

关键特性:

  • 证据链:每条结论都附带来源位置、观察记录与推断依据,结论与证据分离,不会给你"AI 说的"。

  • 完全本地:目标程序不上传。智能体拿到的是工具结果,其模型提供方有自己的数据政策。

  • 覆盖面极广:原生二进制、Go / Rust / CUDA、IL2CPP、Godot PCK、Python(PyInstaller)、.NET、Android APK、固件、抓包、SQLite、WASM、EVM 字节码、浏览器行为……

  • CLI 与 MCP 同源:命令行和 MCP 使用完全相同的工作流与证据契约,方便写自动化脚本。

官方调查流程图

REA investigation flow.svg

上图为官方 website/public/assets/figures/rea-investigation-flow.svg 原图,可直接打开查看大图。

官方案例集

REA showcases.png

二、环境要求

项目

要求

Node.js

22.x (≥ 22.23.4)、24.x (≥ 24.22.1) 或 26.12.1+,外加 npm

操作系统

macOS / Linux / Windows(Windows 上部分原生分析能力仍属实验性,见 docs/windows-ghidra-p0.md)

Linux 额外依赖

Ghidra、JADX、固件工具启动等需要 procps 兼容的 ps 位于 REA 的 PATH 上(用于进程归属检查)

原生分析引擎

可选。深度原生分析需 Hopper、Ghidra 或 IDA 三者之一;静态 JavaScript 与 .NET 检查 无需任何原生引擎

网络

安装阶段需要 npm;分析阶段本地执行


三、部署方式

方式 A:npx 交互式配置(官方推荐)

流程说明:

  1. 选择智能体(多选)。已存在的 REA 注册默认勾选;新检测到的客户端保留但 默认不选 —— 检测只是提供上下文,不等于授权新增注册。

  1. 审阅变更计划。计划会列出:已存在的 Hopper 安装 / 已验证的 Ghidra 安装 / 建议安装的官方 Hopper 包、每个检测到的智能体配置路径、每个 REA skill 目标目录、外部软件与网络来源、包管理器命令。

  1. 确认后写入。REA 会备份现有配置、保留不相关条目与注释、在私有目录暂存变更并回读校验。拒绝或 Ctrl-C 不会产生任何改动。

完成后 重启被提示的智能体(Claude Desktop 需完全退出,否则运行中的进程会覆盖注册)。

方式 B:脚本化 / CI 部署

参数

作用

--client <name>

精确指定客户端,可重复;显式指定后跳过交互选择

--all-detected

配置所有检测到的受支持客户端

--skill=false

不安装内置工作流(skill)文件

--dry-run

只返回计划,状态 planned,退出码 0

--json

结构化输出,便于 CI 解析

--yes

免交互确认。必须配合显式范围(如 --client codex);无范围时只作用于已存在的 REA 自有注册

--install-hopper

非交互安装 Hopper 所需

--accessible

顺序、纵向渲染的是/否提示,适合读屏软件

方式 C:全局安装 rea 命令(推荐长期使用)

Bun 全局更新需要 Bun 1.2.17+,版本过低请先手动升级。

方式 D:仅安装 Skill(不注册 MCP)

只想要"调查方法论"而不需要接入分析引擎时使用,详见官方 docs/installation.md#skill-only-installation。

方式 E:手动注册 MCP(自定义客户端)

任何支持本地 MCP 的客户端都可手动注册,官方文档见 docs/installation.md#mcp-registry。

紧凑输入 schema(默认):MCP 默认使用紧凑输入 schema 以降低上下文占用。若需要完整字段说明与嵌套校验细节,在 MCP 注册中加入:

其他可保留的环境变量:REA_MCP_OUTPUT_SCHEMA_PROFILE、REA_MCP_MAX_RESPONSE_BYTES。


四、使用方法

4.1 在智能体里提问(主用法)

向你的智能体发出"某个功能是怎么实现的"这类问题,REA 会在后面自动接管:

把 Notes 换成你的目标应用,把功能描述换成你想弄明白的东西即可。

4.2 在终端里直接分析(无需智能体)

输出包含模块、导入关系、Electron 边界及其证据。

大结果处理:真实应用的完整 Evidence 可能高达数百 MB。务必先落盘再投影视图:

官方示例:一个 334 MB 的 Obsidian Evidence 文件,summary 视图只有约 10 KB。也可直接引用已保存文件:{"source": {"kind": "evidence-file", "path": "app-evidence.json"}, "view": {"kind": "summary"}}。

4.3 .NET 程序集

--type 取成员检查结果里的精确 full_name,或你已知声明类型名;省略则检查全部成员。

4.4 SQLite 数据库快照

无需原生分析引擎。

4.5 原生二进制分析:选择 Provider

  • 自动选择时,REA 使用 唯一可用且支持该目标 的 provider;多个可用时需显式指定。

  • 长期偏好用环境变量 REA_ANALYSIS_PROVIDER;命令行 --provider 优先级更高。

  • MCP 中通过 open_binary 传 provider_id:

  • 选定后 provider 绑定到该 session,直到显式切换或关闭。

  • 排障:rea doctor --provider hopper --json(Hopper / Ghidra / IDA / JADX / Kuna 均支持)。

4.6 快照复用(避免重复分析)

当 目标字节、操作、参数、provider 与设置完全一致 时命中缓存。快照文件为本地文件,权限仅限所有者。MCP 侧:open_binary 接受 snapshot_path 原子导入;close_binary 接受 snapshot_path 与可选 overwrite: true。

4.7 Shell 补全

macOS 自带 Bash 3.2 无法加载该 hook。

4.8 证据导入 / 导出 / 对比

4.9 更新与卸载

用 npx 时更新智能体注册与 skill 需重跑 setup 并重启智能体。


五、原生分析引擎(Provider)配置

Provider

说明

配置要点

Hopper

macOS 商业反汇编器

setup 可在你批准后安装;也可填入已有安装的验证路径。首次启动 macOS 可能弹出演示模式/激活许可对话,必须在同一用户会话内完成

Ghidra

NSA 开源框架(免费)

使用已有安装;setup 可保存已验证路径。Windows 上支持 16 位 DOS 分析

IDA

IDA Pro / Hex-Rays

需自行合法取得授权;支持可选的原生 MCP 桥接

JEB

JEB 客户端

需 你手动启动 JEB 客户端并让其提供 MCP,用 REA_JEB_MCP_URL 选定

Kuna

实验性反编译器

见 docs/kuna-provider.md

JADX

Android 反编译

无头模式 + 完整 JDK(Linux/macOS/Windows x64)

Rizin / objdump

离线原生检查

由调用方自行提供,REA 不代为安装或更新

pwntools

ELF 诊断

Linux x64,调用方自行提供

大体积二进制可调高启动超时:


六、常见问题

Q:必须装 Hopper / Ghidra / IDA 吗? 深度原生分析需要三者之一。静态 JavaScript 与 .NET 检查不需要任何原生引擎。setup 在你批准后可安装 Hopper;Ghidra 与 IDA 使用你已有的安装。

Q:需要先手动启动 Hopper 吗? 不需要,需要时 REA 会启动它。但 macOS 首次运行的许可对话必须先在同一用户会话内完成。

Q:REA 会上传我的应用吗? 不会。分析在本地完成。智能体收到的是工具结果,其模型提供方有独立的数据政策。

Q:遇到 bug 怎么办? 先更新(rea update 或 npx rea-agents@latest setup),新版本常已修复。仍存在则开 issue,附上 REA 版本、目标类型、复现步骤与错误输出。

Q:Linux 上 Ghidra/JADX 启动失败? 多半是 PATH 上缺 procps 兼容的 ps。恢复步骤见官方 docs/installation.md#linux-owned-process-prerequisite。


七、合规提示

REA 面向 合法研究、教育、互操作性、软件保护与分析你拥有或获授权检查的软件。商业工具(IDA Pro / Hex-Rays、Hopper、JEB)必须 自行合法取得并遵守其许可;REA 不授予任何工具许可、密钥或激活权益。破解版、盗用密钥、共享密钥均不被授权。


参考链接

评论交流

文章目录