# 偷了『半条命2』源代码的那小子

- URL: https://wuming.si/blog/813/
- Author: Aaron
- Published: 2014-11-10
- Language: zh-Hans
- Categories: Uncategorized
- Originally published at: http://blog.wo.ai/archives/813

2004年5月7日早6点，德国小镇黑林山区舍瑙，Axel Gembe醒来时发现床边围满了警察。全自动武器指着他的头，耳边响起一句“快起床，不准碰键盘”。

Geme知道他们此行的目的，但睡眼惺忪的，他还是问了原因。

![](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/1c970f6831_7cc829d3gw1em69chscegj21400p0n1m.jpg)

（『半条命2』壁纸）

“你被指控入侵Valve公司网络，窃取视频游戏『半条命2』，泄露到互联网上，造成的损失超过2.5亿美元，”对方回答到。“穿好衣服。”

七个月前，2003年11月2日，在美国西雅图，Valve公司主管Gabe Newell醒来时发现公司开发了近五年的游戏源码被泄露到互联网上。

这个游戏本应该在几周之前发布，但由于团队开发滞后导致延误。滞后了12个月。半条命2要推迟发布，Newell还未承认会推迟多久。这次的泄露不只是经济上的威胁，也是一个很尴尬的场面。

思考这些迫在眉睫的问题片刻之后，Newell的脑中闪过许多问题。这件事是如何发生的？泄露是从公司内部流出的吗？团队中的哪些成员花费多年时间编写这个游戏却又可能在最后关头危及整个项目？

[![](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/98186457c4_7cc829d3gw1em54n710tsj20fu0bwtbz.jpg)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/98186457c4_7cc829d3gw1em54n710tsj20fu0bwtbz.jpg "偷了『半条命2』源代码的那小子")

黑林山区舍瑙小镇，Gembe 2003年和他父亲居住的地方

如果不是内部问题，这件事又是如何让发生的？有人能够访问过Valve公司的网络服务器吗？

但是所有问题中最突出的，也是任何一个曾经被盗过东西的人都无可避免会想的问题：这是谁干的?

# 反叛者1号

“我进入黑客领域是在自己被病毒感染之后，”Gembe今天说。“那是一个伪装成魔兽争霸3密钥生成器的程序，我愚蠢地运行了那个程序。那是sdbot程序，当时很流行的一款恶意软件。”

这个年轻的德国人很快意识到他在自己的电脑上安装了什么。但是他没有删除该恶意软件，也没有遗忘，而是对该程序进行逆向工程，查看它是如何工作的，做了哪些事情。

被控制的恶意软件引导他进入IRC服务器。通过追踪，Gembe能够定位恶意软件的操纵者。Gembe没有举报这个人，而是就这款恶意软件向他请教了些许问题。他有了一个计划。.

“虽然现在我的Steam账户上有2000欧元，但是在那时我买不起游戏，”他解释道。

“所以为了解锁那些我想要玩的关卡，我编写自己的恶意软件用来窃取光盘密钥。它立刻成为当时最优秀的恶意软件之一，主要是因为我开始利用Windows平台的漏洞编写一些补丁。”

![](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/2bb23942b4_7cc829d3gw1em54n7yc0wj20go0c675e.jpg)

# 跟随弗里曼

一发现突破口，Newell的第一个想法是去警局。第二个想法是去接近游戏玩家。

2003年11月2日晚上11点，Newell在『半条命2』官方论坛上发布一则消息，题为“我需要社区援助。”

“是的，已经发布的源代码是『半条命2』的源码，”消息中他承认。Newell接着概述了Valve公司到目前为止能够团结在一起的事实。

他解释道，有人在近三周前登录了他的邮件账户。不仅仅如此，公司里的大部分主机上都被安装了击键记录程序。据Newell所言，这些程序是专门以Valve公司为目标所创建，所以这些程序不能被任何的病毒扫描程序发现。

不管是谁做的，这个人聪明能干，对他的公司非常感兴趣。但为什么要这样做？

# 进入地点

虽然不可否认剥削和伤害，但Gembe编写恶意软件的罪行是受游戏热情驱使而并非利润。

他最喜欢的游戏是半条命。在2002年，像很多系列粉丝一样，Gembe对即将发布的续集的细节非常痴迷。当时他就产生了这种想法。如果他能入侵Valve的网络，他就可能发现一些其他游戏玩家不知道的东西。

一个不善社交，在艰苦环境中成长的人，通过吸纳社区玩家提供内幕消息能够在社区中获取地位。这值得尝试。

![](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/4d7a9efabe_7cc829d3gw1em54n8wn2ej209k08caah.jpg)

“我真没期望能得到什么，”Gembe说。“但是第一次入侵很容易。事实上是偶然发生的。”

“当时我正在浏览Valve网站，查找我认为可能存放游戏的可访问网页服务器。Valve的网站对外部来说非常安全，但缺点是他们的域名允许匿名AXFRs，这给了我很多信息”

AXFR全称是匿名完整区域传送，一个用于同步主服务器数据到备份DNS服务器的工具。但这也是黑客们用来偷窥一个网站数据的协议。通过传输这些数据，Gemebe发现ValveSoftware.com所有子域名。

