第295章 那个修改底层代码的人(1 / 2)
夜深了。西单背后的灰楼里,白炽灯把几个人的影子拉得很长。
屋里全是烟味。老钱一根接一根地抽,脚下的烟头堆成了小山。那是焦虑的味道。外面的风声很大,像是在嘲笑这群此时被舆论压得抬不起头的纪委干部。
“舆情控制不住了。”叶秋合上笔记本电脑,脸色很难看,“那篇《谁在逼走科学家》的文章转发量破了百万。甚至有几个不知情的大学生跑到科工委门口拉横幅,要给钱文中请愿。”
“别管外面。”林风坐在会议桌的最前端,拐杖横放在膝盖上,眼神专注地盯着面前的大屏幕,“外面太吵,咱们得静心。”
屏幕上,是小马刚刚从那几张胶片里提取出来的因为年代久远而有些模糊的数据流,以及从硬盘里恢复出来的“苍穹”系统1.0版本的原始底层代码。
那是二十年前的东西。
绿色的字符在黑色背景上跳动,像是一条条干枯的血管。
“魏老,”林风转头看向一直沉默不语的魏东,“您之前说,这系统是在汇报演示的前一天晚上突然崩溃的,对吗?”
魏东点了点头,手里的茶杯都在抖:“那天下午还好好的。我们甚至已经跑通了三次全流程模拟。到了晚上十点,为了保险起见,我们封存了主机。第二天早上部长来视察,一开机……全乱了。核心逻辑锁死,数据溢出,那是惨剧。”
“封存。”林风抓住了这个词,“既然封存了,为什么还会变?”
“这也是我想不通的地方。”魏东痛苦地闭上眼,“那时候没有远程网络,物理隔绝。除非有鬼。”
“这世上没有鬼,只有捣鬼的人。”林风敲了敲桌子,“小马,把那时候的系统日志调出来。咱们今晚不查钱,不查账。咱们查‘鬼’。”
小马的手指在键盘上飞舞,发出噼里啪啦的声响。
这是他的主场。在数据的世界里,他就是王。
“头儿,这代码结构太老了。是基于UNIX的早期汇编语言混写的。”小马一边操作一边皱眉,“而且这代码……很乱。有明显的拼接痕迹。”
“能看出是谁写的吗?”林风问。
“代码没有署名。”小马摇摇头,“但我能做笔迹鉴定。”
“笔迹?”老钱不懂技术,听得一头雾水,“这电脑打出来的字,还能看出笔迹?”
“能。”回答他的是魏东,老人的眼睛突然亮了一下,“程序员写代码就像作家写文章,每个人都有自己的习惯。缩进怎么打,变量名怎么起,甚至是从哪个库里调用函数,这都是独一无二的指纹。”
小马点头:“没错。我看了一下,‘苍穹’的核心架构是魏老团队写的,风格很严谨,注释都是标准的中文格式。但是——”
他突然停了下来,按下了回车键。
屏幕上的代码流瞬间停滞,一大段红色的代码被高亮显示出来。
“这段‘休眠指令’,风格完全不一样。”
所有人都凑了过去。
那是一段极其精巧、甚至可以说是阴毒的小程序。它并不破坏系统,通过一个极其隐蔽的时间戳触发,让整个系统在高负荷运转时突然进入死循环,看起来就像是性能不足导致的崩溃。
“这缩进习惯是两个空格,不是四个。”魏东指着屏幕,声音发颤,“我们团队所有人,受的是苏联专家的训练,都是四个空格。这……这是欧美那边的习惯!”
林风盯着那段代码。他看不懂技术细节,但他能看懂那种隐藏在逻辑深处的恶意。
“还有别的特征吗?”林风问。
“有。”小马调大了字体,指着这行恶意代码最后面的一行注释。
在编程里,注释是写给以后维护的人看的,通常是解释这段代码的功能。但这行注释很奇怪,并没有写功能,而是写了一个莫名其妙的单词。
`//Q.E.D`
“Q.E.D?”叶秋念了出来,“这是什么意思?”
“拉丁文。QuodEratDeonstrandu。”魏东脱口而出,他的脸色瞬间变得煞白,像是见到了鬼,“意思是‘证明完毕’。数学家证明完一个定理后,习惯在末尾写这个。”
“证明完毕?”老钱挠挠头,“这有什么特殊的?谁都能写吧?”
“不……”魏东猛地站起来,椅子被碰得哐当一声响。他在屋子里来回踱步,步子很急,嘴里念念有词,“我想起来了……我想起来了!”
“想起什么了?”林风眼神一凝。
“二十三年前!”魏东停下脚步,死死盯着林风,“那是1998年,钱文中刚从国外做访问学者回来。那时候他还不是院士,也不是领导,只是被安插进项目组的一个技术顾问。他很少写代码,但他有个习惯……”
魏东冲到堆满废旧档案的角落,发疯似的翻找着这两天还没整理完的旧纸堆。
“他在国外待久了,觉得自己是洋派!他最喜欢在自己的草稿纸上拽洋文!尤其是那个Q.E.D!他觉得那是他是真理的象征!”
“哗啦——”
一摞发黄的信纸被魏东翻了出来。
那是二十年前的一份手写会议记录,或者是某篇论文的初稿。纸张已经脆得快要碎了,边缘还有被火燎过的痕迹。
魏东颤抖着手,把一张纸铺在桌面上。
那是钱文中当年的笔迹。字写得很漂亮,是很潇洒的行草。在一段关于“高分子材料结构论证”的公式推导最后,赫然写着三个龙飞凤舞的字母:
`Q.E.D`
小马立刻把这三个字母扫描下来,放大,和代码里的那个注释放在一起对比。
虽然一个是手写,一个是键盘输入,但那个习惯性的位置,那个放在逻辑终点的傲慢感,如出一辙。
“不仅是这个。”小马的手指再次敲击,“我又对比了钱文中早期公开发表的几篇英文论文。他在编写算法附录的时候,变量名的命名规则,喜欢用希腊神话里的人名。比如这个循环变量‘Ze’(宙斯)。”