在某个 app 里看到一个你想要在自己产品中实现的功能?让你的智能体用 REA 去调查它。它可以在没有源代码的情况下检查该 app,解释该功能如何工作,展示证据,并为你的项目构建一个版本。

REA 将你的智能体连接到用于检查原生二进制文件、JavaScript 和 Electron 应用、.NET 程序集以及网站的工具。你也可以从终端使用同样的工具。分析在本地运行,结果包含每个结论背后的证据和局限性。

安装程序会将 REA 注册到你的智能体,并安装匹配的工作流指令。原生分析可以使用现有的 Hopper、Ghidra 或 IDA 安装;安装程序可以选择在获得批准后安装 Hopper。静态 JavaScript 分析不需要原生分析引擎。

访问 REA 网站获取安装说明、图文指南和真实案例研究。

快速开始

设置你的智能体

在已安装 Node.js 和 npm 的情况下,运行:

npx rea-agents setup

选择你的智能体,查看建议的更改,并批准它们。安装程序会添加 REA 的 MCP 服务器和匹配的工作流指令,并备份现有 配置。之后重启你的智能体。

安装程序支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 和其他智能体。参见安装与设置了解提供商配置和 手动 MCP 注册。

询问你的智能体

Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.

将 Notes 替换为你的目标 app 以及你想要理解的功能。

使用终端

检查解压后的 JavaScript/Electron 应用目录或 ASAR:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

结果包含模块、导入、Electron 边界及其证据。 将路径替换为你的目标,例如"D:/apps/example"在 Windows 上。

要安装rea命令以供日常使用:

npm install --global rea-agents
rea --help

对于原生分析,请先配置提供商。参见CLI 与证据指南了解原生命令、提供商选择、 快照和脚本编写。

更新 REA

REA 变化很快,新版本包含频繁的 bug 修复。请保持你的 安装为最新版本。

对于通过以下方式安装的 CLInpm install --global或bun add --global:

rea update

Bun 全局更新需要 Bun 1.2.17 或更高版本。如果使用较旧的 Bun 版本, 请先手动升级 Bun,然后再运行rea update。

要刷新你的智能体注册和技能,请运行更新时打印的安装命令。

如果你使用npx,请用以下命令更新你的智能体设置:

npx rea-agents@latest setup

查看设置变更并重启你的智能体。对于一次性 CLI 命令,请使用npx rea-agents@latest后跟该命令。使用 Bun 时,请使用bunx rea-agents@latest代替npx rea-agents@latest。

REA 如何工作

你的智能体通过 MCP 调用 REA 来检查目标并追踪相关代码。REA 返回带有证据的发现结果。智能体利用这些结果提出后续问题、解释行为,或编写并测试实现。CLI 命令使用相同的工作流。

REA investigation flow: your agent asks about a local target, REA inspects and traces it using analysis tools, and the agent uses the returned code, references and unknowns to explain, implement and test.

打开全尺寸图。

你可以分析什么

REA 需要 Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,以及 npm。其他工具和宿主支持取决于目标:

目标 REA 返回的内容 要求与指南
原生二进制文件 伪代码、汇编、字符串、符号、调用与引用 Hopper、Ghidra 或 IDA;原生分析
离线 ELF 布局 节、段、原始符号/重定位以及静态缓解候选 调用方提供的 pwntools,运行于 Linux x64;二进制诊断
Go 二进制文件 内嵌的编译器版本、模块、替换项和构建设置 内置的静态 ELF/PE/thin Mach-O 检查;无需安装 Go
WASM 产物 验证、节、精确的导入/导出 WAT 形式以及解码后的 WAT 调用方提供的 WABT 1.0.42;inspect_wasm_artifact
EVM 字节码 分派选择器、字节偏移、推断的参数和可变性 本地 raw/hex 载体,运行于 Linux x64;离线 EVM 指南
SQLite 数据库 表、列、索引、视图、触发器以及选定的普通表行 本地数据库/WAL 快照;Node.js 24.x >=24.15 或 26+,受原生 SQLite 限制
记录的 Linux 崩溃 原始笔记、每个已记录线程的寄存器/信号以及可选的映射候选 调用方提供的 pwntools,运行于 Linux x64;可选的 GDB/pwndbg;记录的崩溃
JavaScript / Electron 模块、导入、source map、路由、IPC 以及原生插件关系 Node.js 和 npm;应用程序分析
网站 页面结构、脚本、网络观测以及请求的截图 Chrome 系浏览器;浏览器分析
保存的网络捕获 请求、响应、暴露的载荷以及源位置 HAR;在 Linux 上使用 mitmdump 进行原生 mitmproxy 捕获;捕获指南
.NET 程序集 元数据、CIL 指令、声明的原生依赖以及构建比较 无(仅静态);托管代码指南
Android APK Manifest 声明、类、反编译方法和引用 Linux/macOS/Windows x64 上的无头 JADX 和完整 JDK;Android 指南
Android 设备 设备、包、进程、日志、转储、屏幕截图以及 APK/文件传输 调用方提供的 adb(模拟器或硬件);ADB 指南
JEB 项目 由引擎支持的项目单元、产物摘要和类型/方法伪代码 调用方启动的、提供 MCP 服务的 JEB 客户端,通过 REA_JEB_MCP_URL 选择;JEB 指南
Android 资源 解码后的 manifest、字符串表、区域设置和版本信息 调用方提供的 Apktool 启动器;资源指南
Flutter 应用 Dart 快照哈希、各 ABI 的库摘要和引擎构建来源 无(静态 APK 解析);Flutter 指南
固件 区域、提取结果和原生分析交接 Linux 上的 Binwalk / Unblob;固件指南
录制的数据包 选定字段、重复值、过滤器和解码规则 Linux:TShark 4.x + prlimit;捕获指南
录制的逻辑信号 解码器标注、采样范围和诊断信息 Linux:sigrok-cli 0.7.2 + prlimit;信号录制
包和资源 文件清单、摘要、plist、Apple bundle 结构和提取的资源 产物和 JavaScript 指南,Apple 应用
进程行为 终端输出、交互、退出和文件系统观察结果,以及运行比较 带原生 PTY 的 Linux/macOS;进程捕获

