夜雨聆风学习资料网

ARTICLE · 1199981

当 AI 学会了拆别人的软件

当 AI 学会了拆别人的软件

一个逆向工程 Agent 项目三天冲向 12 万星:「闭源护城河」被重新提问


这两天,GitHub 上有个叫 REA(Reverse Engineer Anything)的项目火了。

火到什么程度?截至 10 月 12 日,仓库页面显示已经有291+ 万颗星。作为对比,年初引领全民热潮的那类现象级项目,爆发第三天累计新增是6 万颗星——也就是说,这个项目用差不多的窗口期,拿了对方两倍的量。

项目地址:https://github.com/morluto/rea

它做的事情,用 README 的原话说,是「通过 Agent 逆向分析一切,从应用行为一路深入到原生二进制层面」。

翻译成人话:给 AI 编程智能体接上反汇编器等逆向工具,让它去分析一个你拿不到源码的软件,追出某个功能是怎么实现的,再照着写一个出来。

它宣称覆盖的范围,一张表都装不下:

  • 原生应用:Mach-O、ELF、PE 和 macOS .app 程序包,包含 Swift 与 Objective-C 元数据;
  • 程序包与归档:ZIP、APK、IPA、ASAR,不解压就能生成文件清单;
  • Electron / JavaScript 应用:静态梳理入口点、模块、IPC 通道、preload 脚本与 source map,不需要把应用跑起来;
  • 网站:通过本地 DevTools 端点,被动观察你已经控制的浏览器;
  • .NET(托管 PE/CLI):不执行程序,直接检查元数据、成员与原生代码边界;
  • 版本差异分析:比较同一个应用的两个版本,生成变更报告。

过去四十年,软件的价值逻辑有相当一部分建立在「源码不可得」这个前提上:我写代码、编译成二进制、你拿不到,所以你来买。

REA 动摇的,正是这个前提本身。


1 它做的不是「写代码」,是「读代码」

有一件事得先说清楚,否则很容易把它理解错:REA 不是一个更强的代码生成器。

它解决的是另一个问题——当你看不到实现的时候,怎么知道它究竟是怎么做的。

场景其实很日常:你用着某个 App,发现里面某个功能做得特别顺——离线搜索秒出结果,同步机制丝滑得不像话。你想在自己产品里也搞一个,但没源码、没文档,连它怎么实现的都不知道。

以前遇到这种事,只能去学逆向工程。找一款反汇编器,啃它的接口文档,在一堆字符串和符号里翻来翻去,手动追调用图,在不同工具之间来回倒腾。这是一门硬功夫,绝大多数应用开发者根本没时间去学。

REA 换了个思路:把这活儿交给你的 AI 编程助手。

更准确地说,它是一个用 TypeScript 编写的开源(MIT 许可)工具,核心价值是在AI Agent 与逆向工具之间架了一层调度——让 Agent 有一种统一的方式来「调查」一个软件。有网友打趣说,这就像给 AI 编程助手配了一个反编译器。

值得注意的是,它调用的那些逆向工具一个都不是新的:做二进制反汇编的那几款,一款 2019 年开源,一款的历史可以追溯到 2011 年,还有一款从上世纪 90 年代起就是逆向工程师的日常工具。

REA 本身的创新程度,恰恰不在于它发明了什么算法,而在于它把过去必须由人亲手串联的一串操作,接进了编程工作流。这一点,是理解后面所有争议的钥匙。


2 门槛是怎么被抹平的

大模型进入逆向工程,并不是从这个项目开始的。

早在 2022 年,就有高校研究团队在论文《Pop Quiz! Can a Large Language Model Help With Reverse Engineering?》里测试过:让模型读代码和反编译后的伪代码,判断函数用途、程序具备什么能力、变量名和关键值可能是什么。

那是最早的一批尝试,但当时的 AI 还只是一个需要手动复制粘贴的「阅读理解外挂」。

