夜雨聆风学习资料网

ARTICLE · 1166766

AI不看源码,居然拆懂了闭源软件!15万人星标的开源神器,1条命令就能装

AI不看源码,居然拆懂了闭源软件!15万人星标的开源神器,1条命令就能装

先做一道小学题。

打开 Windows 计算器,敲 200 + 10%,按等号。屏幕上出现的是 220。

第一次见到的人多半会愣一下——直觉上,这结果看着就不对。其实微软的逻辑是:加号后面的百分数,取的是前一个数的百分比。10% of 200 等于 20,200 加 20,正好 220。

问题来了:你怎么向别人证明这套逻辑?

它写在一个你看不到源代码的闭源组件里。以前想搞明白这种事,得请一位会逆向工程的工程师——所谓逆向工程,就是不看图纸直接拆机器,从成品反推它是怎么造出来的——让人家拿专业工具去啃二进制,啃完再给你讲明白。

现在,这事变成了 AI 的活。有个开源项目,你对着 Claude 说一句「Windows 计算器的百分比是怎么算的,给我看证据」,它会自己去读那个组件的机器指令和调用关系,然后把答案连同证据一起端给你。

这个项目叫 REA。截至 10 月 13 日早上,GitHub 上 152,222 颗星;Hacker News 上主帖 783 分、329 条评论;今天早上,知乎热榜也挂出了 92 万热度的相关讨论。

我的结论先放在这儿:能拆开看,不等于能抄走。这篇文章把怎么装、怎么用、边界在哪,一次讲清楚。

一、它到底是个啥

一句话:给编码助手插上「拆软件」工具的插件。

REA 是一个 MCP 服务器,加一套命令行工具。MCP 说人话,就是 AI 助手的工具插座——插上什么,助手就会用什么。装好 REA 之后,Claude Code、Codex、Cursor 这些编码助手就多了一双手:能自己去拆软件、读结构、找证据,而不是只会在聊天框里给你打字。

它能拆的东西,官方列了 21 类目标:Electron 应用、网站、SQLite 数据库、安卓 APK、Go 二进制、WASM、EVM 字节码,甚至固件和网络抓包记录。多说一句 Electron,就是用网页技术打包成的桌面软件,你常用的不少笔记和协作工具都是这类。覆盖面从「你手机里的 App」一直到「路由器固件」,基本是把逆向工程师的日常战场整个搬了过来。

项目本体叫 morluto/rea,2026 年 4 月 14 日建仓,MIT 协议,主体用 TypeScript 写的。npm 包叫 rea-agents,最新版 6.4.0——10 月 9 日到 11 日,三天连发了 6.2.0、6.3.0、6.4.0 三个版本。这个迭代节奏,说实话有点离谱,透着一股抢时间的味道。

说两个具体的工作场景。

场景一:你接手了一个没人维护的第三方工具,老板问「它到底往哪些地址发数据」。这种问题最麻烦的地方在于:没有源码、文档也没了,以前要么专门请人做流量分析,要么认怂说查不了。现在可以让 AI 拆开它的模块和调用关系,对着证据看。

场景二:团队看中了某个闭源软件的一个交互效果,想做个类似的。设计师能描述出「要那个感觉」,但没人说得清它底下怎么实现的,这种时候最让人头疼。问 AI,让它带着证据回答。

这两件事的共同点:答案原本锁在黑盒里,钥匙在少数逆向工程师手里。

二、三天两上首页,中文圈刚接棒

热度时间线是这样的:10 月 10 日,主帖上了 Hacker News 首页,标题就是那句口气很大的「Reverse – Engineer Anything」,783 分、329 条评论;10 月 12 日,另一位用户的仓库介绍帖又上了首页,69 分。三天两次,讨论还热着。

GitHub 星标曲线更直观——4 月建仓后一路小跑,10 月开始陡增,现在 152,222 颗星、35,109 次 fork(10 月 13 日早上 5 点 45 分,GitHub API 实时数据)。

中文圈是今天早上开始发酵的:知乎热榜挂出了「AI 逆向工程项目 REA 爆火,闭源软件是否都要被迫开源?」的讨论,92 万热度。英文圈吵完了,中文圈刚开始。

注意,知乎吵的是一道情绪题。而工程上,REA 回答的是另一道题:没有源码的软件,它的行为能不能被理解、被验证。这两道题经常被搅在一起,后面我单独拆开说。

三、照着做:第一层,有 Node 就能跑

先把丑话说在前面:以下流程出自官方 README 和 rea.tools 文档,我写作用的这台机器没有实际运行安装(安装会改动本机 AI 助手的配置,研究阶段不宜乱动)。每一步以官方文档描述为准,你要是装的时候遇到出入,评论区喊我。

**第一步,查环境。**终端里敲:

node -v

要求 Node.js 22.x(≥22.19)、24.x(≥24.11)或 26+。版本不够先升 Node,别的都白搭。

**第二步,安装。**就一条命令:

npx rea-agents setup

它会列出支持的助手——Claude Code、Codex、Cursor、Gemini CLI、Grok Build——让你选。然后它会提议修改你的配置,你审一眼、批准,它会自动备份原配置。装完重启助手。

整个过程五分钟搞定。不对,应该说——只要你 Node 版本没问题,五分钟搞定。