静态 JavaScript 和 .NET 检查会在不运行应用程序的情况下读取所提供的文件。运行时捕获会以你的用户权限运行或与所选目标交互;每份运行时指南都会描述其影响。

原生格式和宿主支持因提供方而异。参见Hopper 和 Ghidra 设置,该IDA 指南(包括可选的 native MCP 桥接),以及实验性的 Windows Ghidra 支持。16 位 DOS 分析。REA_GHIDRA_STARTUP_TIMEOUT_MS或REA_HOPPER_STARTUP_TIMEOUT_MS。CLI 指南。检查发布可用性

展示

Illustrations of the DX-Ball sound-pan, Notion clipboard-bridge, and TH04 bullet-ring showcases

DX-Ball:重建声音声像计算

跟随一个 sound call 进入其 position-to-pan 辅助函数,检查指令,并将不完整的伪代码转换为 C。重建结果通过了 3,205 个原始 x86 用例,并复现了全部 63 个编译后的函数字节。

阅读案例研究·重建仓库

Notion:追踪 Electron 剪贴板桥接

找到渲染进程的剪贴板 API,沿着它经过 preload 和 IPC 进入主进程,并检查富剪贴板格式。

阅读案例研究

TH04:恢复 DOS 子弹环计算

检查原始 PC-98 游戏的 16 位指令,恢复固定角度和瞄准角度计算,并将重建的 C++ 与历史编译器输出进行比较。

阅读案例研究·重建仓库

如果你在某个有趣的东西上使用了 REA,我们很想看看。在issue或pull request中分享你的案例,包括目标、你的问题、REA 如何提供帮助,以及你发现了什么。

常见问题

哪些智能体可以使用 REA?

任何支持本地 MCP 服务器的智能体。安装程序会配置受支持的智能体;其他客户端可以使用手动 MCP 注册。

我需要 Hopper、Ghidra 或 IDA 吗?

深度原生分析会使用其中之一。静态 JavaScript 和 .NET 检查无需原生分析引擎即可工作。安装程序可在获得批准后安装 Hopper;Ghidra 和 IDA 使用你现有的安装。参见provider 设置。

我需要先启动 Hopper 吗?

当某个操作需要时,REA 会启动 Hopper。在 macOS 上,首次运行的对话框可能会要求你选择演示模式或激活许可证。在你的首次 CLI/MCP 操作或无人值守任务之前,请在同一用户会话中完成该提示。如有需要,可手动打开 Hopper。参见Hopper 启动与故障排除。

从 skills.sh 安装该 skill 会做什么?

该 skill 为你的智能体提供调查指令。使用npx rea-agents setup来注册 REA 的 MCP 服务器并安装匹配的指令,然后重启你的智能体。参见仅 skill 安装。

REA 返回什么代码?

原生分析返回伪代码和汇编。JavaScript/Electron 分析会恢复模块及其关系。你的智能体使用这些发现来编写和测试实现;展示提供了完整示例。

REA 会上传我的应用吗?

REA 在本地分析目标。你的智能体接收工具结果,而其模型提供商有自己的数据政策。

如果遇到 bug 该怎么办?

先更新;最近的版本可能已经修复了它。

对于通过以下方式安装的 CLInpm install --global或bun add --global:

rea update

对于通过以下方式进行的智能体设置npx:

npx rea-agents@latest setup

如果你正在使用智能体,请完成设置刷新并重启它。重试同一任务。如果问题仍然存在,提交 issue并附上你的 REA 版本、目标类型、复现步骤和错误输出。

文档

从网站的实操指南开始。

通过以下方式报告漏洞SECURITY.md。

Star 历史

🎉110,000 GitHub stars —— 感谢大家!

感谢所有使用 REA、报告 bug、请求功能、测试构建和贡献修复的人。

REA GitHub star history

免责声明

请参阅DISCLAIMER.md以获取负责任使用指南。

本项目对非法或未经授权使用的立场涵盖所有 REA 版本、分发渠道和平台;每份副本均保留其适用的许可证。

REA 用于合法研究、教育、互操作性、软件保存,以及对你拥有或获授权检查的软件进行分析。

贡献

我们很希望你能帮助 REA!提交 issue以报告 bug 或建议功能,或发送 pull request以改进代码或文档。

请参阅CONTRIBUTING.md以了解开发环境设置和检查,测试以了解验证通道,以及架构图以了解项目结构。

许可证

MIT

REA 编写的代码采用 MIT 许可证。第三方材料保留其各自的许可证和版权声明;请参阅第三方声明以了解依赖清单、保留的许可证文本和外部工具条款。

你必须合法获取并获得授权才能使用商业工具,包括 IDA Pro / Hex-Rays 反编译器、Hopper 和 JEB,均须遵守其适用的许可证。REA 不授予任何工具许可证、密钥或激活权限。试用版和演示版仍受供应商条款约束,包括用户、功能、自动化和输出共享方面的限制。破解副本、盗用密钥、未经授权的密钥共享以及绕过许可证限制均不被授权。本指南不修改 MIT 或第三方许可证。