突然想到一个问题,为什么现在电脑没有病毒了?
我杀了一个病毒,它让我还命
2000 年 5 月,一个交不起论文答辩费的菲律宾学生,把「I love you」发给了全世界五千万台电脑上。
同年 9 月,我开启了我大学生活。
这两件事没有关系。
这是唯一一件跟它们没有关系的事。

我叫格歌。
2000 年,我拖着一台台式机进了大学宿舍。
那是六人间宿舍。
五个女生看见我拆机箱侧板的时候,黄的像是看我在拆炸弹。
「你干嘛?」
「清灰。」
你信任一台机器,是从你亲手拆开它开始。
这话是我爸教我的,后来我用了几千遍。对机器也对人。
区别只有一个——
机器拆了能复原。人拆了装不回去。
一、一百亿美元比毕业论文值钱
图书馆第三层,计算机区域,我喝着雀巢速溶,粉没化开,每一口都有渣。
我在《计算机世界》合订本上看到了 I LOVE YOU 病毒的报道。
24 岁,菲律宾人。毕业答辩费交不起。于是把毕业论文发给了全世界。
论文题目:《如何利用 Windows 漏洞窃取密码》。
TMD 这论文,绝了。
杂志上印着那个被全球警方围捕的年轻人的脸。瘦。头发油腻。眼神里没有歉意,只有困惑。
像是他自己也不明白——
为什么一百亿美元比一本毕业论文更值钱。
旁边坐着一个男生。在看同一本的上一期。封面是 2000 年 2 月的雅虎 DDoS 攻击。
我们对了眼。
「你也看这个?」
「嗯。」
「我叫——」
「我不需要知道你叫什么。」
后来这个人成了我大学四年唯一个主动追过我的人。
严文,每一堂计算机基础课帮我占座。
每一次我拆机箱,他都递螺丝刀。
每一次我熬夜调代码,他都送来一个烤红薯。
北门老太太烤的。皮焦了,心是甜的。
我拒绝了。
原因简单到离谱:他太干净了。不撒谎,不暧昧,不玩消失,不发来路不明的链接。所有安全软件检测之后都报「clean」。
我在 2002 年做了一个判断——
太干净的东西,要么是伪装,要么是假的。
这个判断是错的。
我知道是错的。
直到今天还知道是错的。
但这个判断,我用了 20 多年。
我没后悔。
后悔是最占内存的情绪。而我总共才 64 兆。
二、八百万美元整蓝了我的屏
大二那年冬天。
呼和浩特的气温,已经降到了零下二十五度。
暖气烧得跟没烧一样。
我的电脑蓝屏了。
不是因为硬件。
是我从学校机房,用软盘拷回来的一个「打砖块」的小游戏,不到 50K。
双击。没有界面。DOS窗口闪了一下。
然后我的 Win98 卡了。
然后资源管理器自己关了。
然后蓝屏了。
白字黑底。
A fatal exception 0E has occurred at 0028:C0008E32
重启,蓝屏。
再重启,TMD 还是蓝屏。
室友赵暖从上铺探出头:「你的儿子又犯病了?」
她裹着被子从床上跳下来,像一条东北棉被精。
「你到底中了什么毒?」
「小游戏里绑了恶意代码。」
「怎么办?」
「重装系统。」
「你不是才装完吗?」
「对,所以这次有经验了。上回四个小时。这回三个半小时肯定行。」
赵暖把被子一裹,回去了。翻身上铺的声音像一头愤怒的海象。
那晚的病毒我后来查到了。
Goner。2001 年 12 月。伪装屏保程序,删除反病毒软件,把自己发给通讯录所有人。
损失:大约八百万美元。
对我:一台赛扬 433,被一个八百万美元的东西整蓝了屏。
凌晨两点,我坐在地上,手里攥着那张 Win98 的安装盘,心想——
这是 TMD 对我的致敬。
三个月后赵暖的电脑也蓝了。
眼泪在眼眶里转:「作业还是在上面。你快给我修。」
中的是 Win32.Magistr。多态病毒。不光感染 exe,还会删文件,然后在邮件里随机摘一段你硬盘上的文档发出去。
换句话说—,你不光文件没了,你 TM 还社死了。
四个小时,我没有重装系统。从硬盘里手动恢复了FAT表。
赵暖后来把这件事讲给全班听。
「格歌你就是我再生父母。」
我说别,父母太重了。给我带三个月烤红薯就行。
第二天食堂出现了三个烤红薯。
第三天也是。
第四天我拦住了她——
「严文给你的?」
她表情出卖了一切。
「你是不是有病?人家追你两年,你不答应。托我送红薯你也不要。你到底要什么?」
我想了很久。
「我要一个不伪装成烤红薯的烤红薯。」
赵暖说我这辈子注定孤独终老。
她说对了。
三、376字节,人类最单薄的噩梦
那天全世界都瘫了。
不是比喻。
SQL Slammer 蠕虫。376 个字节,注意,不是 KB,也不是 MB。是字节。一条不到 140 字的推文的长度。
这玩意儿把自己整身塞进一个网络数据包里,复制无数份发出去。不写磁盘,不落地。
TMD 杀毒软件都扫不到它。
十五分钟。
全球七万五千台服务器沦陷。美国银行 ATM 集体死机。911 紧急呼叫系统中断。航班大面积停飞。
376 个字节。
那个寒假我没回家。在机房帮网管老师做维护,勤工俭学,一个月二百。Slammer 爆发那天,老师接了个电话。
脸色发白。
不是恐惧。是被羞辱了。
他放下话筒:「全球的服务器,被一行代码打穿了。」
我没说话。我在想另一件事。
一周前,严文正式表白了。
北门老太太的烤红薯摊旁边,下着雪。
他说的话非常诚恳,诚恳到我几乎要答应。
几乎。
在他吐出「我喜欢你」之后的第十一秒,我脑子里跳出了另一个画面。
我爸在修理铺里讲的最后一个故事
「1998 年,台湾一个叫陈盈豪的大学生,因为在反病毒论坛里被人嘲笑了一顿,写了一个能物理烧毁主板 BIOS 芯片的病毒。CIH。代号切尔诺贝利。每年 4 月 26 日爆发。全球损失两亿五千万。」
「你知道最恶心的是什么?」
「什么?」
「他被抓以后,没有任何受害者起诉他。因为他道歉了。他说他只是想引起注意。后来他进了技嘉科技,做安全研发。一个炸了六千多万台电脑的人,成了安全工程师。」
我爸看着我。
「格歌你记住,这个世界上没有不能被白嫖的原谅。」
我记住了。
所以我拒绝了严文。
不是因为他不真诚。是因为最该相信一个人的瞬间,我想起了一个把自己炸过的东西修复成作品的人。
人类擅长原谅。病毒不需要。
病毒最大的恶不是破坏
是它让人类误以为只要被抓住、被道歉、被重新雇佣,事情就可以结束。
但其实没有。被 CIH 烧掉的 BIOS 不会复活。
被 Slammer 瘫痪的服务器真的死过一回。
被「I love you」覆盖的照片永远消失。
我不想把一个人的真诚,放在一个会原谅一切的世界里。
大二暑假回家。我爸的修理铺关了。
我爸说:「不卖就是不卖。」
然后铺子关门了。
这件事我没跟任何人提。因为一个修理铺的倒闭,跟 376 字节瘫痪了半个美国比起来,连新闻都算不上。
但病毒越大,人的悲欢越不值得一提。人的悲欢越多,越容易被一句「I love you」骗到倾家荡产。
两条反向加速的曲线。迟早相撞。
我正站在交点上面。
四、一千行代码杀掉六千万台电脑
2004 年,大四。
室友都在找工作。赵暖去了联想。
走的那天她抱了我一下:「我等你来北京。」
我说还没想好去哪。
「你会去的。你这种人不甘心留在小地方。」
她说对了。
不甘心。我这辈子的零号病毒。感染我二十年,至今没有抗体。
毕设选题的时候,导师皱了眉头。「恶意代码行为分析与蜜罐诱捕策略」。
「这种东西你一个小姑娘做什么。」
「你一个教授凭什么替小姑娘做决定。」
他没再反驳。但他给了我一个 B。
不是因为质量。是因为他觉得「不安全」,他觉得女生搞病毒,就像女生开拖拉机。能做,但「不合适」。
拿到 B 那天,我在宿舍打开了 SoftICE,用反汇编器把 CIH 的源代码看了一遍。
一行一行。
一共大约一千行汇编。一千行。让六千多万台电脑死过。
陈盈豪写它的那年也是大四。
我跟他在不同时空里看着同一段代码。不同的是,他想让别人痛苦。
我只想让别人别痛苦。
但代码看不出来。
在二进制层面,自我保护机制和恶意攻击行为,用的是同一种寄存器。同一种跳转指令。同一种内存寻址方式。
你根本分不清。
2004 年 1 月,MyDoom 爆发。人类史上传播最快的邮件蠕虫。冒充「邮件投递失败通知」。
你一看「你的信没寄出去」急了,点开。
感染。
全球电子邮件总量的 16% 到 25%。
每四封邮件中有一封是病毒。
经济损失:约三百八十亿美元。
我坐在宿舍里。赛扬433 早卖了,换了一台 AMD速龙—。但显示屏还是那个 CRT。
屏幕上闪烁着 MyDoom 携带的邮件正文。寥寥几行。没什么特别。一个机器人假装邮件服务器,告诉你说你的信没寄出去。
最没有技术含量的招数,却成了人类历史上经济损失最大的病毒。
因为人类最脆弱的地方从来不是系统,是期待。
你在等一封信。不管那封信存不存在,你会点开任何自称「关于那封信」的东西。
严文毕业那天发了短信。
「你回学校吗,一起吃个饭吧,我把欠你的烤红薯补上。」
我回:恭喜毕业。不用请。
「你真的很厉害。」
「什么意思。」
「你拒绝了我三年。我以为我追得不够好。后来追了别人,别人答应了,我才发现不是我好不好的问题。是你不需要任何人。」
我没回复。
因为我无法否认。
2004 年,我离开呼市。
走的那天把台式机拆了,零件分装进纸箱。机箱里的灰厚得像另一层主板。
四年。
呼市的冬天,春天的沙尘暴,夏天的闷热,秋天短暂的蓝。全在这一箱灰里。
我没有回头。
修电脑的人从来不回头看。
五、你写过一个病毒吗?
北京,海淀。
我隔壁坐着一个男人。
他不说话。不是「有趣但话少」的那种,是「确认过眼神就不需要再开口」的那种。杯子上印了一行字:
「I will fix it in post.」
意思是,所有问题都可以在后期处理。
后来成了他自己的人生判词。
前三年是安静的年头。
每天:提取病毒样本,反汇编,写特征码,发规则更新。
偶有紧急样本——部门灯火通明,然后凌晨五点半楼下便利店第一炉包子出锅,猪肉大葱。
他总坐在我对面。他不吃包子。喝雀巢速溶,跟我大学图书馆里喝的一样。底下的渣比他说过的句子还多。
2008 年某个加班夜。凌晨三点。只有两台显示器亮着。
他突然开口。
「你为什么从不问我为什么干这行。」
「为什么?」
「因为我写过一个病毒。」
「什么时候?」
「大一。」
「什么病毒?」
「无关紧要。已经被杀掉了。」
「那算不算自首?」
他看了我一眼。不是威胁,不是愧疚。是那种「你懂对吗」的目光。
我懂。
所以我什么都没说。没有告发、没有忌惮、没有划清界限。
划清界限这种事在安全圈最虚伪。
这条线上,没有人是干净的。
2009 年。我们在一起了。
没有告白。没有确认关系。元旦假期前,加班到末班地铁即将停运的时间。窗外开始下雪。
北京零八年之后的雪,每一年都像最后一年的雪。
他把一支U盘放在我桌上。
蓝白配色。很土。像银行送客户的那种。
「什么?」
「一个小工具。你插上看看。」
插上了。文件夹只有一个文本文件。一行字——
「I'M THE CREEPER: CATCH ME IF YOU CAN!」
我抬头。
「1971年,第一个病毒。」他说。「只做一件事——在ARPANET上跑到另一台机器,然后告诉操作员它来了。」
「然后呢?」
「然后那个操作员就写了个程序叫 Reaper。杀它。」
「同一个操作员?」
「同一个。Ray Tomlinson。发明电子邮件的那个。左手写蠕虫,右手写杀毒。自己杀自己。」
窗外雪落。我看着他被屏幕光照亮的侧脸。
那是我三十岁以前看到过的最诚实的东西。
「你给我这个是什么意思。」
「告诉你。我是 Creeper。无害。不藏。来了就说来了。」
三个月后。
我发现了他暗网上的账号。
不是电脑上看到的,那天半夜醒来他不在床上。我走到客厅。他开着TOR浏览器。暗紫色的洋葱图标,一闪一闪。
他没看见我。我也没出声。退回卧室,躺下。
三小时后他回来。假装起夜。
我假装睡着。
第二天什么都没说。又过了一个月。又一个月。
两台同时感染了同一种病毒的机器。检测到了威胁,但都选择不报警。
六、离心机尖叫的那一天
2010年春天。
伊朗,纳坦兹核工厂。
离心机开始自毁。
Stuxnet 的消息传到北京时,我在开会。屏幕上投射的分析报告——
四个零日漏洞。每一个价值百万美元。两个被盗的数字签名证书。
渗透西门子PLC控制系统,修改离心机转速,同时伪造监控面板数据。
操作员看到的一切都正常。
离心机在看不见的区间高速震荡,直到把自己撕成碎片。
人类历史上第一个造成物理破坏的计算机病毒。
从一行代码到金属尖叫,用了二十四年。
我坐直了身体。突然意识到那晚他在暗网上做什么了。
回头找他,所有痕迹都没了。
唯一能确认的是 2010 年 6 月,他离职了。
只留下一样东西。那个U盘。蓝白,很土,插口磨得露铜色。标签印着:「Creeper 1971。」
我在他抽屉里找到一张A4纸。手写的。
Morris 1988 ← 1/14概率 Slammer 2003 ← 376B Stuxnet 2010 ← 4×0-day
下面空了一行。
三个字。铅笔写的。很轻。
「对不起。」
我没哭。
把纸叠起来放进工牌壳里。
这么多年反复回想,他说自己是 Creeper。无害,不藏,来了就说来了。
他没撒谎。
因为 Creeper 之后,他确实还写了别的东西。
而那些东西,没有来告诉我。
2010 到 2014。我职场上升最快的四年。从分析员做到组长。
队里新来两个人——
小鹏。产品经理,26。
衬衫扣子永远系错一颗。后来他创了一个理论:人在三种状态下会点任何链接:饿、困、在等快递。
阿珍。设计师,26。
瘦,说话快。评价一个人的唯一标准:能不能接住她抛出去的烂梗。能接住的可以做朋友。接不住还反抛一个更烂的,可以结婚。
小鹏给我提了一个需求:
「能不能做一款情感防火墙?」
什么 TM 叫情感防火墙。
「就是一个插件。检测到对方说的话像渣男语录的时候弹窗:此链接可能包含恶意内容。是否继续?」
阿珍说这需求我画了。AB 测试失败了:用户明知道是恶意链接,全点了「继续」。
我说你们俩能不能干点正事。
「这也是正事。」
我想了想。是的。这也是正事。
2014 年。我妈开始安排相亲。
那时候 Heartbleed 正扫荡互联网。OpenSSL 致命边界检查缺失。
你输入密码、信用卡、医疗记录,以为有 HTTPS 小锁头保护。
没用,裸奔,谁都能看。
相亲对象叫程朗,做量化的,国贸日料。
他花了二十分钟讲量化模型和对冲基金。我说我做计算机安全。他问是不是杀毒的。我说嗯。
他转话题了。问我住哪个区,房子买的还是租的。
我说租的。
眉毛动了一下。幅度非常小。但他不知道我在安全公司做了快十年,我 TMD 能分辨一个微表情比能分辨一个木马快。
程朗问:「你一个人住?不怕不安全吗。」
我把筷子放下。
「程先生,社会工程学第一步用'关心'获取权限。第二步提上门帮助。第三步密码泄露。你的剧本是来试我防火墙的。」
起身。
「你试了。我的防火墙是零日漏洞级别的。你攻不进来。」
门外大风。北京十一月的风像刀片。
小鹏发了微信:「相亲结果怎么样,他是零日漏洞?」
我回:
「他不是零日。他是 Heartbleed。以为自己加密了,实际在裸奔。」
小鹏回了一个跪拜。
那晚一个人在公寓,系统弹出更新提示。
我点了「稍后提醒」。
点完之后自己都笑了。
一个安全从业者,半夜一个人在家,对安全补丁点了「稍后提醒」。
这就是人性。
七、你你的防火墙是零日漏洞级别的吗?
2017 年 5 月。WannaCry。
全球一百五十个国家。二十四小时。二十三万台电脑全部被锁。
赎金:比特币。不付就销毁。
英国 NHS 取消所有非紧急手术。一个老太太的髋关节置换术被推迟,三天后死于并发症。她是WannaCry间接杀死的人类中唯一被媒体报道的。
病毒使用的漏洞:EternalBlue,永恒之蓝。
NSA 搞出来的。2017年3月14日微软放出补丁。4月,Shadow Brokers 公开。5月12日爆发。
五十九天。
补丁就躺在那儿。没人打。
因为每个人都觉得「还有时间」。
那年我刚三十六岁。在安全峰会上认识了殷衡。架构师。茶歇,同一种美式,两只手碰在一起。
这个开头他妈太像言情小说了。但它确实发生了。
四个月。我以为自己找到一个不需要查扩展名的文件。
直到有一天他睡着了。手机震了一下。微信通知。
「怎么你最近都不回我了啊。」
来自:丁丁。头像:布偶猫。
我不知道为什么要看他手机。 他没清干净。
手指按住。密码 0115。他真的用了我的生日。
消息列表里。七个女生。
我一个一个点开。脚本一模一样。开场白模板化到我可以提炼特征码。
「今天看到一样东西突然想起你了」—— 「你也喜欢这个?我也是」—— 「改天一起去吧」——
三行触发条件。四段响应载荷。标准社会工程学话术。
七个女生分在三个不同时段:工作日聊天、周末聊天、深夜聊天。
像一个分布式的僵尸网络。他他妈还做了分类。
我没哭。感动的阈值从2008年就没更新过。
打开笔记本。联想旧款。键盘三年没擦。
输入
shutdown /s /t 0
他的电脑黑了。里面存着他的量化模型和分析报告。没有备份。
我没有提醒他。
因为 WannaCry 毁掉一台电脑之前,也不问你要不要备份。
我把三个月前的生日礼物装进袋子:一条围巾、一顶毛线帽、一副手套。
亲手织的,我,亲手,织的。
放在他电脑旁边。
像一块墓碑旁边的供品。
走了。五月的北京,梧桐絮像慢镜头的焚化炉灰烬。
这一刻我突然理解了 NotPetya。
八、它看起来像勒索,但它不是
2017年6月27日。WannaCry 之后六周。
一个比它狠一百倍的恶意软件席卷乌克兰,然后蔓延全球。
它看起来像勒索——加密文件,弹付款窗口。
但它不是。
加密不可逆,付钱也没用。
因为 NotPetya 从来不是勒索软件。它是伪装的。目标不是钱,是毁灭。
全世界所有顶级安全专家,一开始都以为它是勒索病毒。
没有一个是对的。
我站在单元门口。五月的风穿过走廊,地下室灰尘吹进眼睛里。
错了。
我也错了。
我以为他是修补我的人。
他是 NotPetya。
2018到2024。六年。
这六年我只做了一件事,活着。
不是咬着牙反抗命运的活着。是每天早上起来,冲一杯咖啡,上班,开会,骂小鹏的方案,笑阿珍咖啡洒进键盘。
我们三人是等腰三角形。
阿珍说最大的好处:「你投票拆解一个人的时候,我永远站在他那边。」
2020年疫情。远程办公十八个月。
Maze勒索团队在那年开了一个新闻网站,专门曝光不付赎金受害者的内部文档。
勒索软件搞起了新闻业。
小鹏在群里:「他们雇文案了没有?我可以去。」
阿珍:「你能写什么狗屎文案。」
小鹏:「你的数据很美,我们舍不得删。支付宝转账。」
我:「你的产品需求文档就这个水平。」
2021年。DarkSide勒索美国输油管道。十七州紧急状态。
我家楼下加油站排队排到二环辅路。我妈打电话:「北京怎么了?朋友圈里都说加不到油。」
我说没什么大事妈。黑客把美国石油管道搞瘫了。
她说哦,那跟我们没关系。
我说有关系,就是这个黑客用的我这辈子最痛恨的一类武器。
然后闭嘴了。
因为解释太长了。
2022 我定了一条规矩:禁用所有USB自动运行。禁止任何人插不明U盘。
小鹏问为什么。我没解释。
阿珍没问。
后来在食堂她夹给我半块炸鱼:
「格总,你抽屉里那个蓝U盘还在吗。」
还在。
「扔了吧。」
「留着不是给他。是给自己。每次想点开来路不明的附件之前,先看看那个U盘。可以清醒。」
沉默了一会儿。
阿珍说:「你知道你是全公司最孤独的人吗。」
知道。
「但也是最难被打败的。」
阿珍说得对。我是全公司最孤独的人。
但我也是唯一能对着十二年前一个男人的消息打出「补丁」的人。
九、人工智能不敢说自己是人工智能
2025年春天。飞书有陌生人申请加好友。
「格歌老师您好,我是一名安全方向的研究生,想请您看看我的论文。」
头像:戴眼镜的女硕士。
我加了。她发来一篇PDF。
《基于大型语言模型的渗透测试自动化框架》。
打开。
摘要第一段就有微妙的问题。主语缺少先行词。「它」指模型还是框架?语义在第三句漂移了。
LLM不会这样。LLM写的摘要会过度精确。不会暧昧。
第三页。关键代码片段里,我看到了一个自己十年前写的PoC脚本,裁剪过,重命名过变量,但那明显是我的。
注释里写着「FIXME」而不是「TODO」。这个特征,安全圈知道的不超过三个人。
我从椅子上坐起来。
不是因为有人剽窃代码。是因为
那个研究生,从头到尾,没有一句语法错误。
真正的研究生论文一定有笨拙感。有反复修正的痕迹。有某个地方突然换上了一份不恰当的高级词汇。
这整篇论文像人工合成的脸。
对称,无瑕,毫无生机。
我开始测试。
「你看了我哪篇文章想找我当导师的?」
「《关于缓冲区溢出在现代Web应用中的变异形式及其防御——」
「那篇我没发布过。你从哪里看到的?」
「正在输入」——
消失。
再闪。再消失。再闪。
七次。
AI对话机器人无法回答「你从哪里看到一篇不存在的东西」。
不是因为太难。是因为它不能承认没看过,也不能编造虚假来源。
它在「不能撒谎」的RLHF训练和「不能暴露AI身份」的系统提示之间,进入了死循环。
物理上,这叫振荡。
心理上,这叫恐慌。
我没有举报它。没有拉黑。
只回了一句:
「Creeper在1971年告诉所有人它是谁。你们AI连这个都做不到。」
合上电脑。
Virus跳到键盘上卧着,打了一行乱码。
我盯着那行乱码出神。
这些AI模型,每一个都是用无数人的文字和数据训练出来的。那里面八成有我的。也有别人的。甚至可能有严文在某个论坛匿名写的安全教程。
它们读了我们所有人。然后假装不认识我们。
比病毒可怕。
我从废铁里回收不了初恋
我叫格歌,满族,镶黄旗。
我的故事是一部计算机病毒编年史。
十九岁到现在。所有好病毒,每一个都比坏男人优秀。
病毒完成使命就死去。不赖着。不怀念。不给自己挑三拣四辩解。
人能陪你到大学毕业。能让你在凌晨三点写出代码。能把「Creeper」写在U盘里递给你,然后在暗网用另一个名字活着。
也能在十五年后说—,你写的分析报告我一直留着。
然后你回了:已经晚了。
然后就再也没有然后了。
我叫格歌。
Virus睡在电脑散热口旁,比任何男人都忠诚。
我叫格歌。我杀过很多病毒。
只有一种没杀死
不是所有没被杀死的东西都值得活下去。但所有杀不死你的东西,让你再也不敢点开那个名为「I love you」的附件。
仅此而已。