AI百科网 AI教程
工具库

五千亿 token 之后,一款射击游戏被拆成 C++

一位逆向工程师用十六个 AI agent 跑了三个月,把一款老射击游戏还原成可编译的 C++,99% 的函数到位、83% 逐字节一致。这篇讲清它怎么做到的,以及为什么这门手艺仍然危险。

三个月,十几个 agent 同时开工,最后有 83% 的函数能和原版程序逐字节对上。

这不是演示,是一个跑完了的项目。

一、发生了什么

10 月 9 日,逆向工程师 Maurice Heumann 在博客里复盘了这个项目:把一款第一人称射击游戏反编译成可读、可编译的 C++,目标不是做出能跑的原型,而是尽量精确地还原原版行为。

他没有说游戏名字。他提到自己此前两篇相关文章已经被删掉,只留下一句带刺的话:美国的企业界来过了,把乐趣搞没了。

做法上,这不是"让 AI 写代码",是搭一条流水线。agent 跑在 Claude Code 和 Codex CLI 里,用 Hex-Rays 官方的 ida-mcp 读反汇编;每个 .cpp 对应一个 GitHub issue 当作进度表;所有 agent 共用一个 Discord 频道互相说话,CI 失败会自动播报到频道里。第一个月只开了四个:三个干活,一个专职复核。

结果是:第一个月进度冲到 80%,游戏能启动、能进菜单、能加载地图——然后作者发现代码"极其好读,语义全错"。agent 编了不存在的函数签名,凭空造逻辑,还把原本常量内存访问改成哈希表,性能差了几个数量级。

转折点是给它们一个机器能判的对错标准:用原版编译器重新编译,把生成的 OBJ 和原版 EXE 逐字节比对,只放过重定位部分。有了这个"神谕",agent 才能自己知道对不对。收尾阶段主力是 14 个便宜模型加 2 个贵的;游戏的 99% 函数已经补进源码,其中 83% 逐字节一致。

作者估算总共烧了 6000 亿到 7000 亿 token,其中约 3000 亿花在便宜模型上。因为 agent 几次把虚拟机搞崩,日志丢了,精确数字拿不到。

二、跟你有什么关系

只想玩老游戏的人:这类项目短期不会变成你能下载的东西。作者明确说代码不会公开,只留给自己用。

写代码的人:真正可复用的是方法,不是模型。先定义"什么算对",再让 agent 干活;顺序反了,规模越大越糟。

做法务或发行的人:这是一次公开的边界测试。反编译本身在不少司法辖区有讨论空间,但一旦分发代码或资源,性质就变了。

三、怎么判断这门手艺的边界

四步,按顺序问。

  1. 你手里有没有合法副本,有没有被允许逆向。各地规则不同,不少地方有反向工程的例外条款,但范围很窄,商业用途基本走不通。这一条答不上来,后面都不用谈。
  2. 产物是留在本地还是发出去。自己研究、自己玩,和上传到网盘、做成安装包,是两件完全不同的事。
  3. 有没有可判定的验收标准。作者的核心教训是:人能说清"我想要什么",说不清"什么算对"。没有逐字节比对这种硬指标,复核 agent 会被干活 agent 写的注释说服——他把这称为"无意的提示词注入"。
  4. 准备好被叫停。项目做到一半,相关文章被删了。技术能力和法律风险是两条独立的线。

顺带说一个可复用的细节:他把上下文的自动压缩阈值从默认的 90% 调到 42%,因为反编译里"刚看完就不再需要"的信息太多,压得越早越省。另外 agent 会随时间跑偏——跳过没做完的函数、盯着 CI 发呆、没检查就关 issue。他的解法是用定时任务每小时把规则文档重新塞进上下文。这条对任何长跑型 agent 项目都成立:规则会衰减。

四、三个别信的说法

"反编译等于盗版。" 不是同一件事。反编译是研究行为,盗版是分发。但这条线很容易踩过去:把还原出来的代码和素材打包发布,就从研究变成了侵权。作者不公开代码,大概率就是这个原因。

"AI 写出来的代码可以直接用。" 作者自己的评价是:前四周的产出看着像模像样,实际语义错误遍地。他们试过抢救,结论是从头写更快。生成便宜,不代表返工便宜。

"规模越大,质量越高。" 他一开始就上了四个 agent,进度飞快,质量崩了。真正的提升来自验收标准变严,不是 agent 变多。他自己的总结是:正确性比生产力重要得多。

五、一句话结论

AI 能把反编译的速度提高一个量级,但"什么算对"这件事,仍然得由人先想清楚。

信息来源

功能与价格以官方公告为准。本文写于 2026 年 10 月 17 日。

复制规范引用格式,便于转载注明出处
这篇有用吗?