近日,名为 REA(Reverse Engineer Anything)的开源项目在 GitHub上迅速走红。它声称能够让 AI在没有源代码的情况下分析软件的内部实现,并尝试重新编写其中的功能。
从办公软件 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能够根据开发者提出的问题调用工具、分析结果,并尝试编写相应代码。
图|REA的逆向分析工作流程(来源:REA GitHub)
以分析某款软件的搜索功能为例。过去,工程师需要自己打开 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分析厂商微信小程序的蓝牙通信协议,再根据分析结果,开发了一个电脑菜单栏遥控器。在公开演示中,他直接通过电脑让马桶盖打开。据其介绍,从分析协议到完成工具,整个过程只用了约半小时。
类似的尝试还有 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尝试逆向《神偷3》,却只处理了一个函数(来源:Reddit)
起初,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。
图|ArtCraft提供多款对标 Adobe产品的开源软件(来源:ArtCraft)
这些项目很快被纳入“AI逆向软件”的讨论。但实际上,Thomas并没有使用 REA,也没有公开展示反编译 Adobe或微软内部代码的过程。他将自己的开发方式称为“洁净室重实现”,即不直接复制原软件代码,而是从头开发具有类似功能的应用。
那么,这些看起来与 Adobe产品相似的软件,实际效果如何?设计媒体《Creative Bloq》的编辑 Joe Foley亲自进行了测试。
为了体验照片编辑工具 LightCraft,他专门拍摄了自己的猫,却发现软件的自动选区无法准确识别主体。Photoshop替代品 PhotoCraft虽然支持 PSD等常见格式,但部分图像处理功能仍不完善;视频剪辑工具 FilmCraft则无法直接处理部分4K素材,即使转换格式后,运行依然缓慢。
Foley认为,这些软件目前还无法替代 Adobe的成熟产品,但作为早期开发项目,已经具备一定的可用性。
图|实际测试中,自动蒙版未能准确选中猫(来源:Joe Foley)
除了功能上的不足,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已经能够使用专业工具参与软件逆向,也能够帮助开发者快速制作功能相似的应用。但弄清一款软件如何运行、重新写出相关代码,以及让新程序可靠地完成原有工作,仍然是不同的事情。














