REA(Reverse Engineer Anything):把逆向工程交到 AI Agent 手里

REA

2026 年 10 月,一个名为 REA 的开源项目在 GitHub 上引发了罕见的关注潮。它的全称是 Reverse Engineer Anything,直译过来就是“逆向一切”。项目的核心主张很直接:你不需要拥有源代码,让 AI 编程助手去分析一个已经打包好的软件,搞清楚某个功能是怎么实现的,并且每一步都要给出证据。

REA 在极短时间内冲上 GitHub Trending 榜首,星标数从一万左右迅速攀升至数十万量级,相关讨论从开发者社区扩散到技术媒体和社交平台。但抛开热度,REA 本身做的事情其实相当克制:它不自研反编译器,也不承诺自动还原源码,而是把已经存在多年的专业逆向工具,接到了一个 AI 能够调用的接口上。

它解决的是什么问题

逆向工程长期以来是一门手艺活。当你看到一个应用里有个很顺手的功能,想知道它底层怎么做的,传统路径是打开 Ghidra、IDA 或 Hopper,手动翻汇编、追调用链、读伪代码。这些工具本身足够强大,但它们是为人类设计的:图形界面、鼠标点选、输出是一屏屏汇编和伪代码。AI 编程助手想参与这件事时,面对的是一个它“点不动”的界面。

REA 补的就是这一层。它通过 MCP(Model Context Protocol,模型上下文协议)把这些逆向能力封装成一组统一工具,让 Claude Code、Codex、Cursor、Gemini CLI 等支持本地 MCP 的编码助手可以直接调用。同时,它也提供一套同源的命令行方式,不走 Agent 的人同样能在终端里完成分析。

所以更准确的描述是:REA 并没有让 AI“学会”逆向工程,它只是把逆向工程的工具递到了 AI 面前。

它是怎么工作的

REA 的工作链路可以概括为:用户提出一个具体问题,Agent 通过 MCP 调用 REA,REA 在本地驱动相应的分析引擎去检查文件结构、反编译函数、追踪调用关系或搜索字符串,然后把结果返回给 Agent。Agent 基于这些结果向用户解释,必要时写出一份参考实现。

这里有几个设计取向值得注意。第一,不重复造轮子。 REA 本身不做反编译,而是把 Hopper、Ghidra、IDA 当作可选的“深度分析提供者”。第二,结论必须带证据。 REA 的输出不只是“这个函数大概是这么回事”,而是附带支撑结论的文件摘要、字节区间、指令位置,以及明确列出“哪些地方没查清”。第三,分析全程本地运行,目标文件不会被上传到外部分析服务。

REA 能分析的对象覆盖面相当广。原生二进制(Mach-O、ELF、PE)可以借助 Hopper、Ghidra 或 IDA 做深度分析;JavaScript 和 Electron 应用只需 Node.js 即可静态梳理模块、IPC 边界和 preload 脚本;.NET 程序集、Android APK、网站、网络抓包、固件、WASM 字节码也各有对应的处理路径。不过不同目标对依赖的要求差异很大,原生分析需要用户自行安装并配置反汇编引擎,而 JS 和 .NET 的静态检查则可以开箱即用。

官方展示的案例

REA 的 GitHub 仓库里放了几个完整的案例研究,每个都带有可核对的验证结果。最常被引用的是 DX-Ball 的声音算法还原:在 1996 年的这款打砖块游戏里,砖块在屏幕上的横向位置会影响声音偏向左耳还是右耳。反编译器最初给出的伪代码缺失了关键参数和计算过程,Agent 通过 REA 继续追查指令、调用方和内存中的常量,最终还原出一个完整的 C 表达式。验证结果是:还原后的函数通过了 3,205 组原始 x86 输入测试,并且用指定编译器复现了原函数的全部 63 个字节。

另一个案例涉及 Notion 桌面端的剪贴板实现,Agent 沿着渲染进程的剪贴板 API 追到 preload、IPC 和主进程,弄清了富文本格式是如何通过一个 ID 关联到本地文档块数据的。这些案例的共同点是:结论不只是一段解释,而是一条从二进制层面可以逐项核验的证据链。

热度之下的冷静边界

REA 的爆火伴随着大量夸张叙事,“软件已死”“闭源护城河崩塌”之类的说法在社交媒体上广泛传播。但多位逆向工程师和早期使用者指出,实际能力存在明显边界。

首先,REA 对无壳或轻度加壳的程序效果较好,但面对 VMP 等高强度虚拟化加壳样本容易失效。它缺少动态调试能力,服务器端业务逻辑完全无法触及。其次,上下文膨胀是一个现实问题:大量工具描述会快速消耗大模型的上下文窗口,分析密度较高的程序时可能出现模型卡顿或中断。此外,有实测者反馈,在某些复杂任务(如给安卓游戏添加新角色)中,AI 改完的安装包直接卡死,结果并不理想。

项目作者自己在 README 中也写得相当克制:REA“不声称恢复原始源代码或自动克隆应用”。它降低的是理解和调查的门槛,而非提供一键复制的能力。

谁适合用它

REA 的实际价值场景比较明确:安全研究人员可以用它加速恶意软件或漏洞的初步分析;开发者可以在合规前提下研究自己拥有或获授权检查的软件,理解某个功能的实现思路;对旧系统维护和遗失源码的恢复工作,它也能提供一条比纯手工更高效的调查路径。安装方式很简单,npx rea-agents setup 会引导用户选择 Agent 客户端并写入 MCP 配置,重启 Agent 后即可用自然语言发起调查。

但需要清醒的是,REA 的热度中有相当一部分来自“AI 克隆一切”的想象,而非工具本身的实际能力边界。它是一个设计良好的连接器,把成熟的逆向工具链接入了 AI 工作流,仅此而已——但这本身已经足够有价值。对于需要理解无源码软件的人来说,它省去的是在多个专业工具之间来回切换、手动串联分析步骤的大量时间,而不是替代了对分析结果的判断和验证。

项目地址:https://github.com/morluto/rea