它到底在解决什么麻烦
软件没有源代码时,普通的“看一看文件”往往不够。你可能需要先找入口,再跟踪模块、IPC、函数调用、网络请求或汇编,最后还要判断哪些结论有证据。REA 的定位,是让智能体通过 MCP 调用一组逆向分析工具,围绕一个具体问题持续追踪目标。
例如,你可以给它一个 Electron 应用目录,询问剪贴板功能经过哪些层;也可以给它一个原生二进制,要求解释某个计算过程。REA 返回的不只是结论,还包括支撑结论的代码位置、调用关系或其他分析证据,以及当前还不能确定的部分。
从一个真实任务开始:查清一个功能,再做出相似版本
最适合展示 REA 工作流的任务,是“我喜欢某个应用里的一个功能,但看不到源代码,想弄明白它怎么实现”。官方给出的提问示例是分析 Notes 应用的搜索功能,并要求智能体展示证据、为自己的项目构建类似功能。这个例子说明,REA 关注的是从问题到调查,再到实现的连续过程。
- 先提出问题:告诉智能体目标应用和具体功能,问题越具体,后续调查越容易收敛。
- 再检查目标:REA 可以分析应用文件、模块、导入关系、路由、IPC、原生扩展,或者调用相应的原生分析工具。
- 查看证据:结果会带回支撑判断的内容,而不是只给一个无法核对的摘要。
- 继续追问或实现:智能体可以根据调查结果解释行为,并辅助写出和测试一个相似功能。
这套流程的关键是“证据跟着结论走”。逆向分析中,伪代码可能不完整,变量名也可能缺失;把证据和未知项一起返回,能让使用者知道哪些地方已经定位,哪些地方仍需要人工判断。
输入和输出:不同目标,对应不同准备
REA 覆盖的对象很宽,但并不意味着所有目标都用同一套依赖。静态 JavaScript 和 .NET 检查可以直接读取提供的文件,不运行应用;运行时捕获则会以当前用户权限启动或交互目标,具体影响要看对应指南。
| 分析目标 | 可以得到什么 | 额外条件 |
|---|---|---|
| JavaScript / Electron | 模块、导入、源码映射、路由、IPC 和原生插件关系 | Node.js 和 npm |
| 原生二进制 | 伪代码、汇编、字符串、符号、调用和引用 | Hopper、Ghidra 或 IDA |
| 网站 | 页面结构、脚本、网络观察和指定截图 | Chrome 系浏览器 |
| .NET 程序集 | 元数据、CIL 指令、原生依赖和构建对比 | 静态分析不需要额外原生引擎 |
| Android APK | Manifest 声明、类、反编译方法和引用 | Linux、macOS 或 Windows x64 上的 JADX 和完整 JDK |
除此之外,REA 还列出了 SQLite 数据库、WASM、EVM 字节码、固件、网络抓包、Linux 崩溃记录、Android 设备和进程行为等分析入口。这里要特别留意“调用方提供”的依赖:例如 WASM 需要 WABT 1.0.42,固件分析需要 Linux 上的 Binwalk 或 Unblob,Android 设备分析需要 adb。
安装路径:先让智能体接入,再决定是否深入
基本环境是 Node.js 和 npm。项目要求 Node.js 22.x(至少 22.19)、24.x(至少 24.11)或 26 及以上。最短的安装命令是 npx rea-agents setup,之后选择要接入的智能体,检查它准备修改的配置并批准。
安装过程会注册 REA 的 MCP 服务,同时写入匹配的工作流指令,并为已有配置创建备份。完成后需要重启智能体。官方列出的支持对象包括 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等;其他客户端可以按照文档手动注册 MCP。
- 只想分析 JavaScript 或 Electron:可以先从应用目录或 ASAR 开始,使用
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json。 - 经常使用命令行:可以执行
npm install --global rea-agents,再用rea --help查看入口。 - 需要分析原生程序:先配置 Hopper、Ghidra 或 IDA 提供者,再使用对应的 CLI 或 MCP 工作流。
如果命令行是通过 npm 或 Bun 全局安装的,可以用 rea update 更新。使用 npx 接入智能体时,则重新执行 npx rea-agents@latest setup,检查配置变化并重启智能体。项目更新较快,官方也建议遇到问题时先更新。
哪些地方最有用,用户会得到什么
REA 的优势不只是支持目标多,而是把“分析工具”变成智能体能够调用的工作流。你不用先记住每个工具的参数,再手动拼接中间结果;可以先用自然语言提出问题,再让智能体根据返回结果继续调查。
- 跨工具调查:同一个项目可以连接原生二进制、Electron 应用和网页分析入口,适合需要从应用层一路追到底层的任务。
- 证据化结果:分析结果包含依据和限制,使用者能够区分已确认信息与推断,而不是把智能体的回答当成无条件正确。
- 命令行也能用:不想通过智能体交互时,可以直接调用 CLI,结果还支持 JSON 等适合脚本处理的形式。
- 本地分析:REA 在本地分析目标。智能体会收到工具结果,但模型服务商仍有自己的数据政策,敏感项目不能只看“本地运行”四个字就放松审查。
官方案例展示了这条路线的具体样子:可以跟踪 Notion 的 Electron 剪贴板桥接,也可以分析游戏中的原生函数和旧式 DOS 程序的指令。案例属于项目提供的展示资料,不应直接当成所有目标都能得到同样结果的保证。
适合谁,不适合谁
如果你的工作是理解已有软件,而不是从零开发一个普通业务页面,REA 的匹配度会更高。它尤其适合需要定位未知行为、研究互操作性、做软件保存,或对自己拥有和获授权的软件进行分析的人。
- 适合开发者:想参考某个应用的功能行为,或需要理解 Electron、网页与原生模块之间如何配合。
- 适合逆向和安全研究人员:需要同时处理二进制、调用关系、运行记录、抓包或设备信息,并希望把调查过程交给支持 MCP 的智能体协助。
- 适合有具体问题的人:比如“这个功能从哪里进入”“数据经过哪些 IPC 边界”“这个二进制调用了什么”,具体问题比泛泛地要求“分析整个程序”更适合这套工具。
- 不太适合初学者直接全量使用:如果你既不了解目标软件,也不熟悉文件、权限、反编译器和运行环境,REA 不会自动替你完成判断。它降低了工具编排门槛,但没有消除逆向分析本身的学习成本。
限制、依赖和使用边界
最现实的限制是,REA 的能力取决于目标类型、操作系统和外部工具。原生深度分析需要 Hopper、Ghidra 或 IDA;其中商业工具必须由使用者按各自许可证合法取得,REA 不提供工具授权、密钥或激活资格。试用版和演示版也要遵守厂商关于用户、自动化和输出分享的条款。
运行时捕获还有权限和副作用问题。项目文档明确区分了静态读取与运行目标两类行为,因此在处理真实设备、生产应用或包含敏感数据的文件前,应先看对应指南,确认它会执行什么、读取什么,以及当前用户权限能做什么。
- 大二进制可能需要提高 Ghidra 或 Hopper 的启动超时设置。
- Windows 上的 Ghidra 支持被标为实验性能力,不能按成熟平台的预期安排任务。
- 某些分析依赖 Linux x64、完整 JDK、adb、tshark、pwntools 或其他调用方工具。
- 智能体得到的是工具结果,模型服务商的数据政策仍然独立存在。
- REA 面向合法研究、教育、互操作性、软件保存,以及分析自己拥有或获授权检查的软件。
公开资料里没有讲得很细的部分也需要留意:不同版本、不同分析提供者和不同目标文件之间,结果深度可能不同。项目提供了安装、就绪检查、CLI、MCP 合约和各目标指南,遇到错误时应先根据目标类型确认依赖,再更新 REA 并重新生成智能体配置。
最后怎么选
现在就值得试的人,是手上有明确分析任务,并且已经能使用 Node.js、npm 和某个支持 MCP 的智能体的人。尤其是 JavaScript、Electron、.NET 或网页目标,可以先从静态分析和命令行开始,门槛相对清楚;有原生二进制任务的人,则要把 Hopper、Ghidra 或 IDA 的准备成本一起算进去。
可以先观望的人,是只想找一个“输入软件就自动还原全部源码”的工具,或者没有合法分析权限、也不愿处理外部依赖的人。REA 能把调查流程组织起来,能提供证据,也能帮助智能体继续实现,但它没有承诺所有目标都能被完整还原。基于事实和限制来安排任务,才是它更可靠的用法。
AIPG AI导航专注于收录和解读 AI 工具、AI 网站与智能体资源。


