rea 的全称是 Reverse Engineer Anything,一个做逆向工程的 MCP 工具。它的口号很直接:看到一个喜欢的功能,把它搞明白,一直到二进制层面。核心场景是让 Agent 在没有源码的情况下检查一个应用,解释它怎么工作,还给你证据。
解决的问题
传统逆向靠人肉翻反汇编,慢而且结论难复现,还容易漏。rea 把这套能力包成 MCP server,Agent 直接调用,检查完返回带证据和局限性的发现,而不是一段没有出处的伪代码。它覆盖的目标类型很广:原生二进制、JavaScript/Electron 应用、.NET 程序集、Android APK、固件、网络抓包,甚至 GPU 代码对象和模型文件(GGUF/safetensors)。官方 showcase 里有两个代表性案例:重建 DX-Ball 游戏的声音平移计算,以及追踪 Notion 的 Electron 剪贴板桥,都是从应用行为一路下探到实现的完整链路。它本地运行,不上传目标应用,这对逆向这种敏感操作是关键前提。
安装与用法
第一步是给 Agent 装 REA 的 MCP server 和对应的工作流指令:
npx rea-agents setup
它会列出支持的 Agent(Claude Code、Codex、Cursor、Gemini CLI 等),审查并批准改动后重启即可。想全局用 CLI 命令就装包:
npm install --global rea-agents
rea --help
纯静态分析 JavaScript/Electron 应用不需要额外的反汇编引擎,一条命令直接出结果:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
关键设计:证据链
rea 最有价值的设计是证据链。每个分析结果都记录来源、文件跨度、出处,明确标出结论的局限。这让 Agent 的判断可以追溯,而不是「模型说这个函数做了什么」。返回的东西分两类:静态分析给模块、导入、符号、字符串;深度分析靠 Hopper、Ghidra 或 IDA 给伪代码和汇编。Agent 拿到的是一套可追问、可验证的中间产物,而不是一段黑盒结论,这正是它能被信任的原因。这个设计对任何做 Agent 工具的人都有参考价值:让模型输出可追溯的证据,而不是裸结论,是它能不能被用在严肃场景里的分水岭。同样的思路放到你自己的 agent 工具里,就是每条结论都带上出处和局限,而不是让模型自由发挥。
关键设计:本地执行
第二个可复用点是默认本地执行、不上传目标。分析边界也做得很细:静态 JS 和 .NET 检查只读文件不运行,运行时捕获才以你的权限交互目标,每个运行时的副作用在文档里单独说明。这种「把副作用写清楚」的做法,值得任何让 Agent 碰本地文件的工具抄。
工作流拆解
rea 的典型工作流是:Agent 通过 MCP 问一个本地目标,rea 用对应的分析工具去检查、追踪,返回带代码引用和未知项的结果,Agent 再据此追问、解释行为,或直接写一个实现并测试。CLI 走的是同一套流程,所以你在终端里手动验证过的东西,Agent 也能复现。官方给的提示词模板很直白:「理解 Notes 应用的搜索是怎么工作的,给我看证据,然后给我的项目做一个类似功能。」
局限
它不是开箱即用。深度原生分析要求你已有 Hopper、Ghidra 或 IDA,setup 只能帮你装 Hopper。运行环境也收紧了:Node.js 要 22.x 及以上、24.x 及以上或 26.12.1 以上。对只想看看前端逻辑的人,静态 JS 分析够用;要下探到原生二进制的,得先备好反汇编工具。另外它明确只用于合法研究、教育、互操作和你拥有或获授权检查的软件,商业反汇编工具(IDA、Hopper、JEB)的授权也得自己解决。最后提醒一句:rea 给的是带证据的中间产物,不是替你下结论。它对「这个函数在干什么」能给出可追溯的证据,但「该不该这么实现」「会不会有法律风险」这类判断,还得人来拍板。