ARTICLE · 1160759
一个开源工具让AI学会拆软件:一周从1500星涨到7.7万,闭源应用还稳吗
一个开源工具让AI学会拆软件:一周从1500星涨到7.7万,闭源应用还稳吗
一个开源工具让AI学会拆软件:一周从1500星涨到7.7万,闭源应用还稳吗
过去,一个开发者想在自家产品里复刻某个闭源软件的巧妙功能,往往只能凭猜测。让大模型直接读二进制,它会一本正经地编出看似标准的函数,却和程序真实的执行路径毫无关系。现在,一个叫 REA 的开源项目,想把这条缺口补上。
一、一周从 1500 星涨到 7.7 万
REA 全称 Reverse Engineer Anything(逆向工程一切)。按 Wayback 存档和作者自己的提交记录,它的星标曲线是这样的:10 月 4 日 21:01(UTC),1,513 星、149 个 fork;10 月 6 日,5,957 星;10 月 8 日,作者提交里出现“庆祝 2 万星”;10 月 9 日跨过 3 万和 4 万;10 月 10 日跨过 5 万和 6 万;到 10 月 11 日上午,GitHub API 报出 77,333 星、16,538 个 fork。六天半,从 1,500 到 7.7 万。
安装量的曲线更陡。npm 上 rea-agents 包的日下载量:10 月 3 日 418 次,10 月 5 日 4,048 次,10 月 8 日 9,000 次,10 月 9 日 19,983 次。10 月 3 日到 9 日这一周共 39,279 次,而此前 23 天合计只有 423 次。
值得注意的是,它并不是“发布当天爆红”。仓库创建于 2026 年 4 月 14 日,npm 包 7 月 12 日首发,真正点火是在 10 月初。
二、它不是反编译器,是“接线”
REA 自己说得很直白:它既不是反编译器,也不是模型,而是“管道”。它是一个基于 MCP 协议(Model Context Protocol)的服务器加命令行工具,跑一条 npx rea-agents setup,就把它注册进你手里的编码智能体——官方安装文档列出 17 个受支持的客户端,包括 Claude Code、Codex、Cursor、Gemini CLI、Windsurf、Devin、OpenCode 和 GitHub Copilot CLI。
接上之后,智能体可以调用它桥接的一整排逆向工具:原生二进制走 Hopper、Ghidra 或 IDA,拿到伪代码、汇编、字符串、符号和交叉引用;Electron 与 JavaScript 应用不用原生引擎,直接出模块图、源码映射、路由和 IPC 边界;网站走 Chrome 系浏览器的页面结构、脚本和网络观察;此外还有 .NET 程序集、经 JADX 的安卓 APK、经 adb 的真机、经 Apktool 的资源、JEB 工程、经 Binwalk 或 unblob 的固件、经 EVMole 的以太坊字节码、经 pwntools 与 pwndbg 的 ELF 及崩溃,以及经 mitmproxy 的 HAR 抓包。
硬性门槛只有一条:Node.js 22.19 以上(24 线为 24.11)。
三、真正的设计选择:把“未知”也交出来
REA 最值得琢磨的一点,是它对“证据”的执念。
反编译出来的伪代码,本身就带着两次翻译的误差:编译器把 C 变成机器码,反编译器再猜着还原。REA 的做法,是把猜测和“收据”一起递给你——调用者是谁、用到哪些常量、哪一段它没能还原,全部随结论一并返回。项目对新工具的准入规则写得很清楚:必须“保留观察与未知项”。
它的 DX-Ball 案例很能说明问题。目标是 1996 年那款 Windows 游戏里负责声像的函数,位于 0x00406400,作用是把砖块的横向位置换算成左右声像值。团队把恢复出的 C 函数拿回原始 x86 上,跑了 3,205 个行为用例(从 0 到 640 的每个整数位置乘以 5 个声像刻度)逐一比对;再用 Visual C++ 4.0 编译器重放,复现了函数的全部 63 个字节。更大范围的重建仓库则报告:55 个维护中的 C 函数、45,380 次与原代码的对照、33 个函数编译输出逐字节一致。
分析在本机进行,二进制不会被上传。但它同时提醒:你的智能体要读到工具结果,而“模型提供方有它自己的数据政策”。
四、争议与还没补上的缺口
爆红也把问题一起带了出来。Hacker News 上一个 722 分的讨论帖提了几个没法回避的疑问:同一个工具,既能用来理解你自有程序的旧代码,也能用来拆解别人的闭源产品,模型侧的拒绝策略(refusal)该怎么处理,项目并没有回答,issue 里搜“refus”也搜不到;有人注意到 fork 与 star 的比例长期在 19% 到 21%,异常偏高;还有人担心,当“任何花 200 美元订阅编码智能体的人”都能产出像模像样的反编译结果时,逆向社区会迎来一波“半吊子洪流”。
要补的坑也不算少。Ghidra 在大二进制上冷启动可达 330 秒;Hopper 的交互式工作流需要商业授权;Windows 上的 Ghidra 支持仍是实验性。社区侧则已有 Ghidra MCP、IDA Pro MCP 等同类服务器在前,REA 给出的答案是“广度与打包”:一次安装,17 个客户端,十几种目标,一套证据契约。
对开发者来说,这个项目真正值得抄的,也许不是它接了多少工具,而是它坚持的那份“证据契约”——让智能体的结论可被检查。至于它对闭源软件意味着什么,一句话就够了:读懂一个客户端,成本已经降到一次提问。
资料来源:GitHub 仓库 morluto/rea(README、release、commit)、rea.tools 展示页与 DX-Ball 案例研究、REA 安装文档、npm rea-agents、Trendshift、GitHub Trending、Hacker News 讨论帖。