ARTICLE · 1168436
我让 AI 拆开了一个闭源 App
先说件可能让你不太舒服的事:你电脑上那些标着"闭源"的软件,里面长什么样,现在一句话就能看见。
半年前这是门手艺,现在是一句提问
有个开源项目叫 REA,github的地址是:https://github.com/morluto/rea,中文说明把它译成"逆向一切"。
它在 GitHub 上建仓刚好半年,star 数现在是 156,161,fork 35,995,最近一次代码提交就是今天。GitHub 上 star 过 15 万的仓库,掰手指能数完。
还有个细节我觉得挺有意思:说明里专门写了一行"本项目未发行任何加密货币或代币"。换个说法就是,已经有人拿它的名字发币骗钱了。
那它到底做了什么。
我尽量说人话。逆向工程,就是手上只有一个编好的软件、没有源代码,你得把它是怎么做的倒推出来。老派的搞法是打开 IDA 或 Hopper 这类工具,屏幕上几万行汇编,一行行看,猜哪个是函数、哪个是循环、哪个变量装的是用户名。一个中等功能按天算,复杂模块按周算。
这是认知门槛,光努力补不上。我写前端,看一眼就劝退了。
REA 做的事其实不复杂:把这些逆向工具打包成一个服务,插给 AI 用。
插上之后你就不读汇编了。你说"帮我看看这个 App 的搜索是怎么实现的",AI 自己去调工具、拆包、追调用链,回头把结果讲给你,每条结论后面跟着证据。
以前,是不懂行的人被扔进一间黑屋,屋里一桌子仪器。现在屋里多了一个会使仪器的助手,你负责提问就行。
它到底能拆什么
我不摆功能表了,按你自己能不能上手分三档。
不用装任何东西,今天就能试的:
Electron 桌面应用。VS Code、Notion、Obsidian、Figma 桌面版、飞书桌面端,全是这一类。
这类软件有个特点:界面部分根本就是网页代码。剥开外壳是个压缩包,里面装的是没编译过的 JS。不需要逆向工具,直接读就行。
网站和抓包文件也能看,页面结构、请求响应、接口字段。
还有 .NET 程序。这一档在国内特别有用,因为很多传统行业的系统,酒店、医院、制造业的管理后台,都是 .NET 写的,基本处于半公开状态。
要装个工具,大概半小时:
安卓 APK、真机调试、进程行为录制。
要专业工具,也是真正的硬骨头:
编译成机器码的原生程序。这一档得配 Hopper(付费)、Ghidra(免费)或者 IDA(很贵)。再往上是固件、硬件信号、区块链合约字节码。
分界线很清楚:这个软件有没有把代码编成机器码。没编的,捡便宜。编过的,才是真功夫。
三个真事
都是从官方公开案例里挑的,不是演示,是有人真做出来了。
Notion 的剪贴板。有人问 AI,Notion 复制内容的时候格式为什么能保留得那么好。AI 找到渲染层的剪贴板接口,顺着 preload 和 IPC 追到主进程(这是 Electron 里连接"网页"和"系统"的那根管子),把它处理富文本的逻辑扒了出来。
DX-Ball 的声音。这是个老游戏。有人想搞明白,球跑到左边和右边的时候,声音是怎么算出左右声道的。
AI 顺着调用链找到那个计算函数,看懂指令,把残缺的伪代码翻回了 C。
结果是这样:重建出来的函数跑通了原版 3205 个测试用例,编译后 63 个字节,跟原版一模一样。
不是"差不多还原"。是逐字节对上。
一款九十年代的 DOS 游戏。有人去拆 PC-98 时代的弹幕游戏,从 16 位指令里把子弹环形角度的算法还原出来,还跟当年的编译器输出做了比对。这个我承认看得半懂,但结果挺唬人。
拆一款三十年前的商业游戏,搁以前,一个老逆向工程师得干几个星期。
我自己试了下
【待填 · 这一整块发布前删掉】下面是填空提示,不是正文。建议实测后自己写,或者整节删掉。
— 我用的是:

然后我让他帮我设计一个类似的应用原型

— 它给我的东西:

— 我没想到的地方:还真可以做出来
— 看起来似乎跟其他博主生成的ui差不多,但是其实有一些轮廓了,后续还需要继续打磨
说点技术之外的
我做产品的,真正让我在意的不是"能拆软件"这件事。
是另外三件事。
竞品分析要变天了。
以前想知道竞品某个功能怎么做的,无非那么几种办法:猜、托人问、自己从零重新设计一遍。
现在多了一条路:直接看。
我说的不是抄。搞明白一个功能是怎么被设计出来的,跟抄它是两回事。前者能让你知道对方为什么这么选,后者只能得到一个形似神不似的壳。这个区别,做过产品的人都懂。
"闭源"这个词的定义在松动。
我们默认了一件事:不开源,别人就看不到我的实现。
这个默认现在得打个问号。对 JS、.NET、Electron 这几类软件来说,你的实现从来就没真正藏起来过,只是以前没人愿意花力气看。
AI 最擅长的恰好就是花力气看。
还有一层,是 AI 自己的能力边界又往外挪了一格。
这两年我们聊 AI 写代码,聊的都是生成。REA 是另一条线上的:理解。它不生产代码,它读懂代码,包括那些没有源代码的代码。
想试的话
电脑上要有 Node.js 22 以上,然后一行命令:
npx rea-agents setup
它会帮你把配置注册好,改之前先备份你原来的文件,让你确认。跑完重启你的 AI 编程工具,Claude Code、Cursor、Codex 都行。
想直接找个 Electron 应用练手,不用装额外的东西:
npx -y rea-agents@latest \ analyze-javascript-application \ /你电脑上某个App的路径 --json
真心建议从第一档开始。找个 Electron 桌面应用,问一个你自己真好奇的问题。别一上来就啃二进制,那个会劝退。
三条红线,不是走过场
项目的说明文档写得很直白,我照搬:
一,只能分析你拥有的、或者获得授权分析的软件。不要绕任何软件的使用许可。写文章、做分享,建议只碰开源软件、老游戏,或者你自己的东西。
二,"进程录制"不是沙箱。你让 AI 去观察一个陌生的可执行文件,它会用你的账号权限把它真的跑起来。别拿来路不明的样本试。
三,它不承诺还原原始源代码。出来的是伪代码,最后判断还是靠人。别指望一键拿到别人的代码库。
最后
这个项目让我感慨的不是技术。
是它印证了一件事:信息不对称这种护城河,正在肉眼可见地变浅。
半年前,看清一个闭源软件的内部,是门需要专门训练的手艺。
现在它是一句提问。
你可以不喜欢这个变化。但你最好知道它已经发生了。
你怎么看?如果你工作里也有"想知道竞品怎么做的"这种时候,评论区聊聊,我挑几个下次拆。















































































