在某个 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 需要 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 指南。检查发布可用性
展示
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 安装。
原生分析返回伪代码和汇编。JavaScript/Electron 分析会恢复模块及其关系。你的智能体使用这些发现来编写和测试实现;展示提供了完整示例。
REA 会上传我的应用吗?REA 在本地分析目标。你的智能体接收工具结果,而其模型提供商有自己的数据政策。
如果遇到 bug 该怎么办?先更新;最近的版本可能已经修复了它。
对于通过以下方式安装的 CLInpm install --global或bun add --global:
rea update
对于通过以下方式进行的智能体设置npx:
npx rea-agents@latest setup
如果你正在使用智能体,请完成设置刷新并重启它。重试同一任务。如果问题仍然存在,提交 issue并附上你的 REA 版本、目标类型、复现步骤和错误输出。
文档
从网站的实操指南开始。
- 安装与设置:智能体注册、提供商配置、更新和卸载。
- 就绪与故障排查:诊断单个智能体或分析引擎。
- CLI 与证据:命令、提供商选择、快照、导入/导出和退出状态。
- MCP 契约和智能体提示词:工具结果、会话和引导式调查。
- 工具目录:自动生成的工具、提供商和 CLI 命令清单。
- 路线图:计划中的工作和能力追踪。
通过以下方式报告漏洞SECURITY.md。
Star 历史
🎉110,000 GitHub stars —— 感谢大家!
感谢所有使用 REA、报告 bug、请求功能、测试构建和贡献修复的人。
免责声明
请参阅DISCLAIMER.md以获取负责任使用指南。
本项目对非法或未经授权使用的立场涵盖所有 REA 版本、分发渠道和平台;每份副本均保留其适用的许可证。
REA 用于合法研究、教育、互操作性、软件保存,以及对你拥有或获授权检查的软件进行分析。
贡献
我们很希望你能帮助 REA!提交 issue以报告 bug 或建议功能,或发送 pull request以改进代码或文档。
请参阅CONTRIBUTING.md以了解开发环境设置和检查,测试以了解验证通道,以及架构图以了解项目结构。
许可证
REA 编写的代码采用 MIT 许可证。第三方材料保留其各自的许可证和版权声明;请参阅第三方声明以了解依赖清单、保留的许可证文本和外部工具条款。
你必须合法获取并获得授权才能使用商业工具,包括 IDA Pro / Hex-Rays 反编译器、Hopper 和 JEB,均须遵守其适用的许可证。REA 不授予任何工具许可证、密钥或激活权限。试用版和演示版仍受供应商条款约束,包括用户、功能、自动化和输出共享方面的限制。破解副本、盗用密钥、未经授权的密钥共享以及绕过许可证限制均不被授权。本指南不修改 MIT 或第三方许可证。