随后几年,这条路分成了两岔:

  • 一派想办法绕过传统引擎,直接把机器码翻译成可读源码;
  • 另一派走向了 REA 这种 Agent 自动化架构——在大模型和传统逆向工具之间架一座桥,让 AI 长出「手和眼睛」,自动提取符号、追踪调用链、生成落地代码。

今年 4 月,有一位资深安全人员公开分享过他的实测:用 Agent 搭配逆向工具的 MCP 接口,从普通游戏一路拆到了银行级 App。

游戏类的基本不在话下——靠纯静态分析就能识别出加密算法并反推出密钥,有的靠观察密文特征猜出脚本格式,反推出异或密钥。

真正让人意外的部分是银行 App。这类应用通常有多层加壳和混淆,还带着反注入、反调试、root 检测、模拟器检测一整套防护。按他事后的总结,AI 一层层分析、绕过了这些保护,最终能在 root 过的模拟器上打开应用并抓到请求内容。

更值得记下来的是他的成本数据:很多 App 的逆向时间在 30 分钟左右,按当时的计费机制花费不到 5 美元;另一次用另一个工具试一个游戏,花了 4000 万 token,约 27 美元。平均下来,30 美元上下一个。

他自己感叹了一句,我觉得是整件事里最扎心的一句:

「那时我才意识到,我才是 AI 的限制器。」

以前觉得 AI 办不到的事,其实是自己不敢让它去试。


3 「克隆潮」其实已经跑了半年

REA 只是把这个话题推到了台前。真要说起来,这股潮水早就在涨了。

有网友提到:他怀疑这正是为什么最近 YouTube 推送里,突然出现了大量商业应用的 Vibe Code 克隆版视频——从 Adobe 到 Microsoft Office 的旗舰产品,应有尽有。

应用克隆这件事,在手游领域其实早就发生过:有人发了一个爆款小游戏,第二天就冒出一大堆仿制品。区别在于——以前是「一大堆」,现在是「数不清」。只要有人想要某款软件,就可能有人把它克隆出来。

眼下这事多数还发生在小团队身上,但影响面并不小。有网友实测后反馈,他拿几款国内主流创作类工具试了试,结论相当直白:「确实底裤都没了。」

他描述了几个具体场景:

  • 看到别人某个功能做得好,顺着模块、路由、IPC 通信一路查到实现逻辑,在自己的项目里直接复现;
  • 那些不给你开放接口的软件和库,也能拆,桌面端应用很多几乎是「裸奔」的;
  • 还可以用来拯救没有源码的老软件和老库——Agent 能读伪代码和汇编,甚至把老游戏里的算法精准还原出来。

于是问题就摆到了台面上:如果连没有源码的老软件都能被拆开、复现,软件公司的护城河到底在哪里?


4 争论的焦点:能拿走什么,拿不走什么

对于这个问题,公开讨论里大致有三类回答,方向出奇地一致——都不在代码上。

第一类:克隆能拿走的是代码,拿不走的是知识。

有技术专家在公开评论里提出,面对一个没有源码的软件,重点从来都不是「用另一个技术把它重写出来」,而是去推断它的业务逻辑,梳理清楚它到底在干什么。「你把它重演出来,我觉得这东西没什么意义。」

他更进一步说了一句话:「软件本身不是产品,软件中的知识才是。」

放到 REA 的场景里,这句话可以这样理解:它可以把二进制还原成代码,生成一份看起来完整的功能实现,但「还原出代码」和「理解了这个软件」之间还隔着一层东西——它为什么这样设计、业务规则是什么、哪些行为是刻意为之、哪些其实是历史包袱。这些不在二进制里。

第二类:真正要经营的是代码之外的东西。

有专家在接受媒体采访时,把答案落在了更外侧:「客户关系、社区、人与人之间的信任,以及对需求的洞察,才是公司真正要经营的东西。」

