新浪科技

软件完蛋了吗?REA三天狂揽12万星:无需源码,Agent就能克隆一切软件

InfoQ

关注

作者 | Tina

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

火到什么程度?截至 10 月 12 日,它的仓库页面显示已经有 12 万颗星。作为对比,年初引领全民“养龙虾”热潮、创造增长奇迹的 OpenClaw,在爆发第三天累计新增了 6 万颗星。

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

它干的事情,用 GitHub README 的原话说就是:“通过 Agent 逆向分析一切,从应用行为一路深入到原生二进制层面(Reverse engineer anything with agents, from app behavior down to native binaries)”。

简单说,就是利用 Claude Code、Codex 等 AI 编程智能体,通过 MCP 接入 Ghidra、Hopper 等逆向工具,让 Agent 能分析没有源码的软件,追踪某项功能的实现线索,并根据分析结果尝试编写相似功能。

REA 对原生二进制文件的支持最深入,覆盖范围也不止于此:

  • 原生应用:Mach-O、ELF、PE 和 macOS .app 程序包,包括 Swift 和 Objective-C 元数据。

  • 程序包和归档文件:ZIP、APK、IPA、ASAR;还可以不解压文件,直接生成文件清单。

  • Electron 和 JavaScript 应用:静态梳理入口点、模块、IPC 通道、preload 脚本和 source map,无需运行应用。

  • 网站:通过本地 Chrome DevTools 端点,被动观察你已经控制的浏览器。

  • .NET(托管型 PE/CLI):无需执行程序,即可检查元数据、成员和原生代码边界。

  • 版本差异分析:比较应用的两个版本,并生成变更报告。

正如 Replit CEO Ahmad Msad 所说:“AI 驱动的逆向工程和反编译领域正在发生的事情简直不可思议。很快,所有软件都可能事实上变成开源软件。”

过去四十年,软件的价值逻辑有一部分建立在“源码不可得”这个前提上:我写了代码,编译成二进制,你拿不到,所以你得买我的。REA 动摇的正是这个前提——当 AI 能读懂二进制、能追调用链、能生成重构代码,“拿不到源码”这件事,还能挡住谁?

这显然会改变整个行业的游戏规则。那些躺在过去成绩上、不积极投入产品、也不持续快速更新的公司,问题已经不再是“会不会有人克隆你”,而是“什么时候被克隆,以及克隆你的人会不会跑得更快”。

延续了半个世纪的“闭源护城河”神话,在这一刻,似乎正式宣告破产。

“这些订阅制都该消失。贪得无厌,真让人无语。”“软件完蛋了。”

“如果这真能跑通,那以后就没有什么东西还算专有了!软件这下算是彻底完蛋了!”

1

 几十年硬功夫,Agent 几年就上手了

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

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

REA 换了个思路:把这活儿交给你的 AI 编程助手,例如 Claude Code、Cursor、Codex、Gemini CLI、Windsurf 和 Claude Desktop 等。

更准确地说,REA 是一个用 TypeScript 编写的开源(MIT 许可)工具,为 Agent 提供了一种一致的方式来调查软件,其核心就是在 AI Agent 和逆向工具之间架了一层调度。

有网友打趣说,这就像“有人给 Claude Code 配了一个反编译器”。

REA 调用的逆向工具实际上都不是新的,都已经发展多年:Ghidra 于 2019 年开源,Hopper 的历史可以追溯到 2011 年,IDA 则从上世纪 90 年代起就被逆向工程师使用。REA 做的,是让 Agent 能调用这些工具,把过去需要人工串联的分析步骤接进编程工作流。

比如说要求 REA“逆向分析 Notes 应用,找出离线搜索的工作方式并解释清楚,然后用 TypeScript 和 SQLite 为我的项目实现一个类似版本。”在后台,Agent 会借助 REA 工具大致完成以下步骤:

不过,大模型进入逆向工程,并非始于 REA。

大模型辅助逆向已经发展了好几年。早在 2022 年,纽约大学和卡尔加里大学的研究团队就在论文 《Pop Quiz! Can a Large Language Model Help With Reverse Engineering?》 中测试 Codex 能否辅助逆向。研究者让模型阅读代码和反编译代码,判断函数用途、程序具备什么能力,以及变量名或关键值可能是什么。

这开创了使用大模型解析反编译伪代码的先河,但当时 AI 还只是个需要手动复制粘贴的“阅读理解外挂”。随后几年,技术走向分化:一派如南科大开源的 LLM4Decompile,尝试绕过传统引擎直接将机器码原生翻译为 C 源码;另一派则走向了 REA 这种 Agent 自动化架构——通过在大模型与 Ghidra、IDA 等传统工具之间架起调度桥梁,让 AI 真正长出“手和眼睛”,实现自动提取符号、追踪调用链并生成落地代码的端到端逆向工作流。

今年 4 月,一位资深安全人员用 Agent 搭配 Ghidra MCP,从普通游戏一路拆到了银行等级 App。

游戏类的基本不在话下:Cocos2d 游戏靠纯静态分析就能识别出 Blowfish 算法并反推出 key,Unity 游戏靠观察密文特征猜出 Lua 注释格式从而反推出 XOR key。

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

