ARTICLE · 1189062
一周十万星,但 AI 没让软件完蛋
一周十万星,但 AI 没让软件完蛋
上周,AI 开发者圈被一个叫 REA 的项目刷屏了。
它涨得很快:10 月 6 日还不到 1 万星,到 10 月 12 日已经超过 11 万。Star History 的统计里,那一周(10 月 4 日至 10 日)它新增 78,800 星,在当周所有项目里排第一。

火到什么程度?连"它到底有多少星"都成了一个没法回答的问题。同一周里,中文信源给的口径有 7 万、8 万、11 万、12 万、13 万,英文那边甚至有人写 22 万、24 万。有一篇复盘说得很直白:素材翻遍了,没有任何来源能证实那些特别整的数字,站得住的只有一句——一周约十万星,霸榜 Trending。
这个小细节,其实把这类新闻的性质说清楚了:星数是最不值得看的东西。 它是围观量,不是使用量,更不是能力证明。它有传播价值,没有判断价值。
而这轮传播里真正被喊出来的那句话,比星数更值得拆。AI 教育博主 Matthew Berman 看到这个仓库之后发了两个词:Software is done(软件完蛋了)。Replit 的 CEO Amjad Masad 也发了推,说 AI 驱动的逆向工程和反编译进展"快得离谱",很快所有软件都会变成事实上的开源。

(顺带说一句,某篇流传很广的中文稿把这位 CEO 写成了"Ahmad Msad",正确拼写是 Amjad Masad。名字写错是小事,但它是个提示:这一轮传播里,转述的保真度并不高——同样的事后面还会再出现一次。)

这话说对了一半。下面说另一半。
一、先把它是什么说准:它不是反编译器,是调度层
REA 全称 Reverse Engineer Anything,纯 TypeScript,MIT 协议,装法只有一行 npx rea-agents setup。名字里的"逆向一切",最容易让人误以为它造了一台新机器。
实际不是。它自己不带反编译器。
它干的事,是把早就存在的那些逆向引擎——Ghidra、IDA Pro、Hopper、JADX、Binwalk——封装成 MCP 工具,让 Claude Code、Cursor、Codex 这类 AI 编程助手直接调用。MCP 是让模型调用外部工具的一套通用协议;接上之后,agent 就多了一副手脚。
被它调用的那些工具,一点都不新:Ghidra 2019 年开源,Hopper 的历史能追溯到 2011 年,IDA 从 90 年代起就是逆向工程师的标配,JADX 拆安卓包也拆了十年。

所以把它放在专业圈里看,它更像一次重新包装。真正多出来的是两件事:一是广度——多个引擎、多种格式,装一个包全接上;二是证据格式——每条结论必须带出处,标明来自哪个引擎、置信度多少、以及"这次没查实什么"。
第二条看着不起眼,却是分水岭。逆向工程天生和残缺信息打交道:二进制里没有注释,符号常被剥掉,很多地方只能靠上下文推。老手和外行的差别,往往不是谁猜得准,而是分得清哪一步是看见的、哪一步是推的。REA 把这份自觉写进了输出格式。
它自己的 README 里有一句话写得很老实:不声称能还原原始源码,也不会自动克隆一个应用。

