那个短须男人倒下去的时候,马雄离他不到三米远。
他刚把一具被无人机撕碎的尸体从路中间拖到墙根底下,站起来转身,就看见短须男人胸口炸开了一团暗红。没有声音,至少他没听见——头顶那架无人机俯冲下来的速度太快,快到子弹先到了,声音才跟着追过来。短须男人低头看了自己的胸口一眼,表情甚至还没来得及从警戒变成惊恐,就整个人往后折了过去,后脑勺磕在马路牙子上,发出一声闷响,像一袋湿沙子砸在地上。
马雄的左手已经拔枪了,右手的Emp雷也从腰后抽了出来。他朝着那架正在拉起的无人机甩了一发Emp脉冲,那玩意儿在半空中抽搐了一下,旋翼的转速忽然变得紊乱,整架机器歪着身子撞进了对面三楼的一扇窗户里。玻璃碎了,然后是金属和混凝土撞击的声音。
但他身后的巷子里传来了更多引擎声。
他蹲下来,一只手扯着短须男人的战术背心把他翻过来。人的脸已经没有任何表情了,眼睛半睁着,瞳孔散成了一片灰。马雄用手背把他的眼皮合上,没多看一眼,把那枚还攥在短须男人手里的Emp雷抠出来,塞进自己口袋。然后他站起来,对着耳麦吼了一声:老四!还有谁在?
耳麦里断断续续地传来几道声音。老四在,瘸子在,还有两个他叫不上名字的年轻人——他们之前躲在街尾那家修车铺的底盘地沟里,刚爬出来。剩下的人不知道在哪,也不知道还活着没有。
往北撤。马雄把枪换了只手,枪管还在发烫,进那栋楼,从顶楼的天桥穿到隔壁街。
他带头跑,脚步踩在满地的碎玻璃和散落的零件上,发出咔咔的乱响。他身后有人跟着,脚步声一深一浅,是老四那条伤腿没好利索。马雄没回头,但他放慢了半步,让老四跟上来。老四没谢他,只是喘着气说了一句老大,刚才那个无人机不是巡逻型号,马雄没吭声,他已经知道了。
系统正在把精良的装备调过来对付他们这些零散的抵抗力量。那些俯冲速度更快、转向更灵敏的新型号无人机开始出现在城区的上空,它们不再像第一批那样高悬巡航,而是低空穿行于建筑物之间的缝隙,像一群金属的蝙蝠。它们的协同方式也更加激进——三架一组,一架负责高空压制,两架从两侧包抄,把目标逼进死角之后再齐射。
他们刚翻进那栋楼的底层大厅,外面的街上就响起了第二轮爆炸。是马雄之前布置在十字路口的一枚土制炸弹被触发了。他没有回头看那爆炸的效果,他听声音就能判断——那枚炸弹炸了一辆装甲车的前轮,但后一辆车绕了过去。
上楼。他把枪口朝楼梯间一指,老四和瘸子先冲了上去,他殿后。他的后背贴着大厅的墙,面朝街口的方向,那扇碎了一半的玻璃门外面是一片灰白色的光。他看见一辆装甲车停在了街对面,车顶的武器站正在缓缓转向他这栋楼的方向。他没有等那武器站对准,直接侧身翻进了楼梯间,三步并作两步往上冲。身后传来那武器站开火的声音——不是枪声,是一种低沉的压缩空气爆裂声,他脚后跟刚离开的那块地面被什么东西炸开了一个脸盆大的坑,水泥碎屑溅了他一腿。
他继续往上跑。
在另一条街,沈易蹲的那间写字楼办公室里正在剧烈地晃动。不是地震,是外围的爆炸一次接一次,震波透过钢架结构传导上来,让整层楼的玻璃都在嗡嗡地共振。他那台拼出来的脏信号发射器还稳稳地立在窗边,指示灯跳动得比之前更快了——它在持续发射,功率已经拉到接近峰值,天线的边缘在微微发红。
沈易看了一眼表,距离林劫上次联系他已经过去了十一分钟。他没有收到林劫的信号,但他不敢停。他不知道林劫正在那条管道里面对什么,他只知道如果他停了,林劫那道通向核心的缝隙就会被重新封上。
他的手指在键盘上敲击着,实时调整着发射器的频率参数。外面的无人机群在几次精准打击之后已经学聪明了,它们不再简单地为那段频段的噪声困扰,而是开始用跳频技术逐个规避干扰信道。沈易每一次调整频率,等于在跟那些无人机的通讯协议下一盘快棋——他调完之后大概有十五到二十秒的窗口期,然后系统就会把他的干扰信道自动列进黑名单,再换一个新的频段发指令。
十五秒。他每次只有十五秒。
他的桌面上摊着一堆从各处拆来的零件,其中一块从报废巡捕终端上抠出来的处理芯片正被他用来实时解析捕获的无人机通讯样本。那块芯片的散热风扇是坏的,他只能用半截湿毛巾裹着,每隔十几秒换一次水。水温越来越高,毛巾里的水汽蒸腾起来,在他眼镜片上凝了一层白雾,他拿袖口擦了一下,镜片又糊了。
耳麦里传来马雄的声音,喘得很粗:沈易,你在哪栋楼?
北二路那个万业写字楼,五楼。
你那里快被盯上了。我刚才看见有两架往那边去了。马雄的声音被背景里的爆炸声切得断断续续,你那个破机器——是不是一直在发信号?
妈的我说呢。系统肯定定位到你了。撤。
沈易的手指停了一瞬。他看了一眼那台发射器,天线还在微微发红,还在工作。如果他现在关了它,一切就白费了。林劫那边还没有信号,他不可能在没有任何确认的情况下中断干扰。
再给我五分钟。他说。
你他妈——
五分钟。要么你过来接我,要么我自己跑。但我不能现在关。
耳麦那头沉默了两秒。然后马雄骂了一句什么,声音被爆炸盖住了一半。紧接着沈易听见耳麦里传来急促的脚步声和楼梯间特有的回响——马雄在往他的方向移动。
沈易没有再看耳麦。他把注意力拉回屏幕上,继续调整频率。这一次他捕捉到了一组新的通讯协议特征——那些无人机之间的协同链路里出现了一个此前没有的验证字段,像是某种识别敌我的新机制。他花了八秒钟解析那个字段的结构,然后把它的特征嵌入到自己的干扰信号里,伪造出一部分合法的指令前缀。
他刚刚敲完最后一行参数,就听见窗外传来一声尖锐的金属啸叫。不是无人机——是某种更重的飞行器,引擎的声学特征跟他之前听到的所有型号都不一样。他没有时间抬头看,他侧身把发射器从窗台拖下来,用膝盖抵着它的机箱,然后整个人往办公室的里墙翻滚。
他刚离开窗台的位置,那面落地窗就碎了。不是被子弹打碎的——是被某种气浪从外面推进来的,整面玻璃向内凹陷成一个弧面,然后炸成无数碎片朝他刚才蹲的地方飞过去。如果他还蹲在那里,那些玻璃会把他切成筛子。
沈易趴在墙角的地面上,后脑勺埋进胳膊里,感觉那些碎片打在他背上的金属文件柜外壳上,发出一连串噼里啪啦的脆响。他的眼镜被震掉了,不知道滚到了哪个角落。他半眯着眼,模糊的视线里看见那台发射器的天线还在亮——居然没坏。它还在工作。
然后他听见了第二声啸叫,比刚才更近。
他伸手摸到那台发射器的电源线,猛地把线拔了。天线上的红光闪了一下,灭了。整台设备瞬间安静下来,只剩机箱里的风扇还在惯性转动,发出逐渐衰减的嗡鸣。沈易攥着那根电源线,贴着墙壁往门口的方向爬。他的膝盖压碎了几块玻璃,碎茬扎进裤子的布料里,但他没停。
他摸到了门口。门框上方的应急灯还在发着惨绿的光,他顺着门框站起来,扶着墙往楼梯间跑。走廊里的警报灯也在闪,频率跟指挥中心里那些一模一样——零点八秒一次,精准得让人头皮发麻。
他跑过第二间办公室门口的时候,余光扫到里面有一具尸体。穿着灰色工装的男人,仰面倒在办公桌旁边,桌面上有一台还在亮着的台式机,屏幕上是一张没有发出去的家庭合影。沈易没有停步。他继续跑。他的右手还攥着那根电源线,另一只手摸了一把脸上的汗和碎玻璃渣,手心里全是细小的血点。
他跑到楼梯间门口的时候,身后的走廊尽头传来一声闷响。他的整个后背都被那冲击波推了一下,脚下一个踉跄撞在楼梯扶手上,肋骨磕在金属横杆上,疼得他闷哼一声。他咬紧牙,翻身滚下楼梯,一级一级地往下摔,肩膀、手肘、膝盖轮流着地,每一下都带着火辣辣的刺痛。
他在三楼拐角的平台上停住了。他靠着墙壁坐下来,喘了好一会儿,发现自己的左耳听不太清了——被刚才那声爆炸震得只剩一片持续的嗡鸣。他伸手摸了一下耳廓边缘,摸到一点温热的液体,不知道是汗还是血。
他用袖子擦了一下,没擦干净。他扶着墙壁站起来,继续往下走。
外面的街道比刚才安静了一些——那种暴风雨短暂停歇时的虚假安静,反而比密集的交火更让人不安。沈易推开一楼后门的防火栓,挤进一条窄巷,背靠着墙,终于让自己停了下来。他低头看着自己的右手,那根电源线还在他手里攥着,握把已经被他的手汗浸湿了。
他松了手,电源线掉在地上。他的手指在微微发抖,抖得他不得不把那只手塞进腋窝压住。
耳麦里传来一阵杂音,然后是马雄的声音,比之前更嘶哑,像是喉咙里灌了一嘴烟:你在哪?
后巷。沈易用力咽了一口唾沫,嗓子干得像砂纸,西南角,有个垃圾转运站的后门。
待着别动。我过来接你。
你那还有多少人?
耳麦那头安静了一会儿,长到沈易以为通讯断了。然后马雄的声音重新响起来,平淡得像在报一个天气预报:还有三个。
沈易闭上眼。他把背靠着后巷的砖墙,仰起头,看着头顶那条被建筑物夹成一条细线的天空。那天空依旧是灰白色的,布满了移动的黑点,比刚才更多了。
林劫。他低声说。不是对耳麦说的,是对自己说的。他说出那个名字的时候,不知道为什么,声音里没有求援的意思,更像是在确认什么东西还在。
他把那只还在抖的右手从腋窝里抽出来,按在胸口的位置。心跳很快,但不乱。他还能跑。
他还可以再跑一段。
在地下那个越来越窄的冷却管道里,林劫的头灯照到了第四道闸门。
那道闸门跟前三道都不一样。前几道是普通的工业密封门,他能找到线槽和检修接口。但眼前这道门表面光滑得没有任何接缝,金属材质反射着头灯的光,像一面毫无瑕疵的黑色镜子。他伸手摸了一下门板的表面,指尖滑了一下,什么也没有摸到——没有螺丝、没有焊缝、没有传感器的凸起,整块门像是从一整块金属上直接削出来的。
他的呼吸在面罩里变成一团雾。管道里的温度已经降到了零下六十度出头,隔热服的加热系统正在以最大功率工作,但靠近门板的那一面仍然能感觉到寒气从合金层渗透进来,沿着锁骨往下走。他的手指开始僵硬了,指尖的触感正在消退。
他侧过身,把肩甲抵在管道壁上,用几乎冻僵的右手从工具包里抽出一根光纤探测线,贴着门板的边缘仔细探了一圈。在右下角大约一掌宽的位置,探测器的读数忽然偏转了一个微小的角度——那里有一段极其浅的凹槽,深度不到一毫米,像是被什么东西反复摩擦过之后留下的痕迹。不是磨损,是某种接口的痕迹。
林劫把探测线收回来,换了另一根带探针的线缆,沿着那道凹槽慢慢地往里推。探针滑进了不到半厘米就顶住了,读取到的信号类型他认得——是早期版本的物理层诊断协议,比他现在使用的通用破解工具早了至少两个版本。那道门的设计年代比这条管道还要老。
他把脸凑近门板,隔着面罩盯着那道凹槽看了几秒。然后他做了一件危险的尝试——他把随身携带的备用电源接口焊了两根线,直接接在那道凹槽的两端,用一个极低电压的脉冲信号去试探它。门板内部传来一声极轻微、几乎听不见的咔嗒,像是某个机械锁扣松动了一格。
他又加了一个脉冲。咔嗒。再一个。咔嗒。
第四次脉冲之后,门板边缘裂开了一条头发丝粗细的缝隙,冷气从缝隙里涌出来,灌进他的面罩内侧,激得他整张脸的肌肉都收缩了一下。他咬紧牙,没有缩手。他用探针卡住那道缝隙,一点一点地、极其缓慢地把门板往侧面推。门很重,不像普通机械门该有的重量——门的内部可能填充了某种防爆材料,厚度远超标准规格。
他把门推开了大约二十公分,够一个人侧身挤过去的宽度。门后面是一条垂直向下的检修竖井,漆黑一片,头灯的光照不到底。
他站在竖井边缘,能感觉到一股持续上升的冷气流从下面涌上来,夹带着某种极低的、几乎不在人耳听觉范围内的次声波,通过金属结构传导到他脚下,震得他胫骨发麻。
他没有犹豫。他把工具包收紧到胸前,侧身挤过那道门缝,一只脚踩在竖井边缘的检修梯上。梯子的横杆被低温冻得溜滑,他手套上的防滑纹路勉强提供了一点摩擦力。他往下爬了三格,忽然感觉到头顶那道门在他身后重新合拢了,带着一声极轻的、确定不移的金属撞击声。
锁死了。
他没有回头。他继续往下爬。竖井壁上每隔一段距离就有一组已经熄灭的指示灯,不知道是年久失修还是被关闭的。他数着自己的脚步,一格、两格、十格、二十格——他数到三十七格的时候,脚底踩到了硬质的地面。
他踩到了一块干燥的、没有被冰霜覆盖的地面上。
他蹲下来摸了一下那块地面。是某种合成材料,不像管道里的金属那么凉,带有轻微的绝缘感。他抬起头,头灯照向四周——他站在一条走廊的尽头。走廊很矮,天花板离他头顶不到一尺半,两侧的墙壁上覆盖着某种吸波材料,暗灰色,没有一点反光。走廊的深处似乎有极其微弱的蓝光透过来,像是某种设备在远处低功率运行。
他站直了一瞬,撞到了天花板。他不得不微微弯着腰往前走,每一步都踩在那种柔软的合成地面上,几乎没有发出任何声音。他能感觉到空气的温度在缓慢回升——从零下六十多度升到零下五十多度,虽然还是很冷,但方向是向上的,这意味着他正在接近某个有人为温控的区域。
走廊尽头是一道半透明的隔板。隔板后面是一间不大的房间,房间里有一排矮柜,柜子顶上散落着几张纸质文件。在这样一个深度、这样一个环境里,纸质文件本身就是一个异常的信号。
林劫停在隔板前面,隔着半透明的材料看着那几张纸。他看见最上面那张纸上有一个手写的日期,墨迹已经褪色了,但还能辨认出年份——那比他妹妹出生的时间还要早十一年。
他伸出右手,隔着面罩的镜片,指尖悬在隔板的表面上方,没有碰上去。他听见自己的呼吸声变得很浅,很慢,像是连呼吸都不敢打扰此刻正在他面前展开的某种东西。
他身后的竖井里传来了极其遥远的一声金属撞击——像是更深处,又有一道闸门落下了。
林劫没有动。他的目光还锁在那张泛黄的纸上。他的右手慢慢地收了回来,握成拳,攥在胸口的位置,跟他的心跳一样安静。