号称能“逆向一切”的AI工具爆火,狂揽近30万颗Star,软件开发的护城河守得住吗?
DeepTech深科技
从办公软件 Notion 的剪贴板机制,到经典游戏 DX-Ball 的声音算法,再到《东方幻想乡》的弹幕计算方式,一系列演示引发了广泛关注。截至 10 月 17 日,GitHub 页面显示,其 Star 数已超过 29 万。科技博主 Matthew Berman 甚至在社交平台上感叹:“Software is done”(软件完了)。
热潮之下,各种 AI 逆向软件的案例也开始传播。有人尝试重建 Claude 的幻灯片编辑器,有人用它给家里的智能马桶开发新的控制工具,还有开发者借助 AI 推出了对标 Adobe、微软多款核心软件的开源应用。
但随着越来越多开发者亲自尝试 REA,一些问题也逐渐浮现。在 GitHub 的公开测试中,有人发现 AI 会遗漏实际存在的函数调用,却仍将分析结果标记为“完整”;有时甚至根本没有调用 REA,而是直接给出未经验证的答案。REA 的作者也参与了讨论,回应了工具调用方式和项目设计上的问题。
与此同时,另一个疑问也开始被提起:那些号称被 AI“逆向”出来的 Adobe 软件,真的经过了反编译吗?
逆向工程早就存在,REA 为什么突然爆火?
要理解 REA 的作用,首先需要弄清楚它与传统逆向工具有什么区别。
软件逆向工程并不是新技术。长期以来,工程师一直在使用 Ghidra、IDA、Hopper 等专业工具分析程序。即使拿不到源代码,他们仍然可以通过反汇编、反编译等方式,研究程序内部的指令、函数及调用关系,再推测某项功能是如何实现的。
不过,这项工作通常需要较强的专业经验。软件经过编译后,原始代码中的变量名称、注释和部分结构信息会消失,工程师需要在大量难以直接阅读的指令中寻找线索,并不断验证自己的判断。
REA 并没有发明一种全新的反编译技术。它主要通过 MCP(模型上下文协议),将已有的逆向分析工具连接到 Claude Code、Codex 等 AI 编程智能体,让 AI 能够根据开发者提出的问题调用工具、分析结果,并尝试编写相应代码。
以分析某款软件的搜索功能为例。过去,工程师需要自己打开 Ghidra,查找函数、梳理调用关系,再逐步整理分析结果。现在,开发者可以直接向 AI 提问,由 AI 借助 REA 调用专业工具,寻找相关代码和线索。
这并不意味着专业工具可以被替代。REA 官方文档明确说明,使用 Ghidra 等工具时,开发者仍需要准备相应的运行环境。REA 本身也不能保证恢复一款软件原来的源代码。
但这种让 AI 自动调用专业工具的工作方式,恰好遇上了 AI 编程智能体快速发展的阶段。
Reddit 社区出现的一篇 REA 推荐帖,获得约 1.47 万次赞同。随着相关演示不断传播,甚至有人专门发帖询问,最近突然出现的大量 AI 逆向视频究竟是怎么回事。
不过,很快有开发者指出 REA 的实际能力可能被外界高估了:真正承担反编译工作的仍然是 Ghidra 等专业工具,REA 主要让 AI 智能体能够使用它们。而且,IDA、Binary Ninja 等工具此前也已经出现过类似的接口。
与此同时,开发者陆续展示的实际成果,还是让更多人看到了这种工作方式的吸引力。
一位开发者尝试重建 Claude Slides 幻灯片编辑器。他先下载了编辑器的部分程序文件,再让 Codex 借助 REA 分析其中经过混淆的代码。由于第一轮处理后的代码仍然比较混乱,他又使用 Claude Code 继续整理和重写,最终展示了一个能够实现部分编辑功能的版本。
另一位开发者则把 REA 用在了家里的智能马桶上。他利用 Codex 和 REA 分析厂商微信小程序的蓝牙通信协议,再根据分析结果,开发了一个电脑菜单栏遥控器。在公开演示中,他直接通过电脑让马桶盖打开。据其介绍,从分析协议到完成工具,整个过程只用了约半小时。
图|开发者利用 REA 分析蓝牙通信协议后,制作的智能马桶控制工具(来源:开发者演示)
类似的尝试还有 GitHub 上的 open-claude-ui 项目。开发者利用 REA 研究 Claude 桌面应用的界面和交互方式,整理出 30 个界面组件、8 项交互功能及 3,000 多行设计说明,并公开了相关代码。
这些案例让 REA 的用途变得更加具体:它既能辅助研究网页应用,也能帮助分析智能设备的通信方式。不过,公开成果主要集中在特定功能和界面模块,尚不是对完整商业软件的还原。
而当一些开发者开始用更严格的方式测试 REA 时,也发现了演示视频中不容易看到的问题。
开发者亲测后,发现了什么?
一位开发者在 REA 官方 GitHub Discussions 中发布了一份使用指南。与社交平台上直接展示重建结果的视频不同,他选择了一个更容易检验的办法:找来有公开源代码的程序,让 REA 分析,再将结果与原程序进行比较。
他首先选择了 Linux 上的压缩工具 bzip2。为了增加难度,他使用了一个删除调试符号的版本,程序中原本便于识别函数的信息已被移除。随后,他要求 REA 找出负责输出某条提示信息的函数,并分析其调用关系。
结果比较顺利。REA 找到了目标函数,以及一个调用它的函数和 24 个被它调用的函数。开发者再与原始源代码核对,发现结果一致。
但换成另一个程序,情况就不一样了。
这次,他选择了开源游戏引擎 OpenMW 项目中的 esmtool 程序,让 REA 分析其中 50 个函数的调用关系,再使用传统工具 objdump 进行核对。
结果显示,其中 22 个函数的分析遗漏了实际存在的调用关系。更值得注意的是,REA 当时仍将这些结果标记为“完整”,并没有提示存在遗漏。
测试中,他还遇到了另一个有些出人意料的问题:AI 有时候根本不会使用 REA。
他尝试让本地 AI 模型调用 REA 分析程序,但在最初四次测试中,模型始终没有主动使用这个工具,而是不断尝试其他办法,甚至把二进制程序当成普通文本文件读取。
调整工作流程后,模型虽然开始给出答案,却仍然出现猜测性回答。直到他改为先通过脚本运行 REA,再让 AI 阅读已经取得的分析结果,三次测试才都得到了符合预期的答案。
这组测试也引起了 REA 作者 Morluto 的注意。他在 GitHub 讨论中回应称,REA 最初采用的是一种原型式的 MCP 工具调用设计,但随着 AI 客户端逐渐支持按需加载工具,这种方式已经不一定适合多数智能体。他认为,让 AI 通过程序化方式使用专业工具,仍是值得探索的方向。
如果说这些测试主要关注 AI 能否正确分析代码,那么另一些用户已经开始尝试更加复杂的任务,比如将一款经典游戏重新移植到新平台。
一名 Reddit 用户就想借助 Claude Opus,将经典游戏《神偷 3:致命阴影》移植到 MacBook Pro 上。
起初,Claude 告诉他,这项工作可能需要数年。随后,他将 REA 仓库提供给 Claude。AI 下载了 Ghidra,并在约一分钟内反编译了一个函数。但当它发现整个游戏程序包含约 3.2 万个函数后,并没有继续完成整款游戏的重建。
评论区有人认为,AI 是不愿继续执行复杂任务;也有人指出,即使能够快速反编译一个函数,要将数万个函数重新整理成可以运行的游戏,仍然需要大量工作。
从这些使用记录来看,REA 已经能够在部分任务中提供准确的分析结果,但面对大型程序、复杂调用关系以及 AI 工具调度时,仍然可能出现遗漏或错误。而在更广泛的 AI 软件重建热潮中,还有一些受到关注的项目,甚至没有直接使用 REA。
Adobe 真的被逆向了吗?
REA 爆火的同时,软件工程师 Brandon Thomas 也因为一套开源软件受到关注。
Thomas 拥有约 15 年的软件工程经验,曾在支付公司 Square 工作。由于不满 Adobe 等商业软件的订阅收费模式,他借助 Claude 开发了 ArtCraft,一套包含七款应用的开源软件,分别对标 Photoshop、Illustrator、Premiere Pro 等产品。不久后,他又推出 WordCraft、GridCraft 和 DeckCraft,将目标扩大到微软的 Word、Excel 和 PowerPoint。
这些项目很快被纳入“AI 逆向软件”的讨论。但实际上,Thomas 并没有使用 REA,也没有公开展示反编译 Adobe 或微软内部代码的过程。他将自己的开发方式称为“洁净室重实现”,即不直接复制原软件代码,而是从头开发具有类似功能的应用。
那么,这些看起来与 Adobe 产品相似的软件,实际效果如何?设计媒体《Creative Bloq》的编辑 Joe Foley 亲自进行了测试。
为了体验照片编辑工具 LightCraft,他专门拍摄了自己的猫,却发现软件的自动选区无法准确识别主体。Photoshop 替代品 PhotoCraft 虽然支持 PSD 等常见格式,但部分图像处理功能仍不完善;视频剪辑工具 FilmCraft 则无法直接处理部分 4K 素材,即使转换格式后,运行依然缓慢。
Foley 认为,这些软件目前还无法替代 Adobe 的成熟产品,但作为早期开发项目,已经具备一定的可用性。
除了功能上的不足,ArtCraft 的开发方式也引发了争论。
在 Reddit 社区,有人质疑 ArtCraft 等项目为何将自己描述为“洁净室重实现”。传统洁净室开发通常强调不直接复制原软件受保护的代码,有时还会将分析原程序与编写新代码的人员分开。部分评论者因此提出,当 AI 同时参与软件分析和代码生成时,如何证明开发过程的独立性?
也有人认为,软件是否属于开源项目,主要取决于代码开放情况和许可证,不应与原创性问题混为一谈。目前,这些讨论并不能证明 ArtCraft 存在侵权行为,但代码来源和成果归属已经成为关注焦点。
类似的问题也影响到了游戏逆向社区。10 月中旬,反编译项目平台 decomp.dev 宣布停止公开项目索引和新项目收录功能。创建者 Luke Street 表示,AI 虽然提高了反编译效率,但一些人开始利用它快速生成未经充分验证的代码,甚至借用其他团队多年积累的成果,抢先发布所谓的完成版本。原本用于展示研究进度的排行榜,也逐渐让部分参与者过于关注完成百分比,而忽视代码质量。
此外,REA 的热度还被人用于传播可疑程序。有 GitHub 用户举报了一个仿冒 REA 的仓库,其中提供的所谓 Windows 安装包被 Microsoft Defender 标记为木马,VirusTotal 也有 8 个检测引擎发出警报。相关压缩包当时显示已有 172 次下载,但尚无法确认实际感染人数。
这些争议背后,是 AI 正在以不同方式参与软件开发与重建。有人借助 REA 分析现有程序,有人利用 Claude 从头开发功能相似的替代产品。虽然不少项目已经展示了实际成果,但随着更多人开始使用,功能不完善、代码质量参差不齐以及知识产权等问题也陆续浮现。
回到最初引发讨论的 REA,它没有发明全新的反编译技术,也尚未实现让 AI 自动还原任意软件。它所做的,是将已有的专业逆向工具接入 AI 智能体,让过去需要工程师手动完成的部分分析工作,可以交给 AI 协助处理。
在短短十几天里,REA 获得了近 30 万颗 GitHub Star,也让原本相对小众的逆向工程受到更多关注。从开发者重建编辑器、控制智能设备,到 GitHub 上不断出现的实际测试,这套工具已经展示了具体用途,也暴露了当前的局限。
至于社交平台上流行的“软件已死”,现有案例还不足以支持这样的结论。如今,AI 已经能够使用专业工具参与软件逆向,也能够帮助开发者快速制作功能相似的应用。但弄清一款软件如何运行、重新写出相关代码,以及让新程序可靠地完成原有工作,仍然是不同的事情。
参考链接:
https://github.com/morluto/rea
https://rea.tools/
https://www.reddit.com/r/BestGitHubRepos/comments/1x0s6lv/
https://www.reddit.com/r/OutOfTheLoop/comments/1x4h70o/
https://www.creativebloq.com/news/i-tried-those-free-ai-coded-adobe-creative-cloud-clones-and-they-have-some-big-problems
https://www.reddit.com/r/opensource/comments/1x78lqh/
https://listedarticles.com/articles/sunsetting-decomp-dev
https://www.gamesradar.com/games/the-community-aspect-of-decompilation-has-been-broken-by-a-wave-of-low-effort-ai-slop-and-now-a-major-community-tool-is-shutting-down/
https://github.com/morluto/rea/issues/2424
排版:胡莉花
注:封面/首图由 AI 辅助生成