二、把两个数字并排放,落差就出来了
先看官方样板间。
REA 展示过一个 DX-Ball(早期的弹球游戏)音效声像函数:还原出的 C 代码通过了 3,205 组行为比对,用旧版编译器重放,生成的机器码和原程序 63 个字节完全一致。项目层面的数字是 55 个函数、45,380 次与原代码的比对、33 个函数编译后字节一致。
这是单函数级的成绩,而且是可验证的那种——编译出来逐字节比对,非对即错,没有解释空间。
再看另一端,那个整产品尺度。
同一周真正让普通人看到这件事的,是游戏。10 月初,一批老游戏突然能在浏览器里直接玩了:《光环:战斗进化》《半条命》《暗黑破坏神》,还有《GTA5》和《使命召唤:现代战争 2》。最详细的一份复盘来自逆向开发者 Maurice Heumann——他让十几个 Claude Code 和 Codex 并行干活,把一款射击游戏 99% 的函数还原成 C++,其中 83% 编译出来和原程序逐字节一致。
但他用的不是 REA,是 Hex-Rays 官方的 MCP。 这一点值得重复:REA 只是这波浪潮里名字最响的那一个,不是唯一一个。
而"照着做一个完整产品"的落差有多大,看那个复刻 Adobe 全家桶的项目最清楚。它自己的 roadmap 上写着:可用于真实工作,约 45%。一位像素画师看过它的 Photoshop 复刻版之后的评价是"完全没法用"。项目作者自己也在往后退——先说一个月内功能对齐,后来改成"一年内 99%"。
还有一份对照实测更值得看:有人拿 REA 和一个不装任何逆向工具的普通 agent 比,让它们各自重建 Mac 的预览应用。普通 agent 先跑完了。 结论是:REA 的产出扎实,但并没有比"看着截图和常识推理"的 agent 强多少。
一端是单函数逐字节可验证,一端是整产品"45% 可用"。同一套工具,在两个人人都用"逆向"概括的尺度上,差得不像同一样东西。媒体混用的,正是这两个尺度。
三、真正做这行的人,不太买账
外部的热度,和专业圈内的评价,几乎是两条曲线。
Elias Bachaalany 是逆向工程教材《Practical Reverse Engineering》的合著者,早年在 IDA 的开发商 Hex-Rays 工作过。REA 被各路人马刷屏的时候,他转发了其中一条推介,开头就一个词:炒作。接着列了几个早就存在的同类工具——意思是,你们只是没见过。
这话有根据。让 AI 接上逆向工具这件事,GhidraMCP、ida-pro-mcp 这些开源项目去年就在做了。就在 REA 走红前不久,ida-pro-mcp 的作者、调试器 x64dbg 的开发者 Duncan Ogilvie 说,他用 IDA 的 MCP 插件,大约一小时解完了当年 Flare-On 的全部题目。Flare-On 是谷歌 FLARE 团队每年办的逆向挑战赛,题目大多取材自真实的恶意软件分析。
能拆到什么程度,圈内口径也不统一。安全博主轩辕之风认为,没加壳的程序 AI 轻松拿下,轻度加壳也行,但 VMP 这类高强度虚拟化保护目前还啃不动;他还批评 REA 连动态调试都没有。一家做逆向产品的公司也在 X 上说,碰到加壳样本,模型分析照样卡住。
工具多甚至未必是好事。Duncan Ogilvie 说过,他不认为给模型暴露更多工具能让它表现更好。现在确实已经有 REA 用户抱怨:它塞给 agent 的工具说明太长,用不了多久就把上下文挤满了。
四、写第一手实测的那个人,自己是最谨慎的
这轮传播里被引用最多、也最该原样读一遍的,是一位安全博主写的实测复盘。他的自我定位很关键:"我不是什么逆向工程专家。"
他拿 AI 拆了七类东西:两个 Cocos2d 游戏、两个 Unity 游戏、一个混淆过的 App、一个加壳的银行级 App、一个加壳的游戏。银行 App 那个最出圈——商业壳、多层加密、反调试、root 检测、模拟器检测、SSL Pinning 一整套防护,最后被逐层绕过,在 root 过的模拟器上打开并抓到了请求。
但他的记录里有几处,比"AI 好强"这层意思重要得多。
第一,七个案子里有一个没解开。那个加壳游戏做了双层加密,他让 AI 试了一天,壳没脱掉;最后是绕开加密层、从 Lua 资源那边把核心逻辑拿到手的——并没有得到原本想要的东西。他写了一句:"这样应该也算是成功吧?"这个自问里的犹豫,比任何标题都诚实。
第二,AI 会在你追问之前先骗过你。他说很多时候 AI 其实只还原到 interface——只有方法定义和参数,没有实现逻辑。但 AI 会照着这些命名和结构自己脑补一套逻辑,写出一份头头是道的报告。你不追问,就会以为源码真的还原出来了。他后来的做法是每次都逼一句:你有拿到原始码了吗?要能看到实作才算数。
第三,费用被传歪了。他的原话是:多数 App 在 30 分钟左右,在 Cursor 的计费下花不到 5 美元;另一个 Unity 游戏用了 4000 万 token,约合 27 美元。至于"平均 30 美元"——他说的是"如果纯看 token 用量,我猜平均落在 30 块上下"。这是一个作者对不同计费口径的猜测,不是实测均值。它被下游文章当成事实写进了正文。
第四,他自己留了退路:"有没有可能 AI 逆向被我讲得好像很强,实际上在专业人士眼中没这么厉害?也有这个可能。"
这不是谦虚。他看到的是:他拆过的东西,专业逆向社区里都有人拆过、写过心得。AI 不是凭空解开了什么没人解开的题,而是把"人类已经解开的题"重做了一遍——只是快得多、门槛低得多。
五、拆开看和照着做,法律上是两件事
REA 主页上的宣传语是:即使没有源代码,agent 也能检查应用、解释功能怎么工作、展示证据,"并为你的项目实现类似功能"。
"拆开看"和"照着做",在法律上不是一个动作。
在中国法下,大致要过三道门。
商业秘密这一层相对宽松。最高法关于商业秘密案件的司法解释写得很清楚:对从公开渠道取得的产品进行拆卸、测绘、分析、取得技术信息,不算侵犯商业秘密。前提是东西来路正——先用不正当手段拿到秘密、再拿逆向当说辞的,法院不认。
版权这层是开了门,但门上有锁。《计算机软件保护条例》第十七条允许为了学习和研究软件内含的设计思想和原理而使用软件;2020 年修正的《著作权法》第五十条,把"计算机软件反向工程研究"列为可以避开技术措施的法定情形之一。但同一条紧跟着一句限制——不得向他人提供避开技术措施的技术、装置或者部件。一个人在自己电脑上做研究,和把这种能力打包成一行命令发给十几万人,是不是一回事,法条没给答案。
合同这层最容易出事。大多数商业软件的用户协议里都有一条禁止反编译的条款。美国 2003 年的 Bowers 诉 Baystate 案,联邦巡回上诉法院认定软件许可里的禁止逆向条款有效,逆向之后做出竞品的一方按违约赔了钱。欧盟反过来——合同里禁止为互操作而反编译的条款,一律无效。同一件事,换个地方答案不同。
比这三道门更麻烦的,是一道被拆掉的墙。
软件行业应对"看得见功能、不想碰代码"这件事,有一套老办法叫净室开发:一组人去拆对方的产品,只写出功能说明书;另一组从没看过对方代码的人,照着说明书从头写。两组之间隔着一道墙,墙就是日后打官司时的证据,用来证明新代码是独立写出来的。
REA 把这道墙拆了。读反编译结果的是这个 agent,写新代码的还是这个 agent,中间没有任何隔断。Hacker News 上有人把这种做法叫作"洗知识产权"。
游戏圈把这步推到了极端。Maurice 那种做法叫字节级匹配反编译:写出来的源码,编译之后要和原程序一个字节都不差。净室追求的是"我没照着你写",字节级匹配追求的是"写得和你一模一样"——目标正好相反。
发行商的反应很直接。10 月 6 日,一个能在浏览器里玩 GTA5 的网站上线,几个小时后就被下架。据媒体盘点,Rockstar、Activision、Bethesda 的法务都已经动手,撤下了自家游戏的浏览器版本。
还有一层在数据上。REA 的说明里写着分析在本机运行——工具确实跑在你自己电脑上。但 agent 要理解这些分析结果,就得把反编译出来的代码片段、调用关系和字符串,发给它背后的模型服务商。如果你拆的是客户交给你的软件,或者签过保密协议的东西,这一步本身就可能违约。
六、护城河挪了,但只挪了一层
回到那句"软件完蛋了"。
先说它说对的部分:客户端没有秘密。 只要代码跑在用户手边的设备上,混淆、加壳、反调试就都只是延缓被还原的时间,不是阻止。AI 把这件早就成立的事的时间成本,从"专家几天"压到了"新手半小时"。这是真实的变化,对做客户端产品的团队是实打实的提醒。
但"完蛋"这个词,吞掉了一个前提。
服务器上的逻辑,AI 一点都拿不到。 你拆得开装在自己电脑上的那一半,拆不开别人机房里的那一半。鉴权、风控、推荐、计费——真正决定一个产品能不能赚钱的东西,这些年本来就在往服务端挪。这次被 AI 掀开的,是客户端那一层剩下的遮羞布。
往回看,Elias Bachaalany 给做产品的人的建议其实很直接:只要程序跑在用户手里,就能被拆开,唯一稳妥的办法是把关键逻辑放到服务器上。他补了一句——目前是这样。
剩下的护城河,也不是"我的代码写得比你难"。开源这件事早就证明了:代码可以被获取、被研究、被修改,但企业仍然愿意为商业订阅、托管和技术支持付钱。以 Red Hat 为例,它的订阅说明里列出的价值——生产级软件、生命周期管理、兼容性、补丁更新、专家支持——没有一项是"给你一份源代码"。
一个版本发布之后谁维护?依赖出问题谁判断影响?多个产品一起用谁验证兼容性?这些问题不会因为代码公开就自动消失。
所以回到最朴素的判断:REA 改变的不是软件有没有价值,是软件靠什么收钱。 当"实现难度"和"信息不透明"越来越撑不住定价,收费的基础就得转向对业务的理解、对客户的响应、对系统长期运行的保障。
护城河没有消失,它只是从"你看不到我的代码",挪到了"你拿不走我的服务能力"。挪完之后还能剩多厚,取决于你自己那一层有多厚。
而星数涨到多少,跟这件事其实一点关系都没有。















































