**第三步,问第一个问题。**官方给了一个现成的提问模板:

Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.

翻译过来:搞懂备忘录的搜索是怎么实现的,给我看证据,然后给我的项目做个类似功能。Notes 和 search 都可以换成你自己的目标。

这句话里最值钱的是 "show me the evidence"——给我看证据。这四个单词有点意思,它把 AI 从「凭印象猜」逼到「拿着证据说话」。这其实就是用它的全部诀窍。

**第四步(可选),纯终端也能跑。**不通过 AI 助手、直接命令行分析一个 JS 或 Electron 应用:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

这条命令会输出目标应用的模块结构、imports 清单、Electron 的 IPC 边界(IPC 就是应用内部进程之间的传话通道),每一项都附证据。全程不需要 Ghidra、Hopper、IDA 这些逆向引擎——有 Node 就行。

日常维护两条命令:想常驻安装就 npm install --global rea-agents,然后 rea --help 看用法;更新用 rea update,npx 用户重跑一遍 setup。官方特别提醒:项目迭代快,建议保持最新版本。

四、第二层:原生二进制,门槛是真的

JS 和 Electron 这层为什么零门槛?因为网页技术打包的应用,结构和符号基本都留着,工具能直接读。但原生二进制——C、C++ 编译出来的 exe 和 DLL——是另一回事。要看伪代码(把机器指令翻译回半人话)、汇编、调用链,你需要 Ghidra、Hopper、IDA 三者之一,setup 里可以选装 Hopper。

官方案例能给个能力参照。注意口径:以下数字出自 rea.tools 官方展示页,不是本文实测——

DX-Ball(一个老牌弹球游戏)的声像重建,通过了 3,205 个原始 x86 测试用例,复现了全部 63 字节的编译函数。TH04,1990 年代的 PC-98 游戏,它的 16 位弹幕环角度计算被复原。还有人对 Notion 的 Electron 客户端做了剪贴板 IPC 桥的完整追踪。

大文件分析慢的话,有两个环境变量可以调引擎启动超时:REA_GHIDRA_STARTUP_TIMEOUT_MS 和 REA_HOPPER_STARTUP_TIMEOUT_MS。

如果你没有逆向背景,我的建议是别硬闯第二层。第一层能玩的东西已经够多了,第二层是留给有引擎经验的人的。门槛不丢人,看不见门槛才丢人。

五、三个值得说道的设计

**第一,结论自带证据链。**每条发现都附着指令片段、反汇编或来源位置,外加一句局限说明——比如「本结论基于静态分析,未覆盖运行时行为」。普通聊天模型回答你「应该是这样吧」,你没法验证;REA 的回答更像审计报告,每页都有出处编号。对拿它做技术决策的人来说,这一条比任何跑分都重要。

**第二,全本地运行。**README 的 FAQ 写得明白:你的目标文件不会被上传,分析在本地做完。这对涉及公司代码和客户数据的场景是硬需求——别小看这一条,多少好工具就死在「数据要出域」这一关上。

我在写这篇稿子的时候,把它的 README 和官网翻了个底朝天。说实话,FAQ 里那句「不会上传你的应用」,我来来回回确认了三遍才敢写进来——这种承诺,读者是要拿自己公司的工作数据去信任的。

**第三,CLI 和 MCP 是同一套工作流。**不装进 AI 助手,也能在终端跑完整分析。工具不绑死在任何一家 AI 上。在今天这个助手频繁换血的市场里,这是个聪明的工程决定:今天用 Claude,明天换 Codex,工具链不用动。

所以这件事真正的分水岭,不是 AI 又变聪明了一点,而是「验证」被做进了工具里。

六、能拆,不等于能抄

现在回答知乎那道 92 万热度的问题。

REA 火了,闭源软件是不是都要被迫开源了?恰恰不是。REA 拆的是「行为」——这个软件在做什么、怎么做的;它没有、也不能把别人的源码变出来。能被理解,和必须开源,是两码事。

但真正要紧的是另一条线:什么能拆,什么不能碰。

依据中国《著作权法》和《计算机软件保护条例》,反向工程有有限的例外空间。落到实操上,边界大概是这样——

可以做的:分析自己写的软件;分析已获授权的目标;为学习研究、安全审计、互操作性研究而做的分析。比如公司采购了供应商的闭源组件,合同里写明了授权范围,做安全评估就属于正当用途。

不能碰的红线:绕过技术保护措施,比如序列号验证、加密壳;破解之后分发给别人;把闭源代码抄进自家产品。碰任意一条,就不是「学习」了,是违法。

一句话立场:工具中立,用法担责。这篇文章也不会提供任何针对商业闭源软件的破解示例——不是不敢,是没道理。

真想动手的话,收尾前过一遍这张清单,尤其最后两项:

写在最后

回到开头那道计算器题。200 + 10% = 220,这个逻辑藏在闭源组件里,外界只能靠猜。现在你一句「给我看证据」,AI 会自己翻出指令,指给你看。

改变在哪?看懂一个黑盒软件的能力,原来攥在少数工程师手里,现在下放给了每一个装了 Claude 的人。但能力下放了,责任没有跟着下放:拆开看是学习,抄走用是侵权,这条线不在工具里,在你自己手里。

装好之后,欢迎回来评论区聊聊:你拆的第一个软件,打算选谁?

相关学习资料