开发者 Brandon Thomas 宣称,「Software is over」,软件完了。
前不久,他用 AI 做出了七款 Adobe 替代工具。
在他看来,其他开发者也可以重建现有软件的功能,再把代码开源。
如果这条路走得通,我们一直在续费的软件,还有多少功能非得向原厂买?
同样受到关注的,还有 GitHub 上的开源项目 REA。
图|🔗https://github.com/morluto/rea截至 10 月 12 日,它的 Star 数已突破 11 万。
它的全称是 Reverse Engineer Anything,意思是「逆向一切」。
开发者看中一款软件的功能,可以让 AI 借助 REA 研究它的实现方式,再编写类似功能。
即使拿不到原始源代码,也可以从安装包、运行结果或网页请求中寻找线索。
一时间,万物皆可逆向。REA 怎么「逆向一切」REA 的使用说明给出了一种用法。
开发者想给自己的应用增加搜索功能,可以让 AI 分析 Notes 笔记应用如何实现搜索,再参考分析结果编写自己的版本。
为此,REA 可以接入 Ghidra、Hopper、IDA 等软件分析工具,也支持分析 JavaScript、Electron 应用和网站。
配合 Claude Code、Codex 等 Agent,AI 能调用工具查找线索,继续调查,再编写代码、检验结果。
官网展示的一个案例,研究的是开源验证器 Aegis。
它会显示一组六位登录验证码,每隔 30 秒更新一次。
Agent 分析了 Aegis 的安卓安装包,找到计算验证码的方法。
项目方据此重建算法,做成一个可以手动调整时间的网页。
将时间停在第 59 秒,页面显示一组数字;调到第 60 秒,数字随之变化。
同一个 30 秒区间内,验证码保持不变。项目方使用公开测试数据,比较重建算法与原应用方法的输出。
报告称,133 组测试结果全部一致。Notion 的案例则研究了复制功能。
复制一段带格式的文字时,程序需要把文字和相关格式交给系统剪贴板。
Agent 沿着桌面客户端的代码,追踪文本和 HTML 如何经过不同进程,最终写入剪贴板。
老游戏 DX-Ball 的案例,关注声音如何跟随画面位置变化。
砖块在画面左侧被击中,声音也应偏向左侧,程序中的一个函数负责完成这类换算。
由于反编译结果不完整,Agent 继续检查底层指令、函数调用关系和计算所需的固定数值。
项目根据这些线索,用 C 语言重写了这个函数。项目将屏幕从左到右的整数位置与五种参数设置组合,共进行了 3,205 组测试,报告称新旧函数的返回值全部一致。
在指定的旧版编译器环境下,新函数还生成了与原版匹配的 63 字节机器码,整款游戏则仍在重建中。
《东方幻想乡》的案例关注弹幕的角度计算,包括一圈 16 颗子弹如何排列、如何朝向玩家。
项目借助 REA 检查原 DOS 程序,再与已有的 C++ 重建代码对照。
为了让 AI 有章可循,仓库中的 `SKILL.md` 规定了一套调查方法。
AI 需要找到负责某项功能的代码,追踪数据流向,并区分实际观察与推断。
任务过大时,就缩小范围,保存已有证据,供后续继续分析。
重建完成后,还要让原程序和新版本执行相同操作,比较输出、交互表现及相关文件的变化。
只测过一个函数,就不能据此判断整款软件是否重建成功。
REA 也提供了版本比较和崩溃调查流程,用于追踪软件更新与运行故障。
APPSO 认为,AI 逆向值得关注的一点,是它有一个现成产品可以对照。
开发者能够比较新旧版本的运行结果,让 AI 围绕差异继续修改,部分重建工作因此有了明确的检验依据。
当然,「万物皆可逆向」不等于「万物皆可随意复制」。
逆向工程本身并不必然违法,但未经授权破解软件保护措施、直接复制受版权保护的代码,或将他人的商业秘密用于竞争,都可能引发法律纠纷。
尤其当 AI 把软件逆向的门槛进一步降低,技术上能够重建某项功能,也不意味着开发者就有权将重建成果公开发布或商业化。
具体是否合法,仍取决于使用方式、授权条件及适用法律。
点开网页,连《光环》都能玩了REA 之外,AI 参与逆向与移植的讨论,已经延伸到更多经典游戏。
《光环》《GTA:罪恶都市》《辛普森一家:横冲直撞》等熟悉的名字,陆续出现在浏览器游戏移植合集中。
原本需要主机或本地客户端的作品,如今在网页里有了入口。
Kotaku 记者 Lewis Parker 体验了其中多个版本,称部分游戏运行流畅。
《辛普森一家:横冲直撞》的一个版本以 240 帧为目标,他试玩的一个《光环》版本也能连接在线服务器,延迟不高。
Halo CE Mobile 的项目页面介绍,玩家准备好自己的游戏数据后,就能通过浏览器运行基于反编译成果的《光环:战斗进化》,使用手机触控、手柄和联机功能。
添加到手机主屏幕后,游戏可以全屏运行,存档也支持导出和恢复。
不过,网上这些版本采用的方法不同,涉及反编译、模拟运行和移植,也依赖前人积累的成果。
仅凭演示,很难判断 AI 完成了多少工作,用「一夜完成」概括并不准确。
Lewis Parker 还担心,某个版本被下架后,新的版本可能很快出现。
只要已有成果能被继续使用,发行商就可能需要反复处理。
AI 如何参与开发,任天堂 64 游戏《Snowboard Kids》的记录提供了更具体的例子。
Chris Lewis 在今年 8 月的复盘中提到,这次逆向用了 84 天,而他此前处理《Snowboard Kids 2》时,花了 596 天。
他让多个 Agent 分别处理不同函数,并记录已经发现的编译器规律,供后续任务参考。
他也提醒,个人经验、游戏规模和社区专家的帮助都会影响进度,不能把工期差异全部归功于 AI。
项目虽然实现了重建代码与原游戏机器码的匹配,但许多函数的用途和数据结构,仍需继续整理。
除了经典游戏,日常办公工具也出现在了网页里。VibeOffice 将 Office 2003 的菜单和工具栏搬进浏览器,提供文字、表格和幻灯片编辑功能。
按照项目介绍,用户无需注册账号,就能打开、编辑和保存 docx、xlsx、pptx 文件,文件在本机处理。
图|🔗 https://github.com/tcchen2026/VibeOffice在 V2EX,一位用户提到,公司的云机不允许安装本地应用,浏览器工具恰好能帮上忙。
有人反馈表格滚动出现问题,作者随后回复称已经修复。
作者表示,代码都是国庆假期才开始编写的,目前还在尝试新主题,并考虑让 AI 助手通过应用内部接口编写文档。
不过,熟悉的界面背后,还有大量兼容性问题需要解决。
用户只修改了一个数字,自然不希望保存后丢失旁边的图表。
VibeOffice 因此以原文件为依据,尽量只修改用户编辑过的部分,但待办事项中仍有保存后丢失图形、图片的记录。
项目介绍称,它使用了来自 LibreOffice、Apache POI 等公开测试集的 4,697 份文件,检查打开、保存、编辑和恢复等操作。
暂时无法编辑的宏和嵌入对象,会尝试保留原始数据,但保留下来,不代表已经支持相应功能。
作者披露的投入也反映了这项工作的难度。完成界面和基础功能所消耗的模型用量,按正价计算约为 1000 美元;随后,为了完善自动化测试、Office 兼容性和无损编辑,又消耗了数倍 token,到他回复时仍未完成。
你的软件,用户非买不可吗?围绕这股热潮,Matthew Berman 在视频中谈到,如果一家公司的竞争优势仅来自软件本身,未来可能面临压力,培训、客户支持和持续维护等服务会变得更加重要。
软件厂商当然有理由反驳。游戏能否稳定通关,办公文件会不会丢失内容,都需要检验,REA 也没有证明任意软件都能被完整重建。
但用户选择替代工具时,未必需要等到对方做齐所有功能。
因为 AI 逆向的替代工具只要做好用户需要的那部分功能,就有机会争取到用户,进而间接缩短软件公司依靠独有功能赚钱的时间。
临时修改表格的人,需要顺利打开文件、准确修改内容,再把文件发出去。
原版多出来的高级功能,未必能促使他继续付费。无法在公司云机上安装应用的人,还可能因为「打开网页就能用」,开始尝试替代工具。
成熟软件也替后来者完成了部分探索。哪些功能有人需要,界面如何安排,操作后应当出现什么反馈,都有现成产品可供参考。
过去,即使知道一项功能应该是什么样,理解并重建它仍需要大量人力。
REA 将部分分析工作交给 Agent,再通过对照测试检查结果。
如果这些方法更加可靠,后来者追赶的时间就可能缩短,原厂也会更早面对价格竞争。
用途单一的小工具,可能更早感受到压力。用户购买它,通常只为完成某项任务,替代产品一旦足够可靠,价格更低或使用更方便,就有机会吸引用户转移。
企业软件的竞争则复杂得多。旧文件需要兼容,团队需要协作,出了问题需要有人负责。
替代产品还要承担迁移、维护和支持工作,才能让客户放心更换。
目前,这些项目还不足以证明哪家软件公司的收入会因此下降,但它们已经提出了一个值得软件厂商重新考虑的问题。
当用户需要的功能更容易被重建,产品整体领先,还能在多大程度上支撑原来的价格?
你的软件仍然领先,用户却可能已经找不到续费的理由。
我们正在招募伙伴📮 简历投递邮箱[email protected]✉️ 邮件标题「姓名+岗位名称」(请随简历附上项目/作品或相关链接)更多岗位信息请点击这里🔗
AI「逆向一切」,软件的天真要塌了?