找回密码
立即注册
搜索
发回帖 发新帖

5006

积分

0

好友

632

主题
发表于 2 小时前 | 查看: 6| 回复: 0

「Software is over。」开发者 Brandon Thomas 在社交平台上抛出了这句判断——软件完了。

前不久,他用 AI 做出了七款 Adobe 替代工具。在他的设想里,其他开发者同样可以重建现有软件的功能,再把代码开源。如果这条路走得通,我们一直在续费的软件,还有多少功能非得向原厂购买?

同样受到关注的,还有 GitHub 上的开源项目 REA。

REA GitHub 项目首页与逆向分析界面

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

截至 10 月 12 日,它的 Star 数已经突破 11 万。REA 的全称是 Reverse Engineer Anything,翻译过来就是「逆向一切」。

REA 项目 GitHub Star 增长曲线

简单说,开发者看中一款软件的功能,可以让 AI 借助 REA 研究它的实现方式,再编写类似功能。就算拿不到原始源代码,也能从安装包、运行结果或网页请求里寻找线索。

REA 作者 morluto 的 GitHub 主页

一时间,万物皆可逆向。

REA 怎么「逆向一切」

REA 的使用说明给出了一个典型场景:你想给自家应用加上搜索功能,可以让 AI 分析 Notes 笔记应用是怎么实现搜索的,然后参考分析结果写出自己的版本。

为此,REA 可以接入 Ghidra、Hopper、IDA 等软件分析工具,也支持分析 JavaScript、Electron 应用和网站。配合 Claude Code、Codex 等 Agent,AI 能调用工具查找线索、继续调查,再编写代码、检验结果。

REA 实际案例页面:Aegis 验证器与 CTF 分析

官网展示的一个案例,研究的是开源验证器 Aegis。

它会显示一组六位登录验证码,每隔 30 秒更新一次。Agent 分析了 Aegis 的安卓安装包,找到计算验证码的方法。项目方据此重建算法,做成一个可以手动调整时间的网页。

将时间停在第 59 秒,页面显示一组数字;调到第 60 秒,数字随之变化。同一个 30 秒区间内,验证码保持不变。项目方用公开测试数据,比较重建算法与原应用方法的输出。报告称,133 组测试结果全部一致。

Notion 的案例则关注复制功能。复制一段带格式的文字时,程序需要把文字和相关格式交给系统剪贴板。Agent 沿着桌面客户端的代码,追踪文本和 HTML 如何经过不同进程,最终写入剪贴板。

老游戏 DX-Ball 的案例,关注声音如何跟随画面位置变化。砖块在画面左侧被击中,声音也应偏向左侧,程序中的一个函数负责完成这类换算。

由于反编译结果不完整,Agent 继续检查底层指令、函数调用关系和计算所需的固定数值。项目根据这些线索,用 C 语言重写了这个函数。

DX-Ball 声像调查还原流程图

项目将屏幕从左到右的整数位置与五种参数设置组合,共进行了 3,205 组测试,报告称新旧函数的返回值全部一致。在指定的旧版编译器环境下,新函数还生成了与原版匹配的 63 字节机器码,整款游戏则仍在重建中。

《东方幻想乡》的案例关注弹幕的角度计算,包括一圈 16 颗子弹如何排列、如何朝向玩家。项目借助 REA 检查原 DOS 程序,再与已有的 C++ 重建代码对照。

为了让 AI 有章可循,仓库中的 SKILL.md 规定了一套调查方法。AI 需要找到负责某项功能的代码,追踪数据流向,并区分实际观察与推断。任务过大时,就缩小范围,保存已有证据,供后续继续分析。

REA 东方幻想乡弹幕重建案例

重建完成后,还要让原程序和新版本执行相同操作,比较输出、交互表现及相关文件的变化。只测过一个函数,就不能据此判断整款软件是否重建成功。REA 也提供了版本比较和崩溃调查流程,用于追踪软件更新与运行故障。

值得关注的一点是: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 逆向的马力欧×艾尔登法环梗图