整个过程,他用的工具是 Cursor 搭配 Claude Opus 4.6 high thinking,大部分时候 prompt 很简单:某个文件夹底下有个 apk,把它逆向还原成源码。而且很多 App 的逆向时间在 30 分钟左右,按照 Cursor 的计费机制,花费不到 5 美元;用 Claude Code 试的一个 Unity 游戏花了 4000 万 token,约 27 美元。平均下来,30 美元上下。

他自己都感叹:“那时我才意识到,我才是 AI 的限制器。”以前觉得 AI 办不到的事,其实是自己不敢让它去试。“只要你能给 AI 一个让他发挥的环境,确保他能看到足够的 log 而且验证对错,再给他够多时间,没有什么逆向不出来的。”

2

 克隆潮已经来了,护城河换了个地方?

可以说,逆向各种 App 理论上早就可行,只是这几天 REA 的出现让这件事引起了更多关注。

有网友就提到:“我怀疑这是否就是为什么过去几天我的 YouTube 推送里出现了大量关于各种商业应用程序的 Vibe Code 克隆版视频的原因。从 Adobe 到 Microsoft Office 的旗舰产品,应有尽有。”

应用克隆以前在手机游戏领域就发生过:有人发布一个换了名字的 Flappy Bird,第二天就冒出一大堆仿制品。可现在不是一大堆,而是数不清的仿制品。只要有人想要某款软件,就可能把它克隆出来。眼下这事发生在小团队身上,但 Adobe 一样会受到影响——Photoshop、Illustrator,Adobe 整套产品,都有人做出了克隆版,而且某些方面还更好,做这件事的可能还不止是个人行为。

对于 REA 本身,还有网友实测后反馈道:“REA 火成这样真不是吹的,我拿剪映和几个项目试了试,确实底裤都没了。”

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

那么问题来了:如果连没有源码的老软件都能被拆开、复现,软件公司的护城河在哪里?

技术专家徐昊的观点是,克隆能拿走的是代码,拿不走的是知识。面对一个没有源码的软件,重点从来都不是“用另一个技术把它重写出来”,而是去推断它的业务逻辑,梳理清楚它到底在干什么。“你把它重演出来,我觉得这东西没什么意义。”

“软件本身不是产品,软件中的知识才是”。如果放到 REA 的场景里,这话也可以理解为:REA 虽然可以把二进制还原成代码,生成一份看起来完整的功能实现,但“还原出代码”和“理解了这个软件”之间,还隔着一层东西——它为什么这样设计,业务规则是什么,哪些行为是刻意为之,哪些是历史包袱。

换句话说,写代码从来不是一个软件公司的护城河。

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

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

出海内容营销平台 QuickCreator 联合创始人阎志涛 也认为, “REA 确实会进一步影响软件行业的生意模式,但要说这是软件的末日,我不认同。”从能做出类似功能,到客户愿意付钱,再到能够长期服务好客户,中间有很多事情,拿到代码并不能替你完成。

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

很多开源项目的代码,大家本来就可以获取、研究,也可以在许可证允许的范围内使用和修改。但企业仍然愿意购买相关的商业订阅、托管和技术服务,这个现象已经存在很多年。以 Red Hat 为例,它在官方订阅说明里列出的价值,包括面向生产环境的软件、生命周期管理、兼容性、补丁和更新,以及技术支持和专家资源。客户付费买到的东西,明显超出了下载一份代码。

企业当然可以选择自己组建团队,把这些事情做起来。但自己做也有成本,需要招聘、培训、积累经验,还得让这支团队长期存在。对一些企业来说,向专业供应商付费,是比全部自己承担更合适的选择。

一个版本发布以后,谁来维护?依赖的组件出了问题,谁来判断是否影响业务?多个产品放在一起使用时,谁来验证兼容性?这些工作不会因为代码公开了就自动完成。

企业愿意付的钱里,有相当一部分,是为了减少自己把软件用好、长期维护好的成本和不确定性。这也解释了为什么同样围绕一个开源项目,不同公司能够做出的生意差别很大。代码的可获得性相近,服务能力、客户关系和履约记录却可以相差很远。

但这不意味着原有软件公司可以高枕无忧,服务体系本身也会被 AI 改变。过去需要很多人完成的排查、文档整理、配置检查和部分实施工作,以后可能由更小的团队借助 AI 完成。如果新公司既能做出合适的产品,又能以更低的成本提供可靠服务,它就有机会逐步建立客户信任。原来的大厂不能因为自己过去拥有完整服务体系,就认为这种优势会永远保持下去。

回到 REA 本身,它改变的不是“软件有没有价值”,而是“软件的价值靠什么支撑”。当代码和功能越来越容易被复制,收费的基础就必须从“实现难度”和“信息不透明”转向别的地方——对业务的理解、对客户的响应、对系统长期运行的保障。

这个变化可能让一些功能更便宜,让一些原来的收入受到挤压,也可能让新的服务商有机会进入市场。它对生意模式的影响会很实际,但企业对可靠软件、专业服务和持续支持的需求,并没有因此消失。

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

https://blog.huli.tw/2026/04/18/ai-reverse-engineering-op/

https://arxiv.org/html/2202.01142v1

声明:本文为 InfoQ 编译,不代表平台观点,也不构成投资建议,未经许可禁止转载。

加载中...