1996年8月,美国的CompUSA和Computer City货架上摆着一张标价9.95美元的Quake shareware CD。光盘容量640MiB,游戏本体却只占22MiB——id Software干脆把Doom、Doom II、Hexen、Heretic的完整加密版本一并塞了进去,玩家打个电话、报个信用卡号,就能当场解锁全套游戏。这套想法上线仅39天,黑客组织GNOMON就发布了QCRACK.EXE,把整张光盘的锁全部撬开。
这不是一次简单的"防护不够硬",而是一次商业设计上的自我拆台:id把完整商品先交到了用户手里,再指望一层加密撑住收费逻辑。
一张塞满id全家桶的光盘,锁在哪儿
Quake shareware CD的解锁流程看起来挺讲究。程序生成一串CHALLENGE验证码,用户打1-800-IDGAMES报给客服,客服算出对应的SERIAL回传,程序核对无误就解锁游戏。为防止号码被抄近道,CHALLENGE每5分钟自动轮换一次。
问题出在加密方案本身。这套系统由第三方公司TestDrive提供,思路是把可执行文件的头部替换成加密数据,文件改名.MJ3,配合一个密钥文件才能"复原"成正常游戏。听起来分层不少,但GNOMON拆解后发现,本地程序FLOW.EXE自己就能从CHALLENGE算出SERIAL——它压根不需要打电话,验证环节只是检查你输入的号码跟它自己算的对不对。
这就是所谓的"安全靠隐晦":整套流程看着复杂,核心秘密其实根本不存在。2016年,一位叫rmolina的爱好者把CHALLENGE到SERIAL的完整算法逆向了出来,公开发布——那已经是二十年后的事,但也说明这套加密从设计那天起就没打算真正抵抗谁。
5分钟过期的验证码,和一个查无来源的数字
Usenet上留下的用户抱怨比事后总结更扎实。有人反映CHALLENGE码每5分钟就变一次,导致没法提前打电话排队,等真打通了号码可能已经失效。id员工Tim Willits曾在邮件里回应,付费用户如果重装系统需要重新联系id解锁——也就是说,正版用户要为"合法拥有"这件事反复举证,而破解者用一个几十KB的小程序就能一次搞定,完全绕开这些麻烦。不同零售商拿到的光盘内容也不完全一致,部分标注Computer City来源码的版本只含shareware本体,没有加密目录。这些细节,商业史的复盘文章里几乎从不提。
被引用最多的一个说法是:这次实验最后砸在手里近15万张卖不出去的CD。这个数字出自David Kushner的《Masters of Doom》,此后被无数文章转述成既定事实。但翻遍能找到的一手材料,这个数字始终只有这一个来源,没有id官方文件或独立记录印证过。它可能是真的,也可能是被简化或夸大的传记式概括——审慎地说,目前只能当作"流传甚广但未经核实"的说法看待。
- 提醒."15万张积压CD"只有传记书一处信源,转述时最好加一句"据传"
Doom能成,Quake为什么不行
id此前靠Doom shareware打天下的逻辑很简单:只给玩家免费的第一章节,想玩后面就打电话订购完整版,完整内容根本没有出现在用户机器上。这次Quake CD反过来了——完整的Doom、Hexen、Heretic原样躺在光盘里,只是被加了一层壳。加密强度再高,也只是给破解者多设了一道题,而不是拿走了他们本来没有的东西。这是两种模式的根本区别,也是这次实验注定脆弱的地方。
这次实验的真正遗产,不在于TestDrive那套加密方案有多不堪一击——一个不到30KB的程序就能全破,本身已经说明问题——而在于它提前二十年演示了一条后来所有软件激活方案都要面对的规律:只要完整程序已经在用户硬盘上,锁就只是"减速带",不是墙。id后来也确实用了这个说法自我总结。CompUSA和Computer City这些渠道早已在2007到2008年间相继关门,这张光盘和它背后的解锁电话,如今更多是复古收藏圈里的一件实物标本。
锁在光盘里的从来不是游戏,是id自己的算盘。