他还提到一个很实际的现象:过去有些人把「几个程序员写代码很厉害」当成创业理由,却没想清楚自己到底要解决什么问题、能为业务带来什么价值。软件和代码只是实现业务价值的手段。而如今开发成本下降,对真正懂行业、有 know-how、能解决实际问题的人来说,反而意味着他们有机会把经验转化成产品。

第三类:这不构成「软件的末日」。

有创业者公开表示不认同末日论:从能做出类似功能,到客户愿意付钱,再到能够长期服务好客户,中间有很多事情,拿到代码并不能替你完成。

他举的例子很有说服力:

「如果源码一旦可以获得,软件生意就无法继续,那开源软件的商业模式早就应该不存在了。」

这话站得住。很多开源项目的代码本来就人人可得、可研究、可修改,但企业仍然愿意购买相关的商业订阅、托管和技术服务。以红帽为例,它在官方订阅说明里列出的价值包括:面向生产环境的软件、生命周期管理、兼容性、补丁和更新,以及技术支持与专家资源。

客户付费买到的东西,明显超出了下载一份代码。

企业当然可以自己组团队把这些事做起来。但自己做也有成本——招聘、培训、积累经验,还得让这支团队长期存在。对一个版本发布之后:谁来维护?依赖组件出了问题,谁来判断是否影响业务?多个产品放在一起使用时,谁来验证兼容性?

这些工作不会因为代码公开了就自动完成。


5 但大厂也别急着安心

讲到这里,结论很容易滑向「所以原样不动也没关系」。这个结论是错的。

服务本身也会被 AI 改变。

过去需要很多人完成的排查、文档整理、配置检查和部分实施工作,以后可能由更小的团队借助 AI 完成。如果一家新公司既能做出合适的产品,又能以更低的成本提供可靠服务,它就有机会逐步建立客户信任。

原来的大厂不能因为自己过去拥有完整服务体系,就认为这种优势会永远保持下去——服务能力是可被追平的,只是比代码慢一些。

还有一层,讨论里被提得不多,但我认为更接近要害:

当「读懂一个软件」的成本被压到 30 美元一次,「信息不透明」作为定价支点就永久性地贬值了。

被冲击的其实不是软件业整体,而是靠不透明定价的那部分软件——功能并无独特之处,价值主张却建立在「你不知道我怎么做的,所以你只能买我的」之上。这部分产品的定价基础,正在被抽掉。


结语:护城河没有消失,它换了个地方

回到 REA 本身:它改变的不是「软件有没有价值」,而是**「软件的价值靠什么支撑」**。

当代码和功能越来越容易被复制,收费的基础就必须从「实现难度」和「信息不透明」,转向别的地方——对业务的理解、对客户的响应、对系统长期运行的保障。

这个变化会让一些功能变便宜,让一些原有的收入受到挤压,也会让新的服务商有机会进入市场。它对生意模式的影响会很实际。

但企业对可靠软件、专业服务和持续支持的需求,并没有因此消失。

护城河没有消失,它只是从「你看不到我的代码」,挪到了「你拿不走我的服务能力和业务理解」。

如果只带一句话离开:在 AI 时代,靠「别人做不到」建立的优势,保质期正在急剧缩短;靠「别人做不了」建立的优势,反而更值钱了。


来源与延伸

本文事实与引述均整理自以下公开资料:

  • InfoQ 报道《软件完蛋了吗?REA 三天狂揽 12 万星:无需源码,Agent 就能克隆一切软件》:https://mp.weixin.qq.com/s/C8ziE2xbPvJlchjWH7JSwQ
  • REA 项目仓库:https://github.com/morluto/rea
  • 大模型辅助逆向的早期研究:https://arxiv.org/html/2202.01142v1
  • 相关实测记录:https://blog.huli.tw/2026/04/18/ai-reverse-engineering-op/

声明:本文为公开信息整理与技术趋势评述,不代表任何平台观点,不构成投资建议。文中涉及的星标数、成本数据等均为公开报道口径,会随时间变化。

相关学习资料