“在端口浏览记录中，我发现一个很有趣的服务器，它从Valve网站延伸到另一家名叫Tangis的公司，这家公司致力于可穿戴计算设备，”他说。

“该服务器网页根目录是公开可写的，这样我能够上传ASP脚本到该目录并通过网页服务器执行这些脚本。Valve在内部网络中没有对该服务器使用防火墙。”

Gembe首次尝试就发现一个无防备的通路可以进入网站。

“Valve的主域控制器用户名为‘build’，密码为空，”他说。“这允许我找出系统的哈希密码。于此同时， Eidgenössische Technische Hochschule Zürich 提供了一个在线的哈希破解器”，所以我能立刻破解密码。“

”一旦我完成了那些…那么，基本上我就拥有了通往这个王国的钥匙。“

# 牵连设备

此时，Gembe并不担心踪迹的掩盖。到目前为止，他没有什么要隐藏的。但是随着探索的深入，他想确认自己是否仍未被发现。

“那时我唯一关心的不被踢出，”他说。”但是我能够访问数量无限的代理服务器，所以我并不担心。首先，我找到一个可以建立某种隐藏的主机。“

Gembe开始四处查找游戏的信息。他发现了各种游戏开发的设计文档和备注。这正是他期望查找的，也是他此行的目的。

过了几周时间，Gembe意识到Valve内部没有人注意到他存在于公司网络中。他开始一点点前进。

![](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/24a65e538c_7cc829d3gw1em54n9uegrj20go0ah3yz.jpg)

就在那个时候他点击了下载，获取了期待已久的游戏的源代码。

这太有诱惑力了。在2003年9月19号，Gemebe点击了下载按钮，偷走了Valve的王冠。

“获取源代码很容易，感谢Perforce客户端的网络性能，但用SourceSafe客户端获取游戏数据却很可怕，”他解释道。

“因为这个原因，我编写了自己的客户端，该客户端通过TCP有自己的数据传输机制，通过散列检测发生变化的文件并进行传输。”

“游戏并不能在我的计算机上运行。我对一些代码做了修改让它在一个基本形式下运行，没有着色器或其他任何设备，但这并不好玩。还有，我仅仅拥有游戏开发的主分支。他们有很多开发分支以至于我甚至没有来得及去检测它们。”

直至今日，Gembe依旧坚持他不是上传源代码到网络的人。但是不可否认的是让将源代码给了那个上传代码的人。

“我不这么认为，”他说。“当然，这有一些吹嘘的成份。但我分享源代码给那个人时，他承诺我不会外传。但他没有。”

一旦游戏出现在BT上，它就无处不在。

“事情已经发生，”Gembe说。“你无法能阻止网络。”

# “好日子”

社区对Newell的求助响应不一。有些人对失窃表示同情，其他人感觉被Valve欺骗，因为他们本一直相信游戏会按计划在2003年末发布。

除了一些领导，没人能提供可能的犯罪信息。联邦调查局参与到调查中来，但却一无所获。

由于泄露事件，此时Valve公司奋战数月的的团队有些不知所措。这个游戏的开发每月花费公司一百万美元，而且还远未结束。此次的泄露不仅造成了经济损失，而且打消了本已疲惫不堪的团队的积极性。一位年轻的设计者问Newell，“这会导致公司破产吗？”

![](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/cc6e7d7b39_7cc829d3gw1em54nay4poj208c05i3yl.jpg)

2004年2月15日上午6点18分，Valve的总经理收到一封来自‘Da Guy’的无标题邮件。

邮件在宣称对数月前入侵Valve网络负责之前，以“你好，Gabe”开篇。

Newell起初不确定是否应该相信这封邮件。但是邮件中的两个附件只有拥有Valve服务器特定领域访问权限的人才能获取，这表明了邮件中的信息是真实的。

在『半条命2』被发布到网上五个月后，所有领导都不再关注这件事后很久，Newell的人出现在他的门前。

# 沙地陷阱

Gembe为什么发送那封邮件？”因为我对发生的事情感到抱歉，“他说。”我希望他们知道这事是谁干的，而不希望事情按他们的方式解决。“

但Gembe做的并不止这些。这个年轻人找到了弥补自己罪行的正面方式，对双方都有利。在一封邮件中，他询问Newell是否愿意雇佣他。

“我那时很单纯，”他说。”能在一家游戏开发公司工作一直是我的梦想，所以我问了他们。希望他们能够原谅我做的事，主要因为那不是故意的。”

令Gembe惊讶的是，过了一些日子Newell回复并同意了，Valve对他很感兴趣。Newell问Gembe是否愿意进行一次电话面试。

![](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/38c2cc6ded_7cc829d3gw1em54nbx6f9j20go0cidgx.jpg)

这项提议背后的真正动机并不是去评估Gembe是否是公司岗位的合适人选。而是为了让Gembe坦诚对泄露事件负责。这是联邦调查局的老套路，通过满足对方的自豪感来获取供认。

