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

一、它到底能做什么
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 使用完全相同的工作流与证据契约,方便写自动化脚本。
官方调查流程图
上图为官方
website/public/assets/figures/rea-investigation-flow.svg原图,可直接打开查看大图。
官方案例集

二、环境要求
三、部署方式
方式 A:npx 交互式配置(官方推荐)
流程说明:
选择智能体(多选)。已存在的 REA 注册默认勾选;新检测到的客户端保留但 默认不选 —— 检测只是提供上下文,不等于授权新增注册。
审阅变更计划。计划会列出:已存在的 Hopper 安装 / 已验证的 Ghidra 安装 / 建议安装的官方 Hopper 包、每个检测到的智能体配置路径、每个 REA skill 目标目录、外部软件与网络来源、包管理器命令。
确认后写入。REA 会备份现有配置、保留不相关条目与注释、在私有目录暂存变更并回读校验。拒绝或 Ctrl-C 不会产生任何改动。
完成后 重启被提示的智能体(Claude Desktop 需完全退出,否则运行中的进程会覆盖注册)。
方式 B:脚本化 / CI 部署
方式 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)配置
大体积二进制可调高启动超时:
六、常见问题
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 不授予任何工具许可、密钥或激活权益。破解版、盗用密钥、共享密钥均不被授权。
参考链接
Discord:https://discord.gg/GkcryMnJDM