ARTICLE · 1145013
没源码也能让 AI 拆开黑盒
看到别人产品里某个交互特别顺手,想照着做一个,过去这件事的终点通常是两条路:要么对方开源,你直接读源码;要么你拿起反汇编工具自己拆。第一条看运气,第二条的门槛高得离谱——光是把 IDA、Ghidra 这类东西装上配好、再把汇编看懂,就足以劝退绝大多数人。
morluto/rea 干的事,是把这套逆向能力接到 AI 智能体上,让你用说话的方式,去弄清一个没有源码的目标到底怎么工作的。它刚突破两万颗星,TypeScript 写成,MIT 许可。
它到底是什么
REA 是 Reverse Engineer Anything 的缩写。它的形态是一个 MCP 服务器——一种让 AI 智能体调用外部工具的标准接口,这里不展开,你把它理解成"智能体手边的工具箱"就行。
这个工具箱把几大类分析能力收拢到一起:原生二进制、JavaScript 和 Electron 应用、.NET 程序集、网站、Android 安装包、固件,甚至记录的崩溃现场和网络抓包。过去这些东西各有各的拆法,工具链基本不重合,现在统一交给智能体去调度。
有一点是这个项目反复强调、也最打动我的:它要求分析结果必须带上证据和局限。智能体不能只甩一句"这个函数大概在做加密",而要把它依据的符号、交叉引用、字符串、反编译出的伪代码一并摆出来,并标明哪些地方还没查实。逆向这行,一个没有依据的结论基本等于没有。
它怎么工作的
流程不复杂。你(或你的智能体)提出一个问题,比如"Notes 这个 App 的搜索是怎么实现的"。REA 通过 MCP 去检查目标、追踪相关代码,把发现连同证据一起返回。智能体拿到这些代码、引用和尚未确定的点之后,再去解释行为、写实现、跑测试。
关键在于"证据随行"。传统做法是人读反汇编、自己归纳;REA 把每一步发现都标了出处,智能体在解释和重构时有了凭据,你也能回过头去验证它没乱讲。
它能分析什么
这是 REA 最实在的部分。下面这张表是它官方能力清单的精简版,我按"你想弄清什么"重新归了类:
你会注意到一个规律:凡是"静态读文件"的(JS、.NET、部分资源),都不需要额外引擎;凡是"要真正运行或深度反编译"的(原生二进制、Android、固件),都得你本机先备好对应的专业工具。这点下面细说,因为它决定了你上手的第一道坎落在哪儿。
上手其实比想象轻
最短路径是这一条,它会在你的智能体里注册 REA 的 MCP 服务器和配套的工作流指令,并备份你已有的配置:
npx rea-agents setup运行后会让你勾选要接入哪些智能体。官方明确支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build,其余智能体在文档里有手动注册方式。改完记得重启智能体。
不想装全局、只想先试一次的话,可以用终端模式直接分析一个解包出来的 Electron 应用目录:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json输出里会有模块划分、import 关系、Electron 主进程和渲染进程的边界,以及每条发现对应的证据。Windows 上路径写成 "D:/apps/example" 这种形式就行。
打算长期用就装个全局命令:
npm install --global rea-agents rea --help之后更新是 rea update。环境上有个硬要求,Node.js 得 22.19 以上(或 24.11 以上、或 26+),低了跑不起来。这点容易被忽略,装之前先看一眼版本。
那个绕不开的依赖真相
原生二进制分析这块,REA 自己不实现反汇编引擎,它复用你本机已有的 Hopper、Ghidra 或 IDA。设置时可以选让它帮你装 Hopper,但需要你点头批准。也就是说,如果目标是编译好的 native 程序,你还是绕不开装一个反汇编器。REA 省掉的是"怎么驱动这个反汇编器、怎么把结果拼成结论"这部分,不是反汇编本身。
好消息是它尽量替你省事:需要 Hopper 时 REA 会自己把它拉起来,不用你先手动开好;静态 JavaScript 和 .NET 分析则完全不需要这些引擎。所以我觉得,从 JS/Electron 应用入手,是大多数人最现实的起点——装个 Node 就能跑,零额外前置。
几个真实案例
光说能力太空,README 里给了三个能戳中人的案例:
DX-Ball,一个声音声像定位的计算。作者顺着一条声音调用追进位置到声像的辅助函数,检查指令,把不完整的伪代码还原成 C。这个还原通过了 3205 个原始 x86 用例,并重现了全部 63 个编译后的函数字节。
Notion,追踪它的 Electron 剪贴板桥。从渲染进程的剪贴板 API 出发,顺着 preload 和 IPC 追进主进程,看它如何处理富文本剪贴板格式。
TH04,一款 PC-98 老游戏的 DOS 子弹环计算。检查原始 16 位指令,还原固定和瞄准角度的计算,把重构出的 C++ 和历史编译器输出做比对。
这三个案例的共同点是:都不是"看个大概",而是追到指令级、再把结论重构成可编译可验证的代码。这也是 REA 想卖的那张牌——不只是看懂,还能落地。
谁适合,谁先别碰
适合的我觉得有两类。一类是做产品或竞品调研的:看到某个 App 的交互想借鉴,过去只能靠猜或专门找人拆,现在自己让智能体扒一遍。另一类是安全研究员:二进制、Electron、.NET、Android、固件全覆盖,日常分析能省掉大量重复劳动。
不太适合的场景我也想说清楚。如果你的目标做了强反逆向保护,或者跑在强沙箱里,工具能拿到的信息会很有限,别指望它变魔术。再就是,它对"大规模二进制"的表现我还没实测——案例偏中小型目标,真到几百兆的二进制能不能扛住,README 没给数字,我也不敢下结论。还有一点:分析在本地进行,意味着被分析的程序就跑在你自己的机器上,对付来路不明的样本,该有的隔离意识还是要有。项目自己也写了免责声明,强调只用于合法的逆向研究与重建。
值不值得装
如果指望它让你一夜之间看懂汇编,那肯定达不到。但"看不懂"和"想看懂要花两周"之间,多了个便宜的中间选项。它刚破两万星、今年四月才建仓,迭代很快、更新也频繁,这种项目通常处在最好用也最有坑的阶段——rea update 几乎是日常操作,因为它真的常修常新。
平时要是总有那么一点"这玩意儿到底怎么实现的"的冲动,装一个放着,我觉得不亏。