REA(面向代理的逆向工程)是一种中间件工具,它使编码代理获得检查和解释软件工作原理的能力。如图所示(IMG-001),展示了编码代理通过询问 REA、REA 分析目标并返回基于证据的发现的流程。正如项目网站所言,‘REA 为您的代理提供检查程序并解释其作用的工具’,其目标是充分理解特征,以便能够解释、修改或重建它们。”该工具支持对原生二进制文件、JavaScript/Electron 应用以及网站等多个领域的分析,正如其 GitHub 仓库所述:“一种用于在二进制文件、应用和运行行为之间进行逆向工程的 MCP。“

图示显示了 REA 调查流程,其中编码代理提出问题,REA 使用工具分析目标,并使代理获得基于证据的发现。
REA 调查流程:代理查询 REA,REA 检查目标并返回代码、追踪和未知信息,供代理使用。github.com

此图示说明了 REA 通过模型-上下文协议连接运作,使代理能够检查软件并获得关于其行为的基于证据的发现。

REA 通过模型-上下文协议连接运作,代理在此连接中使用自然语言提出请求并获得基于证据的发现。如图所示(IMG-002),展示了 REA 在 Hopper 反汇编器中启动其分析桥以检查和追踪原生二进制的机器码和函数。在调查为什么 Windows Calculator 在计算 200 + 10% 时返回 220 时,REA 检查了 Calculator DLL,并显示百分比处理程序会根据当前操作进行分支:对于乘法或除法,它将百分比值视为简单分数(current / 100);而对于加法或减法,它会计算第一个操作数的百分比(current × previous / 100)。这解释了结果:200 的 10% 等于 20,因此 200 + 20 = 220。在另一个案例中,REA 检查了一个基于 Chromium 的恐龙游戏,提取了更新逻辑 `if (this.currentSpeed < this.config.MAX_SPEED) { this.currentSpeed += this.config.ACCELERATION; }`,揭示该游戏从 6 单位开始,每帧加速 0.001,直至达到上限 13,这使得代理能够重建一个可调速的匹配副本。

截图显示了 REA 的分析桥在 Hopper 反汇编器内部运行,而正在检查一个本机二进制可执行文件。
REA 在 Hopper 内部启动其分析桥以检查和追踪本机二进制的机器码和函数。github.com

此图像展示了 REA 的技术实现,其中它与如 Hopper 这样的逆向工程工具集成来分析本机二进制文件,类似于它检查 Windows Calculator DLL 的方式。

要激活 REA,代理需要运行 `npx rea-agents setup`,这将在用户批准后注册 MCP 服务器并安装所需的任何分析后端。如图所示(IMG-003),展示了 REA 的实际应用示例,如 DX-Ball 声音平移修改、Notion 剪贴桥集成和 TH04 弹环分析。此设置支持多种代理,包括 Claude Code、Codex、Cursor、Gemini CLI 和 Grok Build。配置完成后,代理可以通过提出自然语言问题来调查任何目标,REA 不仅返回代码片段,还返回结论背后的证据,如特定的汇编指令、函数追踪和常量值。这种基于证据的方法使代理能够验证其理解并构建准确的重建,这代表了 AI 代理在无需访问源代码的情况下与现有软件交互和学习方式的重大进步。

REA 展示的拼贴图,包含 DX-Ball 声音平移修改、Notion 剪贴桥集成和 TH04 弹环分析。
REA 展示展示了实际应用:DX-Ball 声音平移、Notion 剪贴桥和 TH04 弹环修改。github.com

这些展示说明了 REA 能力的真实世界示例,类似于文章中描述的 Windows Calculator 和恐龙游戏示例。