监控屏上的【蜂群扫描|运行中|无异常】还在闪,绿字白底,像块不眨眼的电子墓碑。
周明远食指敲着桌面,哒、哒、哒,节奏没断。他盯着那行字,盯了三十七秒。丙在对面打了个哈欠,耳机滑下半边,耳朵上纱布又渗了点血丝。
“换人盯。”周明远说。
丙点头,正要起身,主控台右下角的小屏幕突然跳红。
【科研子系统|数据流异常|延迟0.3秒】
周明远的手指停了。
不是警报音,不是弹窗,就是一行灰字冒出来,两秒后自动消失。要不是他一直盯着界面刷新频率,根本抓不住这道缝里的鬼影。
“丁那边出事了。”他说,站起身。
甲从武器库探头:“科研室?那边不是全物理隔离吗?”
“隔离的是人。”周明远走向通道,“不是漏洞。”
走廊灯是应急黄,照得墙面像旧胶片。他左臂压着冲锋衣袖口,步子稳,但每一步落地都先试重心——昨晚反噬留下的后遗症,膝盖承重时会抽一下,像被人用细铁丝从关节里往外扯。
科研室门禁刷了三次才开。第三次指纹识别失败时,门缝里传来一声短促的“嘀”,像是谁咬牙憋住的惊叫。
门开了。
科研专家丁背对着门,坐在主控台前,肩膀绷成一块板。他右手在键盘上敲,左手死死按着鼠标,指节发白。屏幕分四格:左侧是全自动融合显微系统的实时参数图谱,三条曲线原本平行上升,现在中间那条突然塌陷,偏移了0.07%;右侧三个窗口全是代码流,滚动速度太快,肉眼追不上。
“切断外联。”周明远进门第一句。
丁没回头:“切了。五分钟前就切了。但我发现得晚……他们已经复制了三组核心数据包,伪装成温控日志传出去了。”
“目标端口?”
“未知。跳转三次,最后一次指向b类备用信道,那个信道早就废弃了。”
周明远走到操作台侧面,看见丁额角全是汗,一滴顺着太阳穴往下爬,在下巴尖悬了两秒,掉在键盘F键上。
他掏出钢笔,拧开,翻出比价表背面。纸面已经皱了,边角磨毛,但他还是在空白处画了三道竖线,标上“显微参数”“数据复制”“上传协议”。
“还有多久触发自动上传?”他问。
“十二分钟。”丁声音发抖,“原始协议设定,一旦数据包离开主系统超过十分钟,就会启动紧急回传——这是防丢失机制,我设的。”
“现在成了后门。”周明远把笔帽咬在嘴里,腾出手摸内袋,抽出第二支钢笔,笔尖蘸了点唾沫,在纸上划出一条斜线,“攻击路径模拟内部操作习惯,说明对方熟悉你的工作流程。”
“我不可能泄露权限!”丁猛地抬头,“我连密码都是动态生成的!每天换三次!”
“没人说你泄密。”周明远把笔插回口袋,“他们在模仿你。”
丁愣住。
周明远闭眼。
视网膜边缘浮起一道半透明界面,灰底黑字,只有一行提示:
【命途结算系统|预判功能已激活|消耗10命点】
接着是倒计时:15、14、13……
视野里开始叠影。不是幻觉,是数据流构成的未来片段——下一秒,显微系统将接收到一段伪造的温控指令,来源显示为“基地南区空调主控”;五秒后,该指令将被解析为合法调用请求;八秒后,备份区防火墙将短暂开放0.8秒,用于接收所谓“环境校准数据”。
攻击者要的不是硬闯,是骗开门。
周明远睁眼,手指在空气中虚点三下,像在确认坐标。
“丁,退出所有界面。”他说,“物理断电,重启终端。”
丁手抖着去按电源键。
“慢。”周明远按住他手腕,“别走正常关机流程。拔电池。”
丁愣了一瞬,反应过来,伸手到主机背后,拽出电池模块。屏幕瞬间黑了。
“现在。”周明远从内袋抽出比价表,翻到正面,“建诱饵文件夹,命名‘核心算法终版’,权限设为最高级读取,但内容全是废码——用建材报价单填充,就用上周我们谈水泥厂那批数据。”
丁张嘴:“这能行?”
“他们查过我的底。”周明远盯着他,“知道我以前干啥的。也知道我现在还留着这些破纸。如果他们是冲我来的,看到这个文件不会怀疑。”
丁低头操作新终端,手指还是抖,但慢慢稳了。
“上传路径埋陷阱。”周明远继续说,“数据一旦被访问,立刻反向追踪Ip跳点,记录中转节点物理位置。”
“可他们用了代理池……”
“代理也有规律。”周明远打断,“你看代码流的脉冲节奏了吗?”
丁一怔,调出刚才截获的残码。
周明远凑近屏幕。那些0和1组成的字符串在他眼里不是乱码,是另一种报价单——就像当年他在工地看钢筋清单,一眼就能看出哪根规格不对。
“这段加密用了三重混淆。”他说,“但底层调制方式,跟城西老电信局废弃基站的信号特征一致。那个基站十年前就拆了,但有些私人设备还在用它的频段偷网。”
“你是说……攻击源借了民用网络?”
“不止。”周明远指着残码末尾的一串数字,“这个校验码,是2019年某款家用路由器的默认出厂标识。现在还在用这种老设备的,只有两种人:穷鬼,或者故意藏身的人。”
丁输入最后一行命令,按下回车。
【诱饵文件夹创建完成|陷阱程序就绪】
时间:6分18秒。
距离自动上传协议触发还剩5分42秒。
“好了?”甲的声音从门口传来。他拄着信号枪站在那儿,腿上的绷带又松了,但他没去扶,“需要我带人去城西查吗?”
“等。”周明远盯着屏幕,“现在动,等于告诉他们我们发现了。”
话音刚落,主控台小屏闪了一下。
【检测到外部访问|来源:未知端口|目标:诱饵文件夹】
来了。
丁呼吸一滞。
周明远食指又开始敲金属台面,哒、哒、哒,比心跳还稳。
访问持续了1.3秒。陷阱程序捕捉到跳转路径:从诱饵文件夹→伪装温控日志→南区空调主控(虚假身份)→三层代理跳转→最终出口定位。
坐标跳出:**城西废弃数据中心b3层,东南角第七机柜位**。
“是远程接入点。”周明远说,“不是总部,是跳板。”
“要不要端了它?”甲握紧信号枪,“正好顺路清一波外围据点。”
“不动。”周明远摇头,“现在去,只会打草惊蛇。他们敢用这种老地方做中转,说明早备好了后备方案。炸了这一个,下一个在哪儿?东郊变电站?地下排水管?我们耗不起。”
甲脸色难看,但没反驳。
丁低声问:“那怎么办?放任不管?”
“不。”周明远把比价表折好,塞回胸前口袋,“我们让他们以为成功了。”
“演?”
“演。”
“怎么演?”
“让系统显示‘数据已上传’。”
丁瞪大眼:“可那不是真的……”
“系统不知道真假。”周明远看着他,“它只认流程。只要走完协议,就会标记为‘已完成’。你把诱饵文件夹改成真上传路径,但实际数据包走暗道绕回来,留在本地。”
丁眨了几下眼,忽然笑了:“你是想骗系统,也骗黑客。”
“对。”
“风险很大。万一他们二次验证……”
“那就等他们验证。”周明远转身走向门,“我们现在唯一的优势,是他们以为我们还在睡。”
他拉开门,风从走廊灌进来,吹动冲锋衣破边。那块布早该换了,但他一直没换。不是没钱,是懒得换。这衣服陪他送过外卖,扛过砖,躲过债主,也穿过枪林弹雨。
它没烂,他就没倒。
“甲。”他在门口停下,“准备排查小队,你和乙一起去城西。”
“现在就去?”
“不。”
“等什么?”
“等他们收工。”
甲没再问,点头走了。
乙已经在通道口等着,靠墙站着,右手搁在枪套上,眼睛盯着监控屏。他肩上的绷带鼓着,但站姿没垮。
周明远走过去,递给他一张纸条。上面写着一组频率编号。
“到了b3层,先关信号屏蔽器三十秒。”他说,“用这个频段发一段噪音流,伪装成设备自检。如果那里真有接入点,会自动响应。”
乙接过纸条,塞进战术背心内袋。
“别碰实体设备。”周明远补充,“拍照片就行。活着回来。”
乙点头,抬手碰了下帽檐。
周明远返回科研室。
丁正在重启系统自检程序。屏幕亮着,进度条缓慢推进,绿色光映在他脸上,汗干了,但手还在抖。
“你第一次见这种事?”周明远问。
“不是。”丁摇头,“但第一次这么近。以前都是隔着报告看结果,这次……是实时看着别人往你脑子里插管。”
“适应不了就换岗。”
“我不换。”丁声音低但坚决,“这是我负责的系统。我不能跑。”
周明远没说话,走到操作台前,拿起丁的水杯。杯底有半口水,表面浮着一点药片残渣。他放下杯子,从内袋掏出三支钢笔,检查笔帽是否拧紧。
“你知道我为什么总带着这些?”他问。
丁摇头。
“一支用来记账,一支用来画图,一支用来防身。”周明远把钢笔一支支插回内袋,“在这个世界,要么你算清楚每一笔,要么你就被人算死。”
丁低头,看见操作台上自己的手,还在微微发颤。
他深吸一口气,双手撑住台面,用力压下去,直到不再抖。
“自检完成了。”他说,“系统无残留入侵痕迹,数据完整。”
周明远点头。
他走到窗边。科研室没有真窗,只有一块投影屏,模拟外部天光。现在显示的是清晨六点的灰蓝天色,云层裂开,阳光快要出来。
他袖口滑下一点,露出左臂烫伤疤痕。那块皮早就死了,摸不出温度,但每次阴雨天都会抽疼,像有人拿烧红的针在里面搅。
现在不疼。
他把手插回口袋,指尖碰到比价表的折角。
那张纸越来越软了,汗浸的,血蹭的,火燎的,一次次折叠展开,边角都快烂了。
但它还在。
他转身,走向主控区。
脚步声在走廊回荡。
哒、哒、哒。
和食指敲桌的节奏一样。