越野赛预赛后第二天。周五。
顾忍冬醒来的时候鱼丸正蹲在床头柜上,用尾巴尖蘸她水杯里的水——然后甩在她脸上。一滴。两滴。第三滴落在鼻梁上的时候她睁眼了。
"你叫我起床的方式越来越有创意了。"
鱼丸收回尾巴,舔了一口。表情翻译:有效就行。
她坐起来。窗外灰蒙蒙的——不是天没亮,是要下雨。知行楼的仿真竹林在风里晃得比平时厉害。
沈绿腰已经在全息屏前了。她昨晚把四条故障数据曲线打印成了实体图——不是必要的,但她需要"用眼睛看而不是用手指划"。四张图铺满了整张工作台。导航坐标偏移图、左腿阻尼衰减曲线、泥浆深度分布偏差、废墟区橙色标记位置。她用四种颜色的标签纸标了每一处异常。黄色是导航。绿色是阻尼。蓝色是橙色标记。红色是所有异常同时发生的时间点。
"你什么时候起来的。"顾忍冬把脸上的水擦掉。
"五点。"沈绿腰没有回头。"不是被鱼丸叫的——是我自己醒的。脑子里一直在跑这些数据。"
"跑了什么结论。"
"四条曲线在同一时刻出现第一次异常。误差范围不到三秒。"沈绿腰转过身。眼白有血丝——不多,但足以说明她昨晚睡的时间跟程错建模大赛时差不多。"有人赛前给我们的机甲加了东西。不是同时操作四台——是预置的。峡谷段入口处触发。触发条件可能是——"
"全息屏亮起时。"姜未从上铺翻下来。她已经换好了校服,头发扎得比平时紧。"四台机甲的座舱全息屏在比赛开始同时亮。如果有人在系统启动程序里嵌了触发器——亮屏就是信号。"
白露从洗漱间探出头。嘴角沾着牙膏沫——这个画面307已经看过很多次了,但今天的牙膏沫旁边多了个表情。不是困。是冷。
"谁来动手的。"
"能进准备区的人。知道每台机甲系统登录密码的人。有权限在监控系统里报'维护'的人。"顾忍冬把被子掀开。鱼丸从床头柜跳上被子,在那个被踩平的窝里转了一圈趴下。"第一个条件最宽。准备区走廊是公共区域,赛前两小时后勤、选手、啦啦队都能进出。第二个条件窄一点——系统登录密码每队只有自己的。第三个条件——"
"最窄。"姜未说。"能在学区监控系统里报维护的——学生没这个权限。至少是教职工。但教职工不会只报两小时。维护窗口通常是半天起。两小时不是维护——是刚刚够一场越野赛预赛。"
沈绿腰把学区公告调出来。"维护通知的落款是后勤管理处。但后勤管理处昨天在群里说——他们没发过这条。"
"群?"
"学区后勤工作群。我昨晚加的。理由是'想了解校园设备维护流程'。"沈绿腰顿了一下。"管后勤的大叔人很好。还问我是不是想考后勤岗。说小姑娘有志气。"
安静了一秒。
白露把牙膏沫擦掉。"所以维护通知是假的。"
"假的。但发在了真的系统里。"姜未说。"能做到的人,要么有后勤管理处的系统密码,要么知道怎么伪造发布权限。"
"还有一种。"顾忍冬把鞋带系好。"知道怎么用别人的账号发。"
她站起来。从裤兜里掏出那支黑笔——昨天早上随手抓的那支。在草稿纸上写了两行字。
第一行:动手的人——能进准备区、知道密码或能套到密码、不是主谋。
第二行:主谋——有系统权限或能借到权限、不需要亲自进准备区。
"两个人。"她把笔放下。"一个人进准备区动手。另一个人在外面关监控。动手的人不一定知道全部计划——可能只帮了其中一个故障。"
沈绿腰盯着那两行字。"你为什么觉得动手的人不是主谋。"
"因为太蠢了。四个故障同时触发——生怕别人不觉得是人为。主谋如果是聪明人,就该只动一处。让其中一台机甲出问题,另外三台正常——看起来像意外。"顾忍冬把草稿纸推到一边。"四个同时坏等于大声喊'我被暗算了'。主谋不会犯这个错。是动手的人画蛇添足了。"
白露端着白瓷杯。今天的茶泡了——但她没喝。"所以先找动手的。"
"动手的好找。他留下的痕迹比主谋多十倍。"
姜未从工具箱里翻出一个便携数据终端——她自己的,上面贴着军舰灰的防滑贴。"昨晚我把赛道数据和赛前准备区的进出记录交叉了一下。准备区走廊虽然没有监控——但崇德楼正门和地下二层楼梯间有。两个地方的人脸抓拍在赛前两小时内重合的有二十一个人。去掉选手、裁判、我们四个——还剩四个。"
她把四张抓拍图投上全息屏。三张是后勤人员。第四张——
一个男生的侧脸。机甲工程系校服。胳膊下夹着一个便携参数检测仪——标准配置,每个机甲系学生都有。但他进地下二层的时候是赛前两小时零三分钟,出来的时候是赛前一小时四十分钟。待了二十三分钟。标准赛前检查只需要不到十分钟。
"你认识吗。"顾忍冬说。
"见过一次。"沈绿腰盯着那张脸。"竞装社的。上次白砚行来我们实验室——他站在白砚行后面。不是核心成员——全程没说话,就是跟着。"
"大几的。"
"大二。机甲工程系。"姜未已经把学籍数据库调出来了——不是她有权限,是她昨晚在沈绿腰加后勤群的同时入侵了公开的学区通讯录。"名字叫郑勉。学分绩点中上。竞装社普通社员。没有参赛记录。没有处分记录。"
"没有参赛记录——但进了竞装社。"白露说。
"竞装社门槛是年费加模拟战成绩。他可能是交钱进的。"沈绿腰把郑勉的选课表调出来——全是公开信息,她只是整理了一下。"有一门课很有意思。'学区后勤系统操作实务'——大二上学期选修。教学生怎么操作校园设备的报修、调度、监控管理。"
"所以他会用后勤系统。"顾忍冬说。
"他会。至少学过。"沈绿腰把选课表关掉。"但课是选修——全班四十几个人都会。不能证明是他关的监控。"
顾忍冬盯着全息屏上那张侧脸。看了大概五秒。
"不用证明。直接找他聊。"
"你打算怎么聊——"
"聊天。"她把黑笔塞回裤兜。"就是聊天。同学之间,聊聊天。"
沈绿腰张了张嘴。又合上了。她见过顾忍冬这种语气——上次是在白砚行送完轴承油之后的晚上,顾忍冬说"我要给他发一份战术推演报告"。那次用的是同一种语气。像在说今天食堂的汤不错。但发出去的推演比白砚行刁难她的题目深了三层。
白露端着白瓷杯站起来。"我跟你去。"
"不用。人多了像约架。"顾忍冬走到门口。鱼丸从被子上抬起头。她回头看了一下全息屏上四条故障曲线——还在蓝光里安静地闪。然后推门。
"我去聊个天。回来吃午饭。"
---
郑勉下午两点在机甲工程系实验室。公开课表上写的——实验课,C7-201,机甲关节校准实操。两点半下课。
顾忍冬在走廊尽头的饮水机旁边等。黑笔在指间转。笔掉了两次。捡起来继续转。饮水机咕噜噜响了一声——加热。她没带任何东西,除了裤兜里那支笔。
两点三十一分。郑勉从实验室出来。一个人。便携参数检测仪夹在胳膊底下——跟抓拍图上一样。他往楼梯间走。
"郑勉学长。"顾忍冬的声音从饮水机旁边传过来——语调很轻,像在叫一个认识很久的人。"有空吗。聊两句。"
郑勉转过头。第一反应不是惊讶——是慌。那种"早就知道这一刻会来"的慌。然后他迅速把慌摁回去了。晚了大概零点五秒。
"你是——"
"307的。顾忍冬。昨天越野赛我们队有四台机甲出了问题。"
"哦——听说了。可惜——"
"四台机甲的故障同时触发。峡谷段入口。误差不到三秒。"她往前走了一步。没有逼近的意思——就是走了一步。饮水机又咕噜了一声。"监控刚好在赛前两小时坏了。后勤管理处说他们没发过维护通知。"
郑勉的喉结动了一下。
"不是我——"
"我没说是你。"顾忍冬歪了一下头。"我只是在描述一件事。这件事是这样的:有人赛前在准备区待了二十三分钟。标准检查只需要不到十分钟。有人同时用假维护通知关了监控。有人在四台机甲的启动程序里嵌了触发器——亮屏就触发。手法很专业。但时机很业余。四个故障同时炸,等于在裁判面前举手喊'是我干的'。"
"你说得对——太业余了。"郑勉说。语气在努力维持正常——但正常不需要努力。"所以肯定是新手——"
"不。"顾忍冬说。"新手做不出那么专业的触发器嵌入。是两个人。一个技术好,一个技术差。技术好的那个在外面关监控,技术差的那个进去动手。技术好的让技术差的只改一处——改沈绿腰的导航坐标。技术差的觉得'改一处不够保险',自己加了另外三处。"
郑勉没说话。
"加的那三处——白露的座舱温度告警阈值升高了十五度,所以她在沼泽段没有收到过热预警。程错的左腿阻尼基线往下调了零点二,所以沼泽泥浆渗入之后阻尼衰减比正常快了四倍。我的关节温度传感器延迟加了一秒——所以我踩偏的时候温度读数比我实际温度低。加上沈绿腰的导航坐标偏移——"她把黑笔从裤兜里拔出来,在空中比划了一下。"四台机甲。四个故障。三个是你额外加的。"
"你——"
"我说完了。现在你可以告诉我——是谁让你改导航坐标的。"她把黑笔收回裤兜。"我不需要你承认。我需要一个名字。"
郑勉的喉结又动了一下。他看了一眼走廊两头。没人。饮水机又咕噜了——这次是冷却。
"如果我——不说呢。"
"那我去找温岚老师。带上昨天晚上的所有数据分析、准备区进出记录、后勤管理处的澄清通知、你的选课表截图。"她把终端举起来——屏幕上是整理好的一份文档。标题:「关于C7机甲障碍越野赛预赛第三组307队设备异常的调查报告」。格式标准得像教务处的模板。"这份报告我写完了。只差一个发送键。"
"你会发?"
"不会。"顾忍冬说。语气没变——还是那种"今天食堂的汤不错"的语气。"因为你会在它不需要被发送之前告诉我名字。"
郑勉低头看自己的便携参数检测仪。屏幕黑着——没开。他胳膊夹得很紧,指关节发白。
"我不认识那个人。"他说。声音比刚才低了整整一个调。"他是在竞装社的群里加我的。私聊。说他也是竞装社的——大四的,快要毕业了,想帮社团的学弟学妹在越野赛里赢307。给了我后勤系统的临时密码。说监控只能停两小时——超过会被安全协议自动恢复。"
"他用什么理由让你帮忙。"
"他说——'307是混合队,大一和大二混编。不是正规社团。抢了竞装社该有的实验室。B-407本来是我们社团申请了两年的场地。'"郑勉抬起头——眼角有点发红,不是哭,是用力憋的。"他说307不配进复赛。"
顾忍冬看着他的眼睛。停了两秒。
"你信了。"
"我——"
"你觉得一个快要毕业的大四学长,跨界加你一个大二普通社员,给你后勤系统的密码,帮你关监控——只是因为'307不配进复赛'。"她把手里的终端放下。屏幕熄了。"这个人不是大四的。大概率不是竞装社的。他的账号可能是盗用的。你从头到尾没见过他本人——对不对。"
"对。"
"聊天记录。"
郑勉把终端递给她。聊天页面——对方的头像是个机甲剪影,昵称「竞装社_老K」。聊天记录从头到尾八页。顾忍冬一页一页翻完。翻到最后一行的时候手指停了。
「竞赛从来不只是赛场上的事。」
「有时候,场外的人能决定场上的人站不站得住。」
她盯着这两行字。然后把终端还给郑勉。
"这两句话。像在念台词。"
"什么意思。"
"正常人干坏事不会给自己配独白。"她把黑笔拔出来又塞回去。"这人的真实身份——他不想让你知道。头像、昵称、大四的假身份——全是壳。"
郑勉张了张嘴。
"你把这些截图发给我。然后——"顾忍冬想了一下,"你自首吧。"
"自首——"
"跟辅导员。实话实说。比我去交了这份报告你再说——轻得多。"她把终端上那份未发送的调查报告给他看了一眼。文档末尾标着"附件四:准备区人脸抓拍图"——郑勉的侧脸在上面,被红圈圈了。
安静了。饮水机没响。走廊里只有仿真竹林被风刮过窗外的沙沙声。
"你为什么不直接举报我。"郑勉说。
"因为你不是主谋。你是个被拿来当刀的。而且——"顾忍冬把终端收起来。"你昨天夜里没睡着。我猜得对不对。"
郑勉没回答。但他的手在便携检测仪上握得太紧了——指节全白。不需要回答。
"敢在四台机甲上动手脚——但不敢告诉我那个人的真名。说明你已经开始怀疑自己被骗了。只是不敢确认。"她把黑笔放进裤兜——这次没拔出来。"确认一下。你知道他不是大四的。你知道。你只是不想承认自己被人当刀使了。"
郑勉的喉结第三次动了一下。这次没压住。眼圈红得比他预料中快——他低头去翻终端,假装在看什么东西。
"我下午去。"
"好的。"
顾忍冬转身往楼梯间走。走了三步。停住。没有回头。
"那个叫'老K'的人——他给你的系统密码,你用过之后改了没有。"
"没——"
"改掉。现在。如果他用那个密码还能登录后勤系统——他会知道你在被人问话。那你自首之前他可能已经跑了。"
郑勉的手指在全息键盘上飞起来。手在抖,但打字很快。改密码的页面弹出来——后勤系统临时授权码重置确认。他点完了。然后低头盯着屏幕。
"改完了。"
"好的。下午两点辅导员办公室。不要拖。"
顾忍冬下了楼梯。一楼走廊的光比二楼暗——外面下雨了。她站在崇德楼门口,看着雨把仿真训练场的碎石地面打湿。刚才那口一直憋着的气从嘴里冲出来——不是叹气,是呼。像在模拟舱里跑完一整圈之后摘头带的那个动作。
「问到了。叫老K。假的。」
「郑勉是个被当刀的人。主谋比他聪明得多——用假身份、真密码、煽动性话术。没留任何能直接定位到他本人的线索。」