REA 发布:让智能体逆向分析原生二进制、Electron 与 .NET 应用
Reverse engineer anything with agents, from app behavior down to native binaries
REA 是一个通过 MCP 接入智能体的逆向工程工具,可让智能体在没有源码的情况下分析应用功能、给出证据并生成实现,支持原生二进制、JavaScript/Electron、.NET 程序集、网站、Android APK、固件等多种目标。
在某个应用里看到一个功能,想把它用到自己的产品中?让你的 agent 用 REA 去调查它。它可以在没有源代码的情况下检查该应用,解释这个功能如何运作,展示证据,并为你的项目构建一个版本。
REA 将你的 agent 连接到用于检查原生二进制文件、JavaScript 和 Electron 应用、.NET 程序集以及网站的工具。你也可以在终端中使用同样的工具。分析在本地运行,结果会包含每个结论背后的证据和局限性。
安装过程会将 REA 注册到你的 agent,并安装匹配的工作流说明。原生分析可以使用现有的 Hopper 或 Ghidra 安装;安装程序可在获得批准后选择安装 Hopper。静态 JavaScript 分析则不需要任何引擎。
访问 REA 网站,获取安装说明、图文指南和真实案例研究。
快速开始
设置你的 agent
在已安装 Node.js 和 npm 的情况下,运行:
npx rea-agents setup
选择你的 agent,查看建议的更改,然后批准它们。安装过程会添加 REA 的 MCP 服务器和匹配的工作流说明,并备份现有 配置。之后重启你的 agent。
安装程序支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 以及 其他 agent。有关提供商配置和 手动 MCP 注册,请参阅 安装与设置。
询问你的 agent
Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.
将 Notes 替换为你的目标应用以及你想了解的功能。
使用终端
检查解压后的 JavaScript/Electron 应用目录或 ASAR:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
结果包含模块、导入、Electron 边界及其证据。
将路径替换为你的目标,例如 Windows 上的 "D:/apps/example"。
要安装 rea 命令以供日常使用:
npm install --global rea-agents rea --help
对于原生分析,请先配置提供商。有关原生命令、提供商选择、 快照和脚本编写,请参阅 CLI 与证据指南。
更新 REA
REA 变化很快,新版本包含频繁的缺陷修复。请保持你的 安装为最新版本。
对于通过 npm 安装的 CLI:
rea update
要刷新你的 agent 注册和技能,请运行更新时打印的安装命令。
如果你使用 npx,请用以下命令更新你的 agent 设置:
npx rea-agents@latest setup
查看设置更改并重启你的 agent。对于一次性 CLI 命令,
请使用 npx rea-agents@latest 后跟该命令。
REA 如何工作
你的 agent 通过 MCP 调用 REA 来检查目标并追踪相关代码。 REA 返回带有证据的发现结果。agent 利用它们提出后续 问题、解释行为,或编写并测试实现。 CLI 命令使用相同的工作流。
你可以分析什么
REA 需要 Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,以及 npm。 其他工具和宿主支持取决于目标:
| 目标 | REA 返回的内容 | 要求与指南 |
|---|---|---|
| 原生二进制文件 | 伪代码、汇编、字符串、符号、调用和引用 | Hopper、Ghidra 或 IDA;原生分析 |
| 离线 ELF 布局 | 节、段、原始符号/重定位以及静态缓解候选 | 调用方提供的 pwntools,运行于 Linux x64;二进制诊断 |
| EVM 字节码 | 分派选择器、字节偏移、推断的参数和可变性 | 本地 raw/hex 载体;离线 EVM 指南 |
| 记录的 Linux 崩溃 | 原始记录、每个已记录线程的寄存器/信号以及可选的映射候选 | 调用方提供的 pwntools;可选的 GDB/pwndbg;记录的崩溃 |
| JavaScript / Electron | 模块、导入、源映射、路由、IPC 和原生插件关系 | Node.js 和 npm;应用分析 |
| 网站 | 页面结构、脚本、网络观测结果和请求的截图 | Chrome 系浏览器;浏览器分析 |
| 已保存的网络捕获 | 请求、响应、暴露的载荷和源位置 | HAR;在 Linux 上使用 mitmdump 进行原生 mitmproxy 捕获;捕获指南 |
| .NET 程序集 | 元数据、CIL 指令、声明的原生依赖项和构建比较 | 静态检查;托管代码指南 |
| Android APK | 清单声明、类、反编译方法和引用 | 在 Linux/macOS 上使用无头 JADX 和完整 JDK;Android 指南 |
| 固件 | 区域、提取结果和原生分析交接 | 在 Linux 上使用 Binwalk / Unblob;固件指南 |
| 包和资源 | 文件清单、摘要、plist、Apple 包结构和提取的资源 | 工件和 JavaScript 指南、Apple 应用程序 |
| 进程行为 | 终端输出、交互、退出和文件系统观测结果,以及运行比较 | 带原生 PTY 的 Linux/macOS;进程捕获 |
静态 JavaScript 和 .NET 检查会读取提供的文件,而不运行应用程序。运行时捕获会使用你的用户权限运行或与所选目标交互;每个运行时指南都描述了其影响。
原生格式和主机支持因提供商而异。请参阅 Hopper 和 Ghidra 设置、 IDA 指南,以及 实验性 Windows Ghidra 支持。 Ghidra 还支持 16 位 DOS 分析。 有关提供商选择,请参阅 CLI 指南。 查看 版本可用性 以了解自最新 npm 版本以来新增的功能。
展示
DX-Ball:重建声音声像计算
追踪一个声音调用进入其位置到声像的辅助函数,检查指令, 并将不完整的伪代码转换为 C。该重建通过了 3,205 个 原始 x86 用例,并复现了全部 63 个编译后的函数字节。
Notion:追踪 Electron 剪贴板桥接
找到渲染器的剪贴板 API,沿着它经过预加载和 IPC 进入 主进程,并检查富剪贴板格式。
TH04:恢复 DOS 子弹环计算
检查原始 PC-98 游戏的 16 位指令,恢复固定和 瞄准角度计算,并将重建的 C++ 与 历史编译器输出进行比较。
如果你在有趣的东西上使用过 REA,我们很想看看。在 issue 或 pull request 中分享你的 案例,包括目标、 你的问题、REA 如何帮助了你,以及你发现了什么。
常见问题
哪些代理可以使用 REA?
任何支持本地 MCP 服务器的代理。设置会配置 支持的代理;其他客户端可以使用 手动 MCP 注册。
我需要 Hopper、Ghidra 或 IDA 吗?
深度原生分析会使用其中之一。静态 JavaScript 和 .NET 检查 无需原生分析引擎即可工作。设置可以在批准后安装 Hopper; Ghidra 和 IDA 使用你现有的安装。请参阅 提供商设置。
我需要先启动 Hopper 吗?
当操作需要时,REA 会启动 Hopper。在 macOS 上,首次运行对话框可能会 要求你选择演示模式或激活许可证。请参阅 Hopper 启动和故障排除。
从 skills.sh 安装该 skill 会做什么?
该 skill 会为你的 agent 提供调查指令。使用 rea setup
注册 REA 的 MCP 服务器并安装匹配的指令,然后重启
your agent。参见仅安装 skill。
REA 会返回什么代码?
原生分析返回伪代码和汇编。JavaScript/Electron 分析 会恢复模块及其关系。你的 agent 使用这些发现来 编写并测试实现;展示案例提供了完整示例。
REA 会上传我的应用吗?
REA 在本地分析目标。你的 agent 会收到工具结果,而其 模型提供商有自己的数据政策。
如果我遇到 bug 该怎么办?
先更新;最近的版本可能已经修复了它。
对于通过 npm 安装的 CLI:
rea update
对于通过 npx 进行的 agent 设置:
npx rea-agents@latest setup
如果你正在使用 agent,请完成设置刷新并重启 它。重试同一任务。如果问题仍然存在,请提交 issue, 附上你的 REA 版本、目标类型、复现步骤和错误输出。
文档
从网站的实操指南开始。 有关确切的选项、前置条件和结果契约:
- 安装与设置:agent 注册、提供商配置、更新和卸载。
- 就绪与故障排除:诊断单个 agent 或分析引擎。
- CLI 与证据:命令、提供商选择、快照、导入/导出和退出状态。
- MCP 契约和agent 提示词:工具结果、会话和引导式调查。
- 工具目录:构建生成的工具、提供商和 CLI 命令清单。
- 路线图:计划中的工作和能力跟踪器。
通过SECURITY.md 报告漏洞。
贡献
我们很希望你能帮助 REA!提交 issue 来 报告 bug 或建议功能,或者发送 pull request 来改进代码或文档。
有关开发设置和检查,请参见CONTRIBUTING.md, 有关验证通道,请参见测试,有关项目结构,请参见 架构图。
项目链接
网站 · npm · skills.sh · Issues · Security
Star 历史
🎉 20,000 GitHub stars — 谢谢你们!
感谢所有使用 REA、报告 bug、测试构建和贡献修复的人。
免责声明
REA 提供用于合法逆向工程研究、分析和重建的工具。你有责任获得任何必要的授权并遵守适用法律。本项目不认可非法或未经授权的使用。
许可证
来源:Hacker News · github.com