他也提醒,个人经验、游戏规模和社区专家的帮助都会影响进度,不能把工期差异全部归功于 AI。项目虽然实现了重建代码与原游戏机器码的匹配,但许多函数的用途和数据结构,仍需继续整理。

除了经典游戏,日常办公工具也出现在了网页里。

VibeOffice 将 Office 2003 的菜单和工具栏搬进浏览器,提供文字、表格和幻灯片编辑功能。按照项目介绍,用户无需注册账号,就能打开、编辑和保存 docx、xlsx、pptx 文件,文件在本机处理。

VibeOffice 网页版办公套件界面展示

项目地址: https://github.com/tcchen2026/VibeOffice

在 V2EX,一位用户提到,公司的云机不允许安装本地应用,浏览器工具恰好能帮上忙。有人反馈表格滚动出现问题,作者随后回复称已经修复。作者表示,代码都是国庆假期才开始编写的,目前还在尝试新主题,并考虑让 AI 助手通过应用内部接口编写文档。

不过,熟悉的界面背后,还有大量兼容性问题需要解决。用户只修改了一个数字,自然不希望保存后丢失旁边的图表。

VibeOffice 因此以原文件为依据,尽量只修改用户编辑过的部分,但待办事项中仍有保存后丢失图形、图片的记录。

项目介绍称,它使用了来自 LibreOffice、Apache POI 等公开测试集的 4,697 份文件,检查打开、保存、编辑和恢复等操作。暂时无法编辑的宏和嵌入对象,会尝试保留原始数据,但保留下来,不代表已经支持相应功能。

作者披露的投入也反映了这项工作的难度。完成界面和基础功能所消耗的模型用量,按正价计算约为 1000 美元;随后,为了完善自动化测试、Office 兼容性和无损编辑,又消耗了数倍 token,到他回复时仍未完成。

你的软件,用户非买不可吗?

围绕这股热潮,Matthew Berman 在视频中谈到,如果一家公司的竞争优势仅来自软件本身,未来可能面临压力,培训、客户支持和持续维护等服务会变得更加重要。

软件厂商当然有理由反驳。游戏能否稳定通关,办公文件会不会丢失内容,都需要检验,REA 也没有证明任意软件都能被完整重建。

但用户选择替代工具时,未必需要等到对方做齐所有功能。

因为 AI 逆向的替代工具只要做好用户需要的那部分功能,就有机会争取到用户,进而间接缩短软件公司依靠独有功能赚钱的时间。

AI 复制软件功能讽刺漫画

临时修改表格的人,需要顺利打开文件、准确修改内容,再把文件发出去。原版多出来的高级功能,未必能促使他继续付费。无法在公司云机上安装应用的人,还可能因为「打开网页就能用」,开始尝试替代工具。

成熟软件也替后来者完成了部分探索。哪些功能有人需要,界面如何安排,操作后应当出现什么反馈,都有现成产品可供参考。

REA 逆向工程工具宣传界面

过去,即使知道一项功能应该是什么样,理解并重建它仍需要大量人力。REA 将部分分析工作交给 Agent,再通过对照测试检查结果。如果这些方法更加可靠,后来者追赶的时间就可能缩短,原厂也会更早面对价格竞争。

用途单一的小工具,可能更早感受到压力。用户购买它,通常只为完成某项任务,替代产品一旦足够可靠,价格更低或使用更方便,就有机会吸引用户转移。

企业软件的竞争则复杂得多。旧文件需要兼容,团队需要协作,出了问题需要有人负责。替代产品还要承担迁移、维护和支持工作,才能让客户放心更换。

目前,这些项目还不足以证明哪家软件公司的收入会因此下降,但它们已经提出了一个值得软件厂商重新考虑的问题。当用户需要的功能更容易被重建,产品整体领先,还能在多大程度上支撑原来的价格?

你的软件仍然领先,用户却可能已经找不到续费的理由。




上一篇:OpenMuse 为什么火?可接管浏览器的 AI Agent 架构实战
下一篇:Palantir Ontology 实战:用 Action 把数据动词变成业务决策
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-10-12 22:36 , Processed in 0.062410 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表