Gembe虽然有所顾虑，但还是将顾虑抛至脑后。“希望事情向好的一面发展，”他说。“但事实上我并不是很聪明。”

他回忆了与Counter-Strike和Steam游戏开发者Alfred Reynolds以及Portal作家Eric Wolpaw的电话面试，但他可能错了。（事实上，Wolpaw说他当时尚未加入公司。）

“首先，他们想知道我是如何黑进他们的网络。我详细地告诉了他们。然后，他们了解了我的经验和技能。我仍然记得他们对我能说一口不带任何口音的流利英语非常惊讶。”

三人谈论了四十分钟。在自己的英雄事迹面前，Gembe所有的愧疚感都消散了。但比起当他收到二次面试时肾上腺素上升，这根本算不上什么。这将是一次在美国西雅图Valve总部的现场面试。

设置好陷阱之后，Valve和FBI需要获取Gembe的签证（以及他的父亲和兄弟，并询问他们能否一起陪他来美国）。但是他们担心Gembe一直访问Valve的服务器会造成潜在损害。所以FBI联系了德国警方，提醒他们这项计划。

# 17号高速公路

没过多久，Gembe醒来时发现自己躺在枪杆之下。他穿上衣服，在武警战士的护送下挤进他父亲家狭小的走廊走下楼。

“在离开前我能弄点吃的吗？”Gembe问。

“没问题，”其中一个警察说道。

Gembe伸手拿了一把面包刀切几片面包。“屋内所有的警察对我举起步枪，”他说。

![](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/87bc5d6478_7cc829d3gw1em54nde0kfj20go0ardi1.jpg)

喝了一杯咖啡，抽了一根雪茄，他爬进一辆面包车尾部，被带向当地警局。在那里局长接见了他。局长走向Gembe，看着他说，“我们在你登机前找到你，你有没有觉得自己很幸运？”

Gembe被警察审讯了三个小时。“他们问的大部分问题是关于Sasser-Worm，”他说，Sasser是一种特别厉害的恶意软件，该软件会让计算机运行易受攻击的Windows XP和Windows 2000版本。

“由于某种原因，他们认为我和Sasser有关，但我矢口否认。Sasser是当时的大新闻，在一次联合行动中，其作者Seven Jaschan和我在同一天被突击搜查，因为他们认为我会提醒他。”

“和他一样，我的bot也利用了LSASS服务中相同的漏洞，除了没有让主机系统崩溃，所以我猜他们认为我给了他漏洞检测代码。当然，我否认了这一点，并告诉他们我从未写过如此劣质的代码。”

警察开始意识到Gembe与Sasser-Worm无关之后，他们开始问了Valve的事。

“我本可以拒绝回答并要求见律师，但我选择了毫无保留的告诉他们我知道一切，我猜他们很赞赏，”他说。“问我问题的人很喜欢我，因为他说’你并不向其他大部分人一样是个混蛋。‘那个部门主要负责儿童色情案件。”

“我想当时我对他们很开放，因为我并不认为自己做了什么错事。“

Gembe被拘留候审两周。警察一度认为他不会逃跑后决定将他释放，条件是在他审讯前三年，每周要向他们登记三次。

# 我们的恩主

在他等待出庭的日子里，Gembe努力工作以改善自己的生活。他学成出师，在安全部门找了份工作，负责编写Windows程序，用于系统安全管理、数据库优化和服务器管理。

Axel Gembe的审讯持续了7个小时。尽管期间有《华尔街日报》的人出现，但Valve公司却没有人出席。除了安全漏洞，没有一项证据表明Gembe需要对『半条命2』的源代码在网络上发布负责。

然而Gembe承认入侵了Valve公司的网络。法官判他缓刑两年，他坎坷的童年以及他为改变生活所做的考量为他争取宽大的处理。

在审判时，『半条命2』已经售出860万套，它的成功似乎没有受到2003年11月4号泄露的影响。

![](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/bedac25b47_7cc829d3gw1em54ne2f3wj20go09ddgr.jpg)

现在Gembe 28岁。近十年来，他对『半条命2』的泄露极为后悔。

“我当时很年轻，做了一些自己不该做的事，”他说。“本应该好好利用自己的时间。我很后悔给Valve带来了困扰和经济损失。我也很后悔将一些大学作为恶意软件测试对象，给其带来经济上的损失。”

“我对当时我做的所有非法事情感到后悔…我很庆幸在我被捕之前没做什么要用我一生来交换的事。”

这个偷了游戏人是谁？现在Axel Gembe会对Gabe Newell说什么？

“我想说：我对自己做的事感到十分抱歉。我并非有意伤害你。如果能重新再来，我一定不会那么做。想到这些仍使我很伤感。我就喜欢就呆那儿，看你做的事，但最后我搞砸了。”

“你是我最喜欢的开发者，我会一直支持你的游戏。”

（注：限于[译者](mailto:"ashiontang@gmail.com")水平有限，不足之处恳请指正。）

[偷了『半条命2』源代码的那小子](http://blog.jobbole.com/79450/)，首发于[博客 – 伯乐在线](http://blog.jobbole.com)。
