HiBizMan永久免费
📚Log In
📋 Table of Contents25
🌐 Language

第12章 · 第三次死亡

中文

手机震动了一下。 沈砚的手停在半空,指尖距离那台贴了黄色胶带的空调外机不到十厘米。震动来自裤袋,三短一长——工作手机的消息提示音。他没有立刻去掏,而是先把手机摄像头对准外机底部拍了三张照片。闪光灯在夜里亮了两下,把金属外壳上的灰尘和划痕照得一清二楚。 A座北侧外墙的这段通道很窄,两侧是灰色水泥墙,头顶悬着一排日光灯管,其中有三根已经不亮了,剩下几根忽明忽暗地闪着,把人的影子拉长又压短。空调外机挂在离地面大约两米五的位置,铁支架上有一层灰,但靠近底座的地方有几道新鲜的摩擦痕迹,像是什么东西被撬棍之类工具别过,金属表面刮掉了漆,露出底下暗银色的光泽。 沈砚退后一步,左右看了看。这个位置在停车场出口的侧面,从园区主路上根本看不到,除非刻意绕到建筑背面来。他今天如果不是因为注意到了门禁柱上那张通知单,又顺着排水管一路往北墙这边摸过来,也不会走到这里。通知单上写的"五月十三日凌晨零点至四点,A座北墙外机例行检修",日期正好是两周前,也就是运营组监控日志里那个"数据异常波动"的夜晚。 他掏出工作手机,划开屏幕。 消息是方睿发的,只有一行字:"老沈,你还在公司?我这边刚看完OA的运维排班表,五月份那周的夜班记录有点意思。电话说?" 沈砚按了拨号键,把手机夹在耳朵和肩膀之间,空出两只手去检查外机侧面的螺丝。螺丝帽上有一圈均匀的划痕,不是自然锈蚀造成的那种不规则纹路,而是明显被六角扳手拧过的痕迹。他的手指沿着底座摸了一圈,摸到一处不同于金属温度的触感——暖的。空调外机现在没运行,外壳应该跟环境温度一致,但刚才触碰的那个位置,靠近机体侧盖板的地方,温度明显高出好几度。 "喂,老沈?"方睿的声音从听筒里传出来,带着他那边办公室里键盘敲击的背景音,"你听得到吗?" "听得到。"沈砚把手机换到另一侧耳边,目光还钉在那个发热的位置上,"你刚才说运维排班表怎么了?" "五月十三号那天的夜班,OA系统里登记了两个人,一个姓周的,一个是实习生。但是——"方睿顿了顿,听筒里传来鼠标点击的声音,"我刚去运维办公室当面问了一圈,姓周的那个说那天他请了病假,根本不在。实习生那周在杭州参加培训,也不在。" 沈砚的手指从外机侧板上收回来,上面沾了一层薄灰,还有一丝若有若无的油脂气息。他凑近闻了闻,是机械润滑油的味道,跟普通检修用的那种不太一样,更淡,带着点酸涩。 "也就是说,OA系统登记的值班人员,实际上那天晚上两个人都不在现场。" "对。"方睿的声音压低了一些,"而且我问他们能不能调出当天的工单记录,他们说系统三个月前的日志自动归档了,归档数据在总部的备份库里,申请调阅要部门总监签字。" "你问的是哪个运维?" "姓黄的,工龄六年了,算是那边比较老的一个。他原话是'小方啊,这事你别操心了,该看的东西上面会安排,不该看的你就当没看见'。" 沈砚听着,眼睛却盯着那个发热的侧盖板没动。盖板的边缘有一道非常细微的缝隙,比正常装配留下的缝隙要宽一点,像是被打开过又装回去,没有完全对齐。他把手机拿下来换了个手,从口袋里摸出一张纸巾,包住拇指和食指,试着轻轻掰了一下那块盖板。 盖板松动了,往外弹开了一条缝。 "老沈?你那边什么声音?" "稍等。"沈砚把手机放在旁边的排水管支架上,两只手同时扣住盖板边缘,往两侧轻轻一带。盖板卸下来了,露出里面密密麻麻的线路和铜管。他打开手机的手电筒照进去,光束扫过冷凝器翅片,扫过压缩机外壳上的型号标签,最后停在一个不起眼的角落——控制电路板旁边,有一根额外引出的线缆,扎带束着,从主线路束里面分出来,走到机体底部一个小塑料盒里。 那个塑料盒不是空调原厂部件。 沈砚蹲下来凑近看,塑料盒大概半个烟盒大小,用双面胶黏在机体底板内侧,线缆从盒子里出来,接驳到了主控板的几个针脚上。焊点很粗糙,不像是专业电工的手艺,更像是有人临时动手加上去的。他掏出手机又拍了几张照片,把盖板重新扣回去。 拿回手机的时候,方睿还在听筒里等着,能听到他敲桌子边的节奏声。 "老沈,你还在吗?" "在。"沈砚拿起手机,贴着排水管往回走,脚步放得很轻,"我刚才在A座北墙这边,发现外机里有个东西。不是原厂的,像是有人加装的一个模块。" "什么东西?" "不清楚,没敢拆。但那个位置——"他走到转角处停了一下,探头看了一眼停车场方向。夜里一点半,园区里几乎没人了,只有远处门卫室亮着灯,"正好对着停车场入口那个摄像头。如果外机检修那晚有人从这边走,摄像头的角度拍不到。那个加装的模块连着主控板,按理说空调主控板不会记录任何外部信号,但如果那个模块是个数据采集器——" "等等,"方睿打断他,"你意思是十三号晚上有人利用检修通知当掩护,在空调外机里装了个东西?那东西可能在偷数据?" "不只是偷。"沈砚快步穿过停车场,回到宿舍楼下。门禁柱上那张通知单还在,他用手机拍了一张特写,然后扯下来折好放进口袋,"如果那东西能读到主控板的运行状态,再通过某种无线信号回传,那它就可以知道这个楼里什么时候有人、什么时候没人,甚至——" 他顿住了,想起了今天傍晚跟季成蹊开会时那个前台座机的奇怪响声。 "甚至什么?" "甚至能知道什么时候有人在使用某些特定楼层的电源负载。"沈砚推开宿舍楼的门,门轴发出轻微的一声吱呀,"你那边监控录像的事怎么样了?" "明早八点运维交接班,他们有个老旧的监控存储服务器,平时不怎么管,我认识那边一个朋友,应该能在交接间隙把十三号凌晨的原始录像拷出来。"方睿的声音压得更低了,"但是老沈,你得答应我一件事。这事如果最后查出来跟——跟咱们猜的方向有关,你得先告诉我,别一个人往上报。" 沈砚没有立刻回答。他沿着走廊往自己房间走,经过茶水间的时候听见里面有人轻声说话,是隔壁项目组两个加班的设计师在煮泡面。他侧身经过,没有引起他们注意。 "行。"他说,"先看录像再说。" "明天上午你能来趟运营办公室吗?我朋友说八点半之前他都在,过了就换班了。" "八点,我到。" 挂了电话,沈砚已经走到自己门前。刷卡进去,屋里还是那副样子——一台显示器亮着,屏幕上是他昨晚没关掉的日志查询界面,旁边的白板上写着几行时间节点和参数数值。他打开台灯,把手机连上电脑,把刚才拍的照片导出来。 空调外机加装模块的照片。门禁柱通知单的照片。停车场入口摄像头的位置图。 他新建了一个文件夹,命名为"0513",把这些文件拖进去。然后又打开那个微博推送——他始终没有点开查看的那条,关于"神陨之墟"策划组内部动荡的消息——现在他点开了。 内容是一个匿名用户发的长文,说的是"据内部消息,神陨之墟主策团队在过去两周内有三名核心成员陆续被调离原岗,其中一人疑似涉及未经授权的线上热更新操作,导致某副本BOSS数值异常。"底下跟了七百多条评论,大部分在骂运营,有几个ID在追问"06区白名单Kappa_Test_02"是怎么回事。 沈砚看到那个ID的时候,指尖在触控板上停了两秒。 Kappa_Test_02。 他今天下午在方睿截的那张运营群消息截图里见过同样的ID。那截图显示这个账号在十三号凌晨一点四十七分触发了06区某一台服务器的登录请求,随后该服务器出现了持续约四分钟的"小范围卡顿"。正常玩家看不到的那种卡顿——延迟从32ms跳到了187ms,然后恢复,不会触发任何告警阈值,但如果是专门盯着监控面板的人,一定能注意到那个红色的小波动。 他切到工作聊天软件,找到今天方睿发给他的那张截图,放大,仔细看Kappa_Test_02那条记录旁边的备注栏。备注写了一串数字,像是工号,又像是某种设备编号,但因为截图分辨率不高,后几位看不太清楚。他截了这部分发到自己的个人设备上,用图片软件做了锐化处理。 数字是:202305130147。 正好是触发时间,年月日时分。他皱了皱眉,这不像工号格式。再往下看,备注最后还有三位:A28。 A座28层。 那是神陨之墟项目组所在的楼层,也就是空调外机加装模块所在的同一栋楼。 沈砚靠在椅背上,双手交叉放在脑后。台灯的光打在显示器屏幕上,把他的影子投到对面的白墙上,黑乎乎一团。他脑子里在转很多事——通知单的日期、运维排班的虚假登记、空调外机里那个来历不明的塑料盒、Kappa_Test_02的触发时间、微博上那个匿名长文里提到的"未经授权的线上热更新操作"。 如果把这些点连起来,大致能拼出一个模糊的形状:有人利用十三号凌晨的"检修"时间窗口,在A座28层的空调外机里装了一个信号采集模块,同时用某个内部白名单账号绕过了登录审计系统,对游戏服务器做了一次热更新操作。操作本身没触发告警,但因为那个账号的登录请求在一台负载相对高的服务器上产生了几分钟的微小延迟,被运营组的监控面板捕捉到了。方睿能截到那条消息,说明有人注意到了、也留了记录,但那条消息只发在运营组的内部群里,没有上报到更高层。 那问题来了:是谁装的模块?是谁操作的Kappa账号?那个热更新改了什么东西? 他又想起今天傍晚在老赵面馆遇到的那三个玩家。寸头说的"阴影重影",如果是玩家端显示异常,那可能是客户端包被篡改了——但现在他更倾向于另一种可能性:服务器端的掉落逻辑被改过,导致判断落石落点的函数返回值出现了偏差,客户端收到的坐标数据和服务器实际判定坐标不一致,才会出现"明明站对了位置却被砸到"的现象。 他把椅子转了一圈,面对白板,拿起马克笔在上面写: 落石异常 = 服务器判定坐标 - 客户端显示坐标 ≠ 0 可能原因:掉落函数中的随机种子参数被修改 修改时间窗口:5月13日凌晨1:47-1:51 操作账号:Kappa_Test_02 掩护手段:空调外机检修通知 写完这些,他又在"空调外机"四个字下面画了两条横线。 那个模块到底是干什么的? 他看了眼手机,凌晨两点十一分。距离跟方睿约定的八点还有不到六个小时。他决定先洗把脸,然后把今晚拍的所有照片做一个时间线梳理,整理成一份简要的汇报材料——不管明天见不见季成蹊,手上有材料总比空口说强。 洗手间的水龙头拧开了,冷水冲在脸上,他抬起头看着镜子里自己的脸。镜子上方那盏灯管有点发黄,照得人脸色不太好。他拿毛巾擦了把脸,正准备关灯回桌边的时候,手机又震了一下。 是一条短信,来自一个他没存过的号码。 短信只有八个字:"别去季成蹊办公室。" 沈砚盯着那八个字看了很久。洗手间的灯光从背后照过来,把他的影子投在面前的瓷砖上。他回拨那个号码,听筒里传来"您拨打的号码是空号"。他又查了那个号码的归属地——显示的是本市的号段,但具体运营商信息显示"未知"。 他关掉了洗手间的灯,走回桌边坐下来,把那八个字抄在白板的最下面,然后在这个新信息旁边画了一个问号。 今晚本来只是想去老赵那里吃碗面。 现在他口袋里有三张照片、一个未知来源的短信、一个可能涉及数据篡改的白名单账号,以及一个明早八点要去拿的监控录像。 他看了眼白板上那句"别去季成蹊办公室",又看了看时间。 还有五个小时四十七分钟。