《重岳》 第1章 重岳 蓉城工业大学毕业典礼安排在学术报告厅。上午十点,近千名学生把阶梯式座椅填得满满当当,**台上方的横幅被空调风吹得微微鼓动。陆维桢坐在第二排中间位置,衬衫袖口洗得发白但熨得平整。今天之后他就不再是学生了,这四年他几乎把所有的课余时间都泡在实验室和图书馆里,拿过两次国家奖学金,发过一篇材料科学核心期刊的二作。他以为这些积累能换来一些体面。 苏媛上台的时候掌声比之前的任何一位发言代表都热烈。她穿了白色套装,马尾扎得高而挺括,站在演讲台前的姿态从容自如。她讲的是“青年学子的责任与担当“,语调圆润流畅。讲到第三分钟的时候,台下不知从哪个角落传来一个男生起哄的声音,不高不低但足够让周围人听见:“苏媛,听说有人给你写了三十七封情书?什么人有这么大毅力啊?“ 笑声像是被点燃的纸捻,从那个角落向整个报告厅迅速蔓延。苏媛顿了一下,伸手调整了话筒架的高度。她的目光精准地扫过了陆维桢所在的位置,然后她在麦克风里说了一句话,声音不大但扩音系统把每一个字都送得清清楚楚:“我建议某些同学把写情书的精力用在提升自己上,不要整天做不切实际的梦。脚踏实地不好吗?“ 报告厅里的笑声膨胀成一片。有人吹口哨,有人朝第二排的方向扭过身来指指点点。陆维桢感觉到旁边座位的空气被无数道目光穿透了,那些视线像细针一样扎在他侧脸上。他握紧拳头,指甲嵌进掌心,从座位上缓缓站起来。他只想离开这间屋子,越快越好。 站起来的时候他右侧过道旁边坐着一个戴棒球帽的男生,那人伸出脚绊了他一下。陆维桢失去平衡,膝盖磕在座椅金属支架上,整个人扑倒在了过道的地面上。他的手机从裤袋里滑出来,屏幕朝上亮着——第三十八封邮件草稿的页面刚好暴露在过道的灯光下,收件人是苏媛的校园邮箱,标题写着“有些话想当面说清楚,但你可能不愿见我“。 离他最近的一个女生弯腰捡起了那只手机,举起来看了一眼屏幕,大声念出了邮件标题。笑声比刚才更刺耳,带着一种集体释放的恶意的尖锐。陆维桢趴在地上,额角磕出的血顺着眉骨往下淌,混着汗液模糊了视线。他能听见快门声——有人在用手机拍他,不止一台。 他挣扎着想爬起来,但膝盖撞出的钝痛和胃里翻涌的灼热感同时袭来。视野边缘开始发黑,地面瓷砖的纹路扭曲成漩涡状,笑声和快门声从四面八方涌进来像涨潮的海水。他最后看见的是**台上苏媛的背影,白色套装在聚光灯下刺目得像一块冰。 然后一切都沉下去了。 黑暗里响起一个声音。这次跟上次模糊的感觉不同——它清晰、冷静、带着极轻微的金属质感的共鸣:“检测到s级执念场叠加致命羞辱事件……天工系统绑定中……神经耦合保护层开启完成。宿主的情绪峰值暂时被压制在安全阈值以下,现在可以呼吸了。“ 陆维桢猛地吸了一口气。校医院的天花板是白的,灯管带着微微的频闪,吊瓶里的液体沿着输液管一滴滴往下走。他的额头被包了一块纱布,膝盖上的擦伤也涂了药。护士在门口探了一下头说“醒了?你昏了快两天,低血糖加急性应激反应,年轻人悠着点“,然后走了。 他等护士的脚步声完全消失在走廊尽头之后才抬起右手。视野里悬着一面半透明的深蓝色光屏,边缘流淌着细密的流光纹路。那个声音又在意识里响起来了,比刚才多了一点点说不清道不明的活泛:“天工系统已激活。当前权限:民用科技解锁。可用积分:一百。新手任务:七十二小时内完成一件具备市场价值的制成品。任务成功奖励:五百积分,开启军用科技权限。“ 陆维桢盯着那面光屏,它的边缘在微微跳动,像心脏搏动的节奏。他嘴唇动了动,嗓子干得发紧:“你是谁。“ “一段储存了高等文明全部科技火种的程序。通俗地说,一个知识库。但我建议你别跟任何人提起这段对话,否则你会被送进精神科。“那个声音顿了顿,“刚才那是幽默模块的尝试。成功了吗?“ “没有。“ “记录:第一次尝试失败。继续工作。“ 陆维桢把针头拔了。血珠从手背针眼渗出来,他没管。光屏上展开了一张淡蓝色的工艺图纸,标注着“三维交联石墨烯骨架+锂金属负极体系——民用级高密度储能单元“。原子层沉积参数、电解液配方比例、化成工艺窗口、充放电截止电压区间,大量数据像河流决堤一样涌入他的脑海,整个过程只持续了不到三秒。他发现自己完全理解了那些参数,就像自己已经在实验室里反复验证过上百次一样。 他把输液管从吊瓶架上解开扔进垃圾桶,从柜子里翻出外套穿上。推门出去之前,光屏又弹了一行字:“你额头的纱布很丑,建议贴小一点的创可贴。不,这条不是幽默模块,是个诚恳的美学建议。幽默模块暂时关闭了。“ 陆维桢扯掉了额头上的纱布,在路过洗手间时洗掉了干涸的血渍,换了一块小创可贴。走出校医院大门的时候,阳光猛地照在他脸上,他眯了一下眼。口袋里的手机还在,屏幕碎了但能亮,壁纸还是系统默认的蓝色背景。他翻了一下未读消息,二十三通未接来电来自室友和辅导员,两条消息来自苏媛——他没点开,直接划掉了。只是余光扫到第一条的预览:“听说你晕倒了,这事跟我没关系吧?“ 他把手机塞回口袋,朝东门那条街的老赵维修铺走去。光屏在他视野右侧浮着,新手任务的倒计时在右下角一跳一跳,底部还有一行更小的字:“顺便提醒一句,那个叫苏媛的女性。她在台上说你做不切实际的梦的时候,她父亲是远新能源的第三大股东。你手里的这张电池图纸,如果能量产,远新能源的核心产品线会在三年内被淘汰百分之七十。这就是所谓的戏剧性,不是吗?“ 陆维桢走着走着忽然停了一步。他侧过头,对着空气压低声音:“你知道远新能源?“ “我绑定了你的全部记忆和所有公开数据库。这件事如果你早告诉我你就不会写三十八封邮件了。“系统的声音依然是那种冷静的金属质感,“但你可能早就知道了,只是选择性忽略。不分析,纯观察。幽默模块依然关闭。“ 老赵维修铺的门面在梧桐树的荫影里。陆维桢推门进去的时候,老赵正拿酒精棉擦一台旧笔记本的屏幕,看见他的额头就放下了手里的活:“小陆你怎么了这是?额头怎么回事?“他说着目光从他额头的创可贴滑到他眼底那种沉下去的光泽,嘴巴张了一下又合上了。 “赵叔,“陆维桢把背包放在柜台上,“你那台真空溅射机还闲着吗?“ “闲着。你要干啥?“ “做一组电池样品。“陆维桢拉开背包拉链,从里面抽出一张空白的打印纸,在柜台上用笔飞快地画了一个极片叠层结构的草图递给老赵,“材料清单我回头给你,电费算我的。成了利润你分四成。“ 老赵接过那张纸看了半天,翻过来倒过去看了两遍,上面的分子结构式和工艺参数对他来说像天书,但他认识陆维桢这个人。这小伙子三年来在他这里修过十几次电脑和手机,每次都把机器擦干净了才还给他。他看了看陆维桢额头上的创可贴,又看了看那些在他眼里只认得“碳““锂“几个字的结构式,最后拍了一下柜台面:“整。“ 凌晨两点十七分,维修铺后间真空泵低鸣着运转,观察窗里幽蓝色的辉光均匀地覆盖在基底表面。陆维桢坐在操作台前的圆凳上盯着沉积参数,光屏在他的视野里实时显示着每一层薄膜的原子排列状态。系统的声音忽然响了一下:“第一层沉积完成率百分之百,晶格匹配度百分之九十九点七。顺便说一句,你现在的表情比你写第三十八封邮件时好看。“ 陆维桢没有回应。他盯着观察窗里那片正在生长的银灰色薄膜,窗玻璃上倒映出他自己的脸,额角的创可贴边缘卷了一点点起来,但目光很亮。窗外梧桐树的轮廓被凌晨的路灯勾出一条模糊的金边,远处有一辆夜班公交车轰鸣着驶过街口。 他低下头,光屏底部弹出一行细如发丝的灰色文字:“新手任务预计在明天下午四点前完成。提前准备一下后续步骤:这张电池图纸如果公开,你会在七十二小时内被至少三股力量注意到。其中之一是国内的人。其中之一是境外的。“ 陆维桢把圆凳往前挪了半寸,离观察窗更近了一点。幽蓝色的光映在他的瞳仁里,像夜里远处海面上的微火。 第2章 开刃 天亮之前最后一批样品出炉。陆维桢从真空腔内取出四片完整的软包电池,用万用表测了开路电压,每片之间的差异小到可以忽略。他把样品挨个贴上标签,编号从一到四,用无尘布反复擦拭了极耳触点,才装进硬质塑料样品盒里。 老赵趴在旁边的一张旧办公桌上睡了过去,头枕着交叠的小臂,呼吸均匀厚重,鬓角的白发在日光灯的冷白光下显得格外扎眼。他的手机屏幕亮着,显示正在播放一段京剧折子戏,音量被调到最低一格,只听见若有若无的锣鼓点子在空气中浮动着。 陆维桢没有叫醒他。他把样品盒放进背包,留了一张字条压在样品盒原先占据的桌面位置,上面写了自己的手机号新卡和一句“谢谢赵叔“。推门出去时天已经全亮了,东方的楼宇缝隙间透出橘红色的一段晨光。 他回到学校宿舍收拾了最后几件东西:笔记本电脑、两本专业书、换洗衣物、和一张放在抽屉最底部的校园一卡通。室友不在,桌上留着半袋饼干和一罐开了没喝完的汽水。他把床铺整理好,把钥匙留在桌上,背着包出了门。系统光屏在他视野右侧安静地浮着,上面跳出了一个倒计时:“新手任务剩余时间:六小时四十分。建议前往蓉城新能源产业峰会会场。你那张展板已经打印好了。“ 陆维桢从背包侧袋摸出那卷事先通过在线打印服务定制的a0尺寸技术展板。他昨天晚上趁沉积间隙登录网上下单了加急打印,收货地址选了一家离会展中心最近的便利店。他去取的时候,收银员小姑娘把卷成筒状的展板递过来时说了一句“哇这个好重“,他接过来掂了掂,确实厚实,用的是最好的防水哑光纸。 蓉城新国际会展中心大门外挂着“全国新能源产业峰会“的红底白字横幅,入口处排着几条队伍,扛着长枪短炮的媒体记者和穿西装挂胸牌的企业代表分列两侧通道。陆维桢没有胸牌,他站在入口旁边的消防通道门等了大概十分钟,等一个穿着橙色环卫马甲的老大爷推着清洁车从里面出来的时候,他侧身从门缝里闪了进去。 峰会已经进行到第二天上午的分论坛环节了。主会场在直播院士报告,但新能源电池分论坛的展板区相对安静,只有七八个穿白大褂或休闲夹克的技术人员在几块自由投稿的展板前驻留。陆维桢找到一块空置的展板位置,把装订绳在金属横杆上绕了两圈系牢,从卷筒里抽出那张a0展板展开铺平挂好。 他往后退了两步打量自己的展板。标题用的是粗黑体:“三维交联石墨烯骨架复合锂金属负极——能量密度突破四百五十瓦时每公斤的实用化路径“。底下一整片密密麻麻的工艺参数、材料配比、化成窗口和良率测算表格。右上角贴了一张他用手机拍的样品照片,四片银灰色的软包电池并排摆在白纸上,旁边放了一把直尺做参照物。整块展板规整到不像一个本科生能拿出来的东西,倒像是某个做了十几年的老实验室的成果简报。 旁边有一块自由投稿展板的主人是个穿条纹衬衫的年轻博士生,贴的是“高比能锂硫电池界面改性方案“,正在跟两个路过的人讲解自己做的界面修饰层。他余光瞥到陆维桢挂好展板之后主动递了一张名片过来,很友善地说:“你也是投稿的?哪个组的?“ 陆维桢接过来看了一眼名片上的名字和学校,摇了摇头:“没组,个人。“ 那博士生愣了一下,然后伸头去看陆维桢的展板。他扫了一眼标题,目光移向下面的参数表格,然后整个人顿住了。他凑近了大概三十公分,鼻尖几乎要贴到哑光纸表面,来回看了两三遍,下巴的线条绷紧了。 “你这组能量密度数据……实测值?“他转过身来看着陆维桢,语气里的友善被一种严肃取代了,“四百六十三瓦时每公斤?循环三千两百次?你这组化成工艺的温度窗口我没见过,哪个期刊发的?“ “还没发。“陆维桢说,“样品在这里,你可以拿去测。第三组数据是最好的一组,首效百分之九十三点二。“ 那博士生还没来得及接话,旁边已经聚过来五六个人。其中一个戴金丝眼镜的中年人从人群中挤到前排,俯身仔细看了展板上的化成工艺参数表格,然后抬起头对着陆维桢问了一句:“你这个原子层沉积的流程里,脉冲时间给的是零点八秒,一般来说零点五秒就足够覆盖了。多出来的零点三秒有什么考虑?“ “基底边缘效应。“陆维桢看着他回答说,“零点五秒在平面区域够用,但锂金属负极的实际表面有微米级凹凸结构,零点八秒可以把凹坑底部也覆盖完整。扫过截面电镜了,覆盖率提升百分之十七,对循环寿命有直接影响。“ 中年人推了一下眼镜,没有说话,掏出手机开始拍展板的每一部分。周围聚的人越来越多,有人垫着脚从后面伸手机拍,有人掏出笔记本在记录参数。那个年轻博士生已经退到了人群外围,手里捏着那张被遗忘的名片,看着陆维桢的眼神变得很复杂。 就在这时从人群外面传来了一个声音,嗓门粗,带着金属质的穿透力:“四百六十瓦时每公斤?这组数据如果是真的,我当场把这半瓶水喝了。“说话的人穿一件深蓝色polo衫,胸牌上印着某知名新能源企业的研发总监字样,旁边跟着三个助理模样的人。他挤到前排站定,双手抱臂看着展板,嘴角挂着一抹明晃晃的嘲讽。 陆维桢看了他一眼,从背包里取出编号为三号的样品电池,又从侧袋掏出一只便携式充放电测试仪——老赵店铺里的备用件,借出来之前打了招呼。他把电池接上测试仪的夹具,把屏幕转向围观的人群,按下启动键。屏幕上跳出了实时充放电曲线,电压和容量数据开始平稳上升。 “实测数据目前跑了七分钟。“陆维桢把测试仪举高了一点让更多的人看见屏幕,“第一批完整的循环数据大概要四十分钟出来。但你们可以先看首圈的充电容量——目前已经跑到设计值的百分之九十八了。“ 穿polo衫的总监凑近了看测试仪屏幕,嘴角的嘲讽开始收拢。他盯着爬升的数据曲线看了接近一分钟,从下巴的线条逐渐紧绷成了紧闭的唇线。他旁边的一个助理低下头用手机快速敲了一行字发了出去。 四十分钟后,首批循环数据完成。测试仪屏幕上的数字定格在一个所有人都在等的位置:能量密度四百六十三点二瓦时每公斤,首效百分之九十三点一,容量保持率百分之九十九点七。陆维桢把测试仪从夹具上取下来,把编号三号样品重新装进样品盒里收好。现场一片安静,连那个年轻博士生的呼吸声都听得到。 穿polo衫的总监扭头对助理说了一句什么,转身走了。他走之前步子比来的时候快了半拍,手伸进兜里摸手机的动作不太自然。 展板前面重新安静下来之后,陆维桢感觉到人群的密度在悄悄变化——有人退出去打电话,有人站在原地继续拍,还有人从侧后方挤进来举着手机录像。他自己靠在旁边的消防栓箱上,背包带勒着肩膀的旧伤还有点酸。视野里的光屏弹出一行文字:“新手任务完成进度:数据验证通过。你的表情管理比昨晚好。幽默模块仍然关闭。“ 这时人群外围传来了一个声音,苍老而清晰,带着一点不疾不徐的沉稳:“麻烦让一下,我过来看看。“围观的人群自动分开了一条通道。一个头发花白的清瘦老者从通道里走到展板前面,穿一件深灰色西装,里面是白衬衫,领口没有打领带。他身后跟了四个年轻人,其中两人手里拎着黑色的设备箱。 老者从西装内袋掏出一副老花镜戴上,俯身凑到展板前一行一行地读。读得很慢,有些地方他停下来用手指点着表格里的数字轻声念了一遍。他读到第三遍的时候手指在能量密度的数字上停住了,然后他直起身,摘下老花镜,回头扫了一圈周围的人:“这块展板谁贴的?“ 陆维桢从消防栓箱旁边站起来走了过去:“我贴的。“ 老者打量了他几秒,目光从他额角的创可贴移到洗得发白的衬衫领口,又移到他的眼睛。他点了点头:“你东西带着?“ “带了。“陆维桢拍了拍背包,“编号一和二的两片样品在包里,编号三刚才跑了四十分钟数据,温度稍微有点高。编号四备用。“ “找个地方,重新跑一遍。“老者转身对身后一个拎设备箱的年轻人抬了抬下巴,“去三楼小会议室,把台架搭起来。我要看满循环。“他回头看向陆维桢,朝展板方向扬了一下头,“你带上板子,一起过来。“ 陆维桢收起展板卷好放进背包,跟上老者的步伐穿过展板区走向电梯。走到电梯口的时候老者侧过头问他:“你叫什么?“ “陆维桢。陆地的陆,维系的维,桢干的桢。“ “维桢。“老者重复了一遍这两个字,嘴角弯了弯,“《诗经》里的词。你知道什么意思?“ “王国克生,维周之桢。国家栋梁的意思。“ 老者按下了电梯三层的按钮,电梯门合拢前他看着陆维桢的眼睛说了一句话:“那就看看你是不是这块材料。“ 陆维桢靠在电梯内壁上,背包里的样品盒贴着后背传来微弱的温度——三号样品跑了四十分钟测试还没完全冷下来。他的视野里光屏底部多了一行细密的灰色文字:“张启明,龙科院材料研究所所长,国重实验室主任,中科院院士。他出现在这里意味着你接下来的七十二小时会彻底不一样。顺便提醒,那瓶水他最后也没喝。“ 电梯门在三楼敞开的时候,走廊尽头已经有人把便携式测试台架摆好了。陆维桢走过去从背包里取出样品盒时,光屏又弹了一行极小的字:“远新能源的股价在今天上午十一点十四分开始小幅下跌,目前跌幅百分之一点二。你觉得这跟某个人的展板有关系吗?“ 陆维桢没有回答。他把样品接上测试仪的夹具,转头看向张启明。老人坐在旁边的折叠椅上,摘了花镜捏在手里,正看着他。日光灯的光落在老人花白的头顶和陆维桢额角微微卷起的创可贴上,窗外会展中心巨大的屋顶钢架在天幕下投出鳞次栉比的影子。 光屏角落里还藏着一行没主动弹出来的字,细得像蛛丝:“检测到一条来自境外学术数据库的访问记录。有人从比利时鲁汶的ip地址下载了蓉城新能源峰会的议程表。下载时间是二十六分钟前。“ 第3章 入局 测试台架在十一点四十三分完成了第一组满循环。张启明一直坐在折叠椅上没离开过,偶尔站起来走到台架旁边看实时数据曲线,更多的时候只是安静地捏着那副老花镜。他身后的两个年轻人轮换着记录数据,另一个负责检查夹具接触电阻和温度传感器的读数,每一步操作都被标上了精确的时间戳。 当循环容量保持率落在设计值百分之九十九点七时,张启明终于从椅子上站了起来。他没有说话,先是走到台架侧面蹲下检查了一遍所有接线端子的紧固程度,然后从西装口袋里掏出一支钢笔,在一张白纸背面写了几行数据,对照测试仪屏幕又核验了一遍。他直起身时看着陆维桢问了一个问题:“你用什么设备做的样品?“ “东门外面一家维修铺的真空溅射机。“陆维桢说,“型号是旧款的spi-200,加热模块有老化,我改了温控算法补偿。镀膜腔体密封圈漏气率偏高,所以在沉积参数里把基底温度往上抬了八度做补偿。“ 张启明听完之后闭了一下眼睛。他睁开眼的时候眼角纹路明显比刚才深了一点,但语气没有波动:“那个维修铺的机器,额定真空度是多少?“ “出厂标称十的负五次方帕,实测漏气之后只能到十的负四次方帕。“ “在漏气率高一整个量级的设备上,做出了对标全球顶级实验室的薄膜均匀性。“张启明把钢笔帽拧回去,放回西装内袋,“你那个温控补偿方案是怎么算的?“ “菲克第二定律做扩散修正,把漏入的残余气体分压作为边界条件代入,然后反推了沉积速率和温度之间的耦合关系。“陆维桢从背包里摸出昨晚在维修铺后间用记账本背面做的几页推导草稿递了过去。 张启明接过草稿翻了一遍。纸是横条信笺,字写得密而工整,公式旁偶尔有被他用红笔圈过的地方——那是陆维桢自己反复检查时留下的标记。张启明翻到最后一页看完,把草稿纸折好放进了自己西装的内袋里,然后对旁边一个年轻助理说:“把特招表格给我。“ 助理从文件袋里抽出一张带红头的表格递过来。张启明接过来在旁边的会议桌上铺开,从口袋里掏出钢笔拧开,在推荐人一栏签了自己的名字,然后把表格转过来推向陆维桢:“特招进龙科院材料研究所,编制挂在基础理论部,实际工作跟着我的专项组走。你现在填基础信息,剩下的事情我来处理。“ 陆维桢接过表格低头看了一遍。表格上的单位名称是龙国科学院材料科学研究所,地址栏后面跟着一串加密的内部编号,推荐人签名栏里的字迹遒劲有力。“天工“系统的光屏在他视野里微微闪了一下,弹出一行小字:“注意:如果你现在签这张表,你的个人档案会在二十四小时内进入国家保密人员目录。届时所有出入境、通讯、社交网络行为都会被纳入监控保护范围。签字之前确认你准备好了。“ 陆维桢没有停顿。他从张启明手里接过钢笔,在姓名栏里写下了自己的名字。“维“字写到最后几笔时钢笔的出墨稍微有点涩,他用力压了一下笔尖让墨迹完整地走完最后一折。填完基础信息后他把表格推回去,合上笔帽还给张启明。 张启明把表格收进文件袋,又看了一眼陆维桢额角微微卷边的创可贴:“你额头的伤口换过药?“ “校医院处理过。“ “回去之后找医务室重新消毒,创可贴不要贴超过半天。“张启明站起身把折叠椅折好靠墙放好,拿起文件袋朝门口走去。走到门口时他侧过身,目光在陆维桢身上停了一下,“下午三点龙科院北区三号楼有人接你。带上你这四片样品,一张都别少。“ 张启明走了之后小会议室里只剩陆维桢和那个负责操作台架的年轻助理。助理开始收测试设备,陆维桢帮他把夹具卸下来放回设备箱里。两个人谁也没多说话,收完东西之后助理拉开门朝他点了下头:“三点北区三号楼门口,有人等你。“ 会议室安静下来以后陆维桢才重新坐下来,后背靠住椅背,感觉到腰椎的位置微微发酸。他掏出手机看了一眼,碎屏上的时间正好过了十二点。未读消息的图标又跳了新数字,是室友发的一条:“我靠你上学校论坛了,有人把你昨天在报告厅的照片发了帖子,评论都过两百了。你没事吧?“ 陆维桢没有点进去看。他把手机翻了个面屏幕朝下扣在桌面上,光屏在他的视野右侧安静地浮着,底部弹出了一行信息:“比利时鲁汶那一条下载记录的ip被二次追踪了。下载时间二十六分钟前这个信息没错,但那个ip通过多层代理跳转了至少四个国家。真正的源地址在比鲁汶往东大约三十公里的一个非大学园区。“ 陆维桢看着那行字,手指无意识地在桌沿敲了两下:“能定位到具体建筑吗?“ “暂时不行。但那个非大学园区的电信服务商名称和某家精密加工企业的集团采购记录有交集。该企业的业务范围包括特种磁性材料器件,工厂分布在东欧和东南亚两地。“光屏上的字停顿了一下,然后追加了一条,“我不建议你现在深挖这条线。你首要处理的是下午三点的接头。“ 陆维桢起身收起桌上剩余的测试线缆和夹具,把背包重新拉好。他走出小会议室经过走廊时透过一扇落地窗看到了外面的街景——会展中心北广场上停着几辆深色suv,有穿风衣的人站在车门旁边抽烟,姿态松散但视线始终在扫视广场上进出的人群。烟头的火光在正午的阳光下几乎看不见,但那人吐出的烟气飘向的方向跟他面朝的方向之间隔着一个微妙的夹角,说明他站的位置其实一直在保持一个随时可以侧身掩护的观察角度。 陆维桢收回视线从另一侧出口离开了会展中心。他沿着人行道走了大约十分钟找到一家面馆,进去点了一碗素面。吃面的过程中他打开了手机上的地图软件搜索“龙科院北区三号楼“,地图上只显示了一个模糊的区域轮廓,没有具体的建筑细节。 系统的光屏在他吃面时又跳了一下:“龙科院北区三号楼属于材料研究所二期的实验楼群,地表三层地下五层。地下三层的空调系统进风管道改造记录显示三年前进行过一次静音化处理,通常这种降噪工程只在大型精密仪器实验室才会做。你可能下去之后会听到一种比较低的嗡嗡声。“ “什么嗡嗡声?“陆维桢低头吃面,嘴唇间挤出半句话。 “大型电磁屏蔽室内部配套的主动消声系统。顺便说一句,面该拌了,不然会坨。“ 陆维桢夹了一筷子面送进嘴里,确实开始坨了。他加快速度吃完面结了账,走出面馆时正午的太阳当头照着,街面上的沥青被晒得微微发软。他沿着导航方向走了大约二十分钟,街边的建筑从商铺和住宅逐渐变成了高耸的围墙和铁栅栏。围墙上每隔一百米嵌着一块铭牌,白底红字写着“龙国科学院蓉城园区“。 北区三号楼是一栋六层的灰白色建筑,表面没有任何标识,连楼号牌都没有。楼前的门禁系统配了指纹和虹膜双重识别,旁边站着一个穿黑色夹克的中年人,寸头,脖颈侧面一道旧疤从耳后斜进领口。他的站姿看着随意,但重心落在前脚掌上,说话之前已经完成了对陆维桢这个人的整体扫描。 “陆维桢?“中年人伸出手,手掌宽大,指腹茧层厚实,“周承岳。张院士让我在这等你。跟我走。“ 陆维桢跟他握了手。周承岳转身刷开楼门时侧头看了他一眼,目光从他额角的创可贴扫到肩膀上背包带的勒痕,然后收回视线推开了门:“地下三层比较冷,你进去之前把外套拉上。那四片样品在包里带着吧?“ “带着。“ “好。“周承岳走在前面刷卡按了电梯的负三层键,电梯门合上之前他随口说了一句,“另外,你那个展板的数据今天中午已经被国际材料学会的预印本平台收录了。有人帮你投的稿,没署名。“他顿了顿,看着电梯面板上跳动的楼层数字,“你在会展中心给那帮人看数据的时候,至少有十七个不同单位的参会代表拍了照片。其中一张发到了一个境外学术讨论组里,刚才已经被转发到比利时那边了。“ 陆维桢靠在电梯内壁上,背包里的四片样品隔着布料贴着他的后背。“天工“系统的光屏在电梯门合拢的瞬间无声地弹出了一行字,字色比平时深了几分:“比利时那个转发动作的链路特征和你之前收到的峰会日程下载来源一致。它们之间有一条线,比我想的更短。“ 电梯停了。门打开的一瞬间冷空气和极低的通风声扑面而来,陆维桢外套的拉链被他无声地拉到了最高处。他跨出电梯门之前余光扫到了走廊尽头那具安静的金属骨架的影子,在灯下暗沉地立着。天工系统的光屏底部多了一句话,收尾处微微泛着一丝比深蓝更暗的色调:“幽默模块重新激活尝试中。你在面馆吃得有点狼狈,但比昨天在报告厅摔那一跤体面。“ 他脚步没停。 第4章 承重 陆维桢跨出电梯门时冷空气裹着淡淡的臭氧味扑在脸上。走廊大约十五米长,尽头是一扇双开钢制防火门,门缝渗出的白光把地面切成一道笔直的光带。周承岳走在前面刷了门禁卡,防火门的电磁锁发出一声干净的解锁咔嗒,门朝两侧滑开。 白光涌出来的时候陆维桢眯了一下眼,然后他看见了那具骨架。 大厅比走廊的温度还要低两三度,穹顶的灯矩阵将整个空间照得白亮如昼,四周墙壁上嵌着整面整面的铅灰色金属板——电磁屏蔽网在光线下泛着极淡的冷金属光泽。大厅中央的转台铁架上矗立着一具灰黑色的金属骨架,高度大约到成年男性的胸口偏上位置,髋关节和膝关节处堆叠着粗壮的液压缸体,不锈钢管路像裸露的血管一样从腰部一直延伸到脚掌,表面反射着灯光,管壁上有几处漆面剥落露出的锈色斑痕。骨架的脚底固定在四只承重传感器平台上,传感器连线沿着铁架支柱向下汇入地面的接线槽。 陆维桢站在距离骨架大约三米的位置停下。他没有说话,只是仰头从脚踝开始缓缓往上扫视了一遍整具骨架的构型。液压缸的密封件外圈渗着轻微的油渍,管路固定卡箍有几颗螺丝的十字槽被拧花了,膝关节处的驱动阀组外壳表面留着一排绝缘胶带缠绕过的痕迹。这些细节在他视线经过时被“天工“系统的视觉分析模块逐条标注了出来,光屏上浮现出对应的磨损评估和故障概率数字。 “这是重岳零号。“周承岳走到骨架侧面,伸手在髋关节外壳上叩了两下,金属声沉闷短促,“三年前由七零三所牵头设计,总投入两点七个亿。设计指标单兵负重一百二十公斤、越野时速二十公里、连续工作八小时。但液压伺服系统响应延迟从第一批样机出来就卡在零点二四秒左右,始终压不进设计目标的零点二秒以内。去年冬天寒区测试,一个战士做快速转向时右膝响应滞后,整个人侧摔在冰面上,髌骨骨折。“他顿了一下,“测试之后这具骨架就封存在这里了。“ 陆维桢向前走了两步,在骨架的右膝关节前面蹲下来。他用指腹摸了摸液压缸活塞杆与缸体接缝处的密封圈,手指上沾了一层薄薄的黑色油泥。他放在鼻端闻了一下——铁磁性磨屑混着液压油氧化的酸味。“天工“系统的光屏自动展开了一幅三维剖面图,把液压缸内部的磨损区域用高亮色块标注了出来,旁边跟着一行建议文字:“活塞杆密封圈已超过服役寿命,缸体内壁磨痕深度十二微米,建议整体更换驱动方案。“ 他站起来的时候周承岳正看着他。“怎么样?“周承岳的声音很平,但陆维桢注意到他背在身后的右手食指在无声地轻叩。 “液压系统全拆。“陆维桢转过身来面对他,“关节里的所有齿轮箱、传动轴、伺服阀全部移除。换成磁流变液驱动,力矩由流体剪切应力直接提供,中间不经过任何机械转换环节。响应延迟可以从现在的零点二四秒压到十毫秒以下,同时骨架总重能减掉至少三十公斤。“ 周承岳右手食指的轻叩停了。他看着陆维桢大约三秒钟,没有说话。大厅里的通风管道送风声在两人之间填满了那段短暂的沉默。然后周承岳从夹克侧袋里掏出一部加密手机,拨了一个短号,接通后只说了两句话:“来地下三层,带上你的测试箱。对,就是现在。“ 他挂断电话,把手机收回夹克侧袋。陆维桢注意到他拇指在手机边框上多摩挲了半秒——这是他在处理“需要再确认的事情“时的习惯动作,但问出来的话非常直接:“磁流变液的军用配方你熟?“ “基础液用改性硅油,磁性颗粒选羰基铁粉包覆二氧化硅壳层,粒径分布三百到五百纳米。“陆维桢走到操作台前抽了一支马克笔,在桌面上那张满是液压系统参数图纸的空白处画了一个简单的驱动结构简图,“激励线圈走闭合磁路,用纳米晶磁芯做磁路闭环降低漏磁,外壳用石墨烯复合材料做电磁屏蔽。感知这块不用侵入式电极,用电容式肌电贴片做表面信号采集。精度够,且不需要开颅手术。“ 周承岳走过来低头看了一眼那张简图。结构画得很草,但关键部件的布局关系和尺寸标注都清楚,连激励线圈的匝数和线径都在旁边用括号注了推荐值。他看了一会儿,把那张草稿纸拿起来对着灯光看了一遍背面,确定没有遗漏的信息之后折好放进了自己的夹克内袋。 “你等着。“他说完转身走向大厅东侧的一个小隔间,推门进去了。 陆维桢独自站在大厅中央。他重新走到重岳零号骨架前面,绕着它走了一圈,视线沿着液压管路的走向一一比对系统中给出的磁流变液改造方案。光是重新布线这一项就能省出至少八公斤的重量,更不用提彻底移除齿轮箱之后关节体积会缩小的部分。他可以预见到改装完成后骨架轮廓的变化——会更收敛、更流畅,重力分布沿髋膝踝的轴线自然下沉。 “天工“系统的光屏在他视野里亮了一下:“外部进度更新。国际材料学会预印本平台已在北京时间下午两点零七分正式收录了你的展板数据,投稿人署名为张启明等。目前预印本下载量已超过四百次,ip来源分布在十七个国家和地区。其中一组来自比利时列日的访问轨迹在下载完成之后继续访问了平台服务器的日志接口,这是非正常行为。“ 陆维桢的脚步在骨架的左脚跟前停了一下。光屏上的字继续:“比利时列日那个行为已经被平台端安全机制拦截了,日志接口返回的是空白数据。但对方的访问时间点在预印本上线后第三分钟。非常快,说明有人在提前等待这个链接出现。“ 隔间的门打开了。周承岳走出来,身后跟着一个穿白大褂的年轻女人。她手里拎着一只军绿色的硬质测试箱,另一只手的手机屏幕亮着,上面是一组正在实时刷新的频谱曲线。她的白大褂下面是一件深灰色长袖t恤,袖口卷到了小臂中段,露出的前臂线条瘦而紧实。她走进大厅之后目光从周承岳身上掠过,直接落在了陆维桢身上,然后扫了一眼他身后的骨架。 “顾晏。“她把测试箱搁在操作台上,伸过手来,指腹有零星几处焊锡烫过的白痕,“电磁兼容组。周组长说你要做磁流变液关节的激励线圈?“ 陆维桢跟她握了手,掌心干燥,力道适中:“线圈走闭合磁路,纳米晶磁芯做磁路闭环。但交变工况下的温升会使磁导率漂移,我准备用三绕组结构做温度补偿。主绕组跑工况,补偿绕组接热敏电阻分压网络做闭环调节,第三绕组空置做感应电压监测。温升每增加一度,补偿绕组电流下调零点零三毫安,把磁通密度维持在设计值的正负百分之一以内。“他说完之后看着她,“你觉得可行?“ 顾晏没有立刻回答。她转身弯腰打开测试箱,从里面取出一块备用的纳米晶磁芯样品放在操作台上,然后从白大褂口袋里抽出一张折过的a4纸展开平铺在磁芯旁边——上面是她手写的温漂基线测试数据,每一行都标注了实验条件和误差区间。她把纸往陆维桢的方向推了推:“这是我前天在屏蔽室里跑的一组原始数据。你先看看对得上你的补偿逻辑不。对得上我就开始绕线圈,对不上你把我纸拿来重新画。“ 陆维桢接过那张纸低头扫了一遍。数据记录得非常细致,从零下四十度到零上八十五度每隔五度取一个测量点,每点的磁导率变化都做了三次重复取平均值,误差棒标注清楚。他脑子里“天工“系统的验证模块正在自动交叉比对,所有数字逐一匹配之后弹出一行结果:“数据质量合格。温漂趋势符合理论预期。“ 他把纸折好递还给顾晏:“对得上。你的数据采集方法很规范,重复性误差控制在百分之一点二以内,可以直接用。还有,“他指了指她纸上末段一行被涂改过的数字,“你测到八十五度那组数据第一次写的时候偏高了三个百分点,然后你重测了。那组涂改现在看是对的,你重测之后的数值更贴近实际。“ 顾晏接过纸的动作停了半秒。她低头看了自己涂改过的那行数字一眼,视线回到陆维桢脸上时微微动了一下——幅度很小,但陆维桢注意到了。 “你眼神不错。“她把纸收进白大褂口袋,转身把测试箱扣好,拖过来一把椅子在操作台前坐下,开始翻箱子里面的漆包线轴和绕线骨架,“周组长说你要拆骨架是今天之内?“ “今晚开始拆右腿。“陆维桢说。 “那我先绕一组线圈样件出来。“顾晏把第一卷漆包线的端头拉出来缠在绕线机的固定柱上,头也没回,“你那份补偿逻辑里的温度系数公式写一下给我。“ 陆维桢走到操作台侧面重新拿起马克笔,在白板空白处写了三行公式。笔尖在白板上划出干脆的声响,周承岳站在门口看了他们两个一眼,没有打扰,转身朝电梯方向走去。他走了几步之后侧过头补了一句话:“国际材料学会那边的预印本已经正式收录了。张院士让我转告你:从现在开始,你在公开网络上的任何痕迹都会被定期筛查。“ 陆维桢写完最后一行公式放下马克笔,转头看着周承岳的背影走进电梯。电梯门合拢之前他听到周承岳的手机在响,接起来之后只说了“嗯“一声就挂了。 白板上的公式墨迹还没干透,顾晏的绕线机已经开始嗡嗡转动了。她背对着他坐在操作台前,后背的线条在白大褂下面专注地前倾。大厅里那具重岳零号的液压骨架在灯光下投出一道宽阔的暗影,覆盖了转台周围半圈地面。陆维桢站在白板和骨架之间的空地上,光屏的右下角安静地浮着一行浅灰色的小字:“比利时列日的那个访问者现已定位到一座注册在工业园区的数据中心。该数据中心所在园区与某精密加工企业同属一个集团。该企业的东南亚工厂于十四小时前提交过一份特种磁性材料的出口许可申请,目的地是蓉城保税区。“ 陆维桢把视线从光屏上移开,落在顾晏绕线机轴心那根漆包线匀速转动的弧线上。她能听到绕线机的嗡鸣声,但听不到他脑子里那些字。 他朝骨架的方向走了一步。右膝关节液压缸外壳上那排绝缘胶带缠过的印记,在他视线下被系统标记出了残留的指纹。 第5章 暗涌 陆维桢蹲在骨架右膝关节前面,从外套口袋里掏出一支细头记号笔,在绝缘胶带缠过的位置旁边画了一条浅浅的标记线。他没有直接触碰那些胶带,因为“天工“系统在他视野里标注出了残留指纹的位置分布——三枚,分别在大拇指和食指的接触区域,排列角度跟拆卸或检查液压阀组时的持握姿势完全吻合。 “这些指纹的位置,“陆维桢的声音压低到几乎只有他自己听得见,“是在检修的时候留下的还是安装的时候留下的?“ 光屏上弹出一行字:“指纹叠加层分析显示,最上面一层的油脂氧化程度比下层轻约三十个百分点。说明最近一次接触发生在封存之后。封存前安装人员留下的指纹已经被氧化层覆盖了,而这组新指纹覆盖在氧化层上面。“ 最近有人在这具骨架被封存之后打开过它的膝关节外壳。 陆维桢直起身,没有立刻把这个发现说出来。他转身走向操作台,顾晏已经把第一组线圈样件的骨架绕好了,正在用万用表逐匝测试通断。她没有抬头,但话是朝他说的:“漆包线用了零点四毫米线径,匝数按你画的简图标的那个数绕的,电感量等会儿上电桥扫。“ “你测完告诉我数据。“陆维桢站在操作台侧面,用马克笔在一张空白纸上写了几行字。他写的内容很简洁:重岳零号右膝关节最近被打开过,指纹覆盖了封存后的氧化层。他把纸折好放在操作台角落不起眼的位置,用一只工具盒压住一角。 顾晏的绕线机动了一下,她抬起头看了一眼陆维桢放纸的动作,又看了一眼纸的位置,什么也没说,低下头继续测线圈。 大厅的通风系统在下午三点左右有一次自动切换,送风声短暂地变了一下频率又恢复正常。陆维桢利用这个噪音窗口低声说了一句:“你桌上有组数据我刚放过去,看完了收好。“ 顾晏的万用表探头没有停顿。她继续测完了最后一组通断数据才放下工具,把被测线圈放在测试台上,伸手去拿旁边的校准电阻箱时“顺带“把那张纸从工具盒底下抽了出来。她低头扫了不到两秒就把纸叠成细条塞进了白大褂侧面的口袋里,动作快到不盯着看根本察觉不到。 她放下电阻箱时开口说话的声音恢复正常音量:“线圈电感量刚才粗扫了一遍,跟你的设计值差了大概百分之四。绕线张力没控制均匀造成匝间间距波动,我重绕一组。“ 陆维桢点了点头:“我出去打个电话。“他走向大厅东侧的小隔间——就是之前周承岳进去找顾晏的那个。隔间里有一张简易办公桌、一把椅子、一台内线座机,墙上挂着白板和最新的消防疏散图。他掩上门但没有关严,留了一条约莫两指宽的缝隙。 他掏出自己的碎屏手机,打开了地图软件定位蓉城保税区的位置。屏幕上的蓝色坐标点落在城南一片网格状仓储区的边缘,距离他现在的位置大约二十公里。他盯着那个点看了几十秒,光屏自动弹出了相关的货运记录检索结果,时间覆盖了最近七十二小时,筛出了四批标注为“精密仪器组件“的进口货物,发货方均为同一家位于比利时列日周边的工业公司,收货方是蓉城保税区一家今年刚注册的贸易商,注册资金刚到门槛。 他把手机收起来。隔间门外传来脚步声,有人从大厅方向走过来,步子稳而均匀。脚步声在隔间门外大约两步处停住了,然后传来一个陌生的男性声音:“请问陆维桢在吗?我是张院士办公室的,过来送一份特招材料的补充附件。“ 陆维桢拉开隔间门。门外站着一个穿白衬衫的年轻男人,戴一副金属细框眼镜,手里拿着一个牛皮纸信封。他的站姿端正,衬衫扣到最上面一颗,脸上挂着礼貌的微笑。 “我就是。“陆维桢接过信封,但没有立刻拆,“张院士让你送来的?“ “对,下午刚签好章。“年轻男人微笑着点了下头,“您确认签收就行,我回去复命。“ 陆维桢低头看了一眼信封封口处,火漆印完整,表面压着龙科院的院徽纹样。他当着那个人的面拆开封口,从里面抽出一份盖了章的入职确认函和一张全新的门禁卡。确认函上的所有信息都跟他之前填的特招表格一致,公章清楚,签章栏里张启明的字迹也跟之前亲眼见过的一致。 “没问题。“陆维桢把确认函折好放回信封,抬头对年轻男人说,“谢谢。“ 那人走了之后陆维桢拿着新门禁卡回到大厅。他把卡片放在操作台上时,顾晏正在绕第二组线圈,她没有抬头,只是低声说了一句:“刚才有人从消防通道那边进来了一趟。“ “谁?“ “一个穿白衬衫戴眼镜的。“顾晏把绕线机停了,转过身来看向陆维桢,“他进大厅之后先看了你一眼,然后视线往重岳骨架的方向扫了一圈。走出去的时候他路过操作台旁边,停了一拍——大概在看你放工具盒的那个位置。我那时候正在拧电阻箱的旋钮,低头没看他,但我听见他脚步顿了一下。“ 陆维桢把手里的新门禁卡翻了个面。卡背面印着权限等级“地下三层-四层“,卡号末尾四位是数字和字母的组合。他用手机拍了一张照片存好,然后把卡放进了外套内袋。 “天工“系统光屏在他视野里亮了一行字:“提醒:该人员面部特征与龙科院综合办公区门禁系统的考勤记录照片一致。名字叫宋喆,职位是行政办公室的档案管理专员。他的考勤打卡记录在过去一周内显示他至少有三次在下班后仍然留在大楼内,最后一次留到晚上十点四十分。“ 陆维桢没有把这个信息说出来。他走到重岳骨架旁边,假装检查液压缸管路的固定卡箍,余光确认大厅里的监控摄像头角度之后把右手伸进了右膝关节外壳和液压缸之间的缝隙。那枚被他用记号笔标记过的绝缘胶带旁边,他用指甲轻轻地刮了一下胶带边缘的残留指纹区域。胶带表面上附着了一层极其细微的粉末状物质——跟他在暗潮信号源的设备上见过的同一种防静电涂层残留。 他直起身,把指尖的粉末在裤腿上擦掉。顾晏已经把第二组线圈绕完了,正在用电桥测电感量。她看了一眼数值,把线圈从测试台上取下来举到灯光下面端详匝间间距,然后说了一句:“这组应该能压到百分之一以内。你要不要来看一下?“ 陆维桢走过去。顾晏把线圈递到他手上时,她的手指在递出的过程中短暂地碰了一下他掌侧的位置——一个几乎察觉不到的触觉信号。然后她收回手,从口袋里摸出那张被他叠成细条的纸,重新展开来平放在操作台面上,用一本参考书压住边角。 纸面上原本只有一行字,但在这行字下面多了一行新的笔迹,顾晏写的,字迹紧凑锐利:“我也注意到那个穿白衬衫的。他过道的时候右手一直插在裤袋里,裤袋外侧鼓起一块硬物的轮廓,形状像卡式录写器。“ 陆维桢看着那行字,用左手把线圈放回测试台上,右手同时做了一个自然的搁置动作盖住了那张纸的边缘,把纸重新卷起来收进了自己口袋里。他嘴上说的是:“这组线圈匝间均匀度确实好很多,晚上装上试试。“ 顾晏点了下头,把电桥关掉收回测试箱里。大厅通风系统又到了自动切换的时间窗口,送风声短暂变了一瞬。在风声覆盖的那一刹那,陆维桢低声说了一句:“宋喆。行政档案管理。过去一周三天加班到十点后。“ 顾晏合上测试箱的扣锁,站起身来。她白大褂侧面的口袋微微鼓起一个笔型的轮廓,是那支她用来写补充信息的笔。“重岳骨架换磁流变液驱动的方案如果批下来,第一批正式图纸什么时候出?“她问。 “密封件材料供应商确定之后就能出。“ “密封件材料供应商——“顾晏重复了半句,尾音微微上扬,然后在操作台旁边抓起自己的保温杯喝了一口水,“你说的那家比利时公司?他们做弹性体吗?“ “不做。“陆维桢说,“做特种磁性材料。“ 风道系统的切换结束了,送风声恢复到正常的低频节奏。大厅里重新安静下来。重岳零号骨架在灯光下投出的阴影比刚才长了,因为下午的阳光正从唯一那扇磨砂天窗的斜上方打下来,把骨架的影子拉向东侧的地面,刚好延伸到操作台脚边。 顾晏放下保温杯,视线落在骨架影子的边缘。“那家做磁性材料的,“她开口时声音很低,“如果它们的产品线里同时有钽酸锂压电元件,那就不是巧合了。“ 陆维桢看向她。顾晏没有回头看他,只是弯腰从测试箱里翻出了一张旧的产品目录页——她之前拿来对照某批进口滤波器的资料,上面印着一家比利时企业的商标和产品线分类。在钽酸锂压电元件那一栏的下面有一行小字标注着应用领域:“微型传感与射频信号耦合。“ 她把目录页放在操作台上,用指尖点了点那行字。然后她收回手,把目录页重新夹回测试箱的文件夹里,扣好箱盖。 陆维桢把第二组线圈拿起来再次端详了一遍匝间的间距。他很确定自己摸到了什么——骨架右膝上的绝缘胶带是宋喆贴的,钽酸锂微珠的一部分材料供应链跟比利时那家暗潮关联企业重合,而宋喆今天下午来送确认函的时候右手裤袋里揣着一台卡式录写器。 陆维桢把线圈放在操作台上,拿起那张新门禁卡翻到背面,看了一遍卡号末尾的数字字母组合。“天工“系统的光屏在他视野角落默默弹出了一条尚未主动提醒的灰色文字:“宋喆的名下注册过一张蓉城保税区的进出区临时通行证,有效期覆盖了最近十五天。“ 他把门禁卡收进内袋。窗外的天光已经从正午的刺白变成了下午偏西的暖金色,从磨砂天窗透进来的光斑在天花板上缓慢移动着。顾晏的保温杯盖拧紧时发出一声轻微的金属碰响。 陆维桢转过脸看向重岳零号骨架的右膝关节。绝缘胶带旁边的记号笔线条还在,他伸手用拇指按了一下胶带边缘——指尖传来的黏性告诉他,这东西贴上去的时间不会超过三天。 第6章 缝隙 陆维桢把右膝外壳重新合拢,塑料卡扣压紧时发出一声轻响。他没有把绝缘胶带撕掉——留着它,等它自己掉,或者等贴它的人发现它还在原地。他起身走到操作台侧面洗了手,水龙头里流出的水凉得刺骨,指腹上那层薄薄的油脂残渍被冲进了不锈钢水槽。 顾晏把测试箱的锁扣全部扣好了。她站起来时膝盖轻轻顶了一下桌沿,桌面上那只保温杯晃了晃,被她伸手扶住。整个动作自然到不像刻意,但陆维桢注意到她扶住杯子的同时把一枚压在杯底的小纸片翻了个面——纸片空白的那面朝上,什么字迹都没有。 “周组长什么时候回来?“陆维桢问。 “没说。“顾晏把保温杯拧开又拧紧,“但他走的时候说了一句晚点过来看骨架拆改进度。他的晚点通常意味着三个小时以上。“ 三点四十分。陆维桢算了一下,距离天黑还有不到三个小时。他看了一眼重岳零号骨架,又看了一眼操作台上顾晏绕好的第二组线圈。如果今晚要开始拆右腿,他需要确认一件事:宋喆在右膝外壳里放的东西,除了那截绝缘胶带之外有没有更多的东西藏在更深的位置。 他走到骨架旁边蹲下来,这次没有去碰液压缸,而是把手伸进膝关节后侧一块相对隐蔽的凹槽里。这里不承重,平时维修时也很少有人会摸到,属于“视觉和触觉的盲区“。他的食指沿着凹槽的弧面缓慢滑过,在拐弯处摸到了一个极小的凸起——比米粒还小,表面有一层微弱的粗糙度。 他收回手。指尖上沾了一粒几乎看不见的半透明物质,在灯光下微微折射。他辨认出了形状和质地:钽酸锂。跟他在消防通道暗盒里发现的那五粒一样,只不过这粒被嵌在了骨架的关节结构缝里,位置更隐蔽。它没有使用胶带固定,而是被卡进了一个自然形成的几何角落,从外观上甚至不会引起注意。 陆维桢用指甲把这粒微珠挑出来,装进一张随身带的纸巾里包好。他站起来时顾晏正在调试一台小型频率计,背对着他。他把那粒微珠包好放进背包最内侧的夹层里,重新把背包拉链拉好。 “天工“系统的光屏弹出了一行字:“位置追踪:这粒微珠的压电谐振频率与之前消防通道内检出的微珠序列完全一致。其信号发射协议存在一个小型化定制——发射窗口是触发式,仅当传感元件检测到振动加速度超过设定阈值时才会短暂激活发射脉冲。这意味着有人曾站在骨架旁边,用手或者工具在关节结构的特定部位施加了足够力度的敲击,激活了这粒微珠,然后读取了它反射回来的谐振信号。“ 陆维桢站在那里没有动。他脑子里把这条信息串联了起来:宋喆贴了绝缘胶带,留下了指纹。但在贴胶带的同时他还做了一件事——用一把小锤或者某种精密敲击工具在骨架关节的特定位置敲了一下。这粒压电微珠被激活后短暂发送了一个包含时间戳和振动特征的数据包,那个包被附近某个接收装置录了下来。宋喆带走的不是照片也不是图纸,而是一组“骨架在被敲击时的结构振动响应数据“。有了这组数据,就能反向推断骨架的材料构成、连接刚度和应力分布。 这是暗潮干的。别人干的。他们不需要偷走骨架,他们只需要让骨架在他们设计好的条件下自己“告诉“他们答案。 顾晏在操作台那边站了起来。她手里握着频率计探头走到了距离骨架大约两米远的位置,扫了一圈空气中的信号背景噪声,读数稳定在标准水平。她放下探头回头看了陆维桢一眼,目光在他右手的位置停了一瞬,然后若无其事地转开了。 “频率计读数是干净的。“她说,“空气中没有异常的窄带信号,至少在这一层没有。“ “干净就好。“陆维桢走过去,从操作台上拿起顾晏绕好的第二组线圈,端详了几秒匝间间距后放回去,“帮我盯着这一层,别让任何人靠近骨架。我去一趟四层,新门禁卡给的那个权限,想看看能用多少。“ 顾晏没有问为什么。她走到大厅入口附近的折叠椅上坐下,手里拿了一本技术期刊翻开了,但坐姿和视线角度恰好覆盖了通往骨架的两条路径。 陆维桢走进电梯按了四层。电梯门合上时他感觉到脚下的震动变化了一点点——越往下,那种极低频的机械搏动就越明显,像是龙科院地下深处有什么巨大的设备在恒定地运转。四层比三层更冷,走廊里的照明是暗白色的,灯管间距更大,有些地方隔几米才有一盏灯亮着。 他沿着走廊走了大约四十米。墙壁两侧的门多数是紧闭的金属门,没有窗户。走廊尽头是另一台电梯,旁边有一块小小的标牌,白底黑字写着“仓库-材料中转区“。标牌下方的位置有一道极窄的门缝,门缝边缘的油漆有一小块剥落,露出的金属表面反着哑光。 陆维桢停下脚步。光屏自动放大了他视线焦点处的区域:“门缝边缘的油漆剥落并非正常老化。剥落形状呈短直线,与螺丝刀或扁平撬具的刃口宽度吻合。有人在这扇门最近被开启过,使用的工具在门框上留下了压力痕迹。“ 他蹲下来观察那道剥落。剥落面边缘微微翻起,没有积灰,说明时间很近,可能在十二小时以内。他站起来用门禁卡刷了那扇门——门侧的读卡器亮了一下绿灯,电磁锁弹开。他推门进去。 里面是一间大约二十平米的材料仓储室。货架上整齐码着成卷的铜箔、成箱的钎焊片和几台套着防尘罩的小型设备。空气里有轻微的化学溶剂挥发气味。陆维桢快速扫视了一遍货架,目光在其中一排停住了——防尘罩边缘露出一截胶带,颜色和他在骨架右膝上看到的那种绝缘胶带完全一致。 他拉开防尘罩。下面是一台桌面型频率分析仪,型号很老,但面板上的显示屏还亮着待机界面。分析仪的输入口接着一条外置天线,天线被磁吸底座固定在货架金属骨架的背面,从窗户方向收进来的信号通过侧面一条极细的同轴线汇入仪器内部。这台设备在运转,但屏幕上没有显示任何实时波形,只显示着“待触发“三个字。 陆维桢没有触碰仪器。他拿出碎屏手机拍了两张照片,一张拍设备整体,一张拍天线底座固定的位置——磁吸底座底下压着一根从通风管道接出来的细线,线的表皮颜色和龙科院内部标准线缆不同。 他退出仓库,把门重新关好。电梯下行的过程中光屏弹出了一条分析结果:“仓库内频率分析仪处于被动监听模式。待触发状态意味着它在等待特定激活信号——可能是压电微珠发回的数据包,也可能是某种预设频段的短时脉冲。天线方向对应窗户外面,外面是龙科院北侧围墙和一条城市次干道。“ 陆维桢回到地下三层时顾晏依然坐在折叠椅上翻杂志。他走过她身边时脚步略微放慢了一下,用正常音量说了一句:“四层材料仓库有一台被改装过的频率分析仪,在等着收数据。“ 顾晏翻了一页杂志,目光停在纸面上,但她压低的回应几乎是贴着他的衣角递过来的:“要不要把它改成收什么数据由我们决定?“ “要。“陆维桢没有停步,径直走向操作台,“但得等周承岳回来之后再动手。频率分析仪旁边可能还有别的触发器。“ 他坐在操作台前,用马克笔在空白纸上画了一张极简的拓扑图:重岳骨架关节→压电微珠→空气传播的谐振信号→四层仓库频率分析仪→天线→墙外未知接收端。每一个节点之间的连接线旁,他写上了大致的距离和信号衰减估算值。 顾晏走过来站在他侧面看那张图。她没有坐下,站的姿态让她的视线正好从侧面覆盖整张纸面的内容。她看完了之后说了一句话,声音很淡:“最外面那个节点,天线对着的墙外侧是什么方向?“ “北侧围墙。外面是一条城市次干道,再往外是住宅区。“陆维桢在图上标出了大致方位,“如果有人停在次干道上用车载设备收信号,距离完全在常规接收范围以内。“ 顾晏把杂志合上放在桌面边角。“那台分析仪今天之内必须处理掉。“她说,“但不是破坏——是让它继续工作,只是把收数据的对象换成我们想让它收的东西。“ 陆维桢把那张图折好收进口袋。他站起身走到骨架旁边,重新蹲下来,把右膝外壳的卡扣轻轻拨开一条缝,把那截绝缘胶带翘起来的一角又按了回去。压平。恢复原状。然后站起来后退两步,让灯光正好从四十五度角打在骨架的侧面上,暗金色的纹路在光下安静地亮着。 光屏在他视野的右下角浮着一行新字,字色偏暗,比之前的常规提示颜色更深了一个色号:“宋喆的交通卡记录显示他今天下午四点半刷了一次龙科院北门的闸机,出去了。目的地尚无线索。“ 北门外就是那条次干道。 陆维桢站在骨架的影子里,视线穿过两米厚的混凝土层看向那个方向。他什么也看不见,但能感觉到。那根藏在通风管道里的细线往下走,穿过楼板,穿过泥土,通到某个他还没找到的地方。 顾晏在他身后说:“晚上拆右腿还拆吗?“ “拆。“陆维桢转过身,“而且要让该看见的人看见我们在拆。“ 第7章 剖骨 六点四十分,地下三层的照明从白亮切换成了偏暖的色温。周承岳还没回来,但消息先到了——加密通讯应用里弹出一条短讯:“北门外次干道监控调取完毕。今天下午四点半至五点,宋喆在路东侧停了大约二十分钟,站在一辆深灰色轿车旁边,车窗半开,他的手伸进去过至少两次。车在五点左右驶离,驶向东北方向。“ 陆维桢看完消息把手机收起来。顾晏已经从折叠椅上站起身,把技术期刊合上放回书架,走到骨架旁边蹲下来检查了一遍右膝外壳卡扣的状态。她的指尖在绝缘胶带边缘按了一下,确认它仍然平整地贴附在原位。 “工具在这边。“陆维桢从操作台下面拖出一只金属工具箱,箱盖掀开时里面整齐排列着扭矩扳手、梅花螺丝刀组、内六角套件和一排精密的卡簧钳。他把工具箱放在骨架右脚边的地面上,从里面抽出第一把螺丝刀。 顾晏拿着手持式照明灯蹲到了骨架另一侧。灯光从她手里打出去,把右膝关节外壳的装配缝照得纤毫毕现。“外壳由四颗沉头螺丝固定。“她报出位置,“分别在上盖两端和侧面两个定位孔位。螺丝规格一致。“ 陆维桢的螺丝刀对准第一颗沉头螺丝的十字槽,施加扭矩。螺丝开始转动——非常顺畅,没有锈蚀卡滞,说明近期确实被拆卸过。他拧出第一颗放在旁边一块干净的绒布上,然后是第二颗、第三颗、第四颗。四颗螺丝全部卸下后,他用一把塑料撬片沿外壳接缝滑动一周,轻轻将外壳与内部骨架结构分离。 外壳被摘下来的瞬间,灯光直接打在了液压缸和关节连接结构上。陆维桢的目光沿着照明光束扫过去,首先看到的是一层薄薄的灰白色油脂——这是常规维护留下的。但紧挨着液压缸体侧壁的位置,有一小段黑色的胶带没有被完全压平,翘起的边缘大概有一毫米高。这是宋喆贴的那截。 他伸手过去把绝缘胶带整条撕下来。胶带下面的金属表面上有一个大约指甲盖大小的区域颜色跟周围不同——更暗沉,像被某种弱酸性溶剂处理过。陆维桢凑近了看,光屏自动放大了那个区域的微观表面纹理,随后弹出一行字:“该区域曾附着过粘性材料,胶带撕除时带走了部分表面氧化层。残留物成分中含微量聚二甲基硅氧烷——常见于钽酸锂压电微珠出厂封装时的保护涂层。“ 这截绝缘胶带不是用来做标记的。它是用来掩盖那个“曾被微珠贴附“的位置的——宋喆把微珠嵌在关节结构缝里之后,又贴了一截胶带在这个位置,如果有人拆开外壳检查,第一眼看到的会是胶带而不是微珠。他在制造一个“先被看到的东西“,让真正的东西藏在更深处。 陆维桢把那截胶带放进样品袋里封好,然后转向膝关节后侧那个自然形成的几何角落——他之前用手摸到微珠的位置。他再次伸手进去,这一次直接摸到了那个空隙,但指尖的触感告诉他,原先嵌在那里的微珠已经不见了。只剩下一小圈非常轻微的压痕,形状刚好吻合那粒微珠的轮廓。 有人在他离开期间把它取走了。 “天工“系统的光屏跳出一条时间戳比对:“你在下午三点五十分将微珠取出并放入背包夹层。目标微珠从关节结构中消失的时间窗口在下午四点零三分至四点二十分之间。这个窗口恰好与宋喆在北门外次干道上停驻的时间重叠,他通过远程手段确认了微珠被移除,随后以某种方式取走了结构中的备份。“ 陆维桢直起身。他把从背包夹层里取出的那粒微珠重新拿出来,对比了一下关节结构里的压痕——轮廓、尺寸、完全吻合。他手中的这粒才是从膝盖里取出来的原件,而宋喆远程激活并回收的,是另一粒备份微珠。 “他装了两粒。“陆维桢说,“一粒在明面,一粒在暗处。明面那粒被发现了就会被拿走,但拿走之后他就知道有人碰过这里了。暗处那粒在你知道明面那粒存在的同时,已经完成了数据收走。“ 顾晏把照明灯的位置调整了一下,让光束从另一个角度打在关节结构的表面上。在背光的角度下,液压缸体侧面有一道极浅的划痕,形状规整,几乎看不出深度。“这个划痕是工具留下的。“她说,“微型真空吸笔的尖端,用来拾取和放置微珠。操作非常精细,不太可能带着普通手套完成。“ 骨架的右腿暴露在灯光下,液压系统的密封圈边缘渗着油迹,管路卡箍上的螺丝十字槽里积着干涸的灰尘。但关节的深处——那些普通检测不会覆盖到的结构缝隙里——曾经被人用精密工具反复操作过。 陆维桢把拆卸下来的外壳放在绒布上,开始记录他所看到的所有异常位置的坐标和照片。顾晏在旁边用便携式标记机给每一个可疑位置打标签,从“m1“编号到“m7“,分类为“物理标记“和“微量残留“和“工具痕迹“。两个人的配合不需要对话,她在标记时他已经在测量下一处,他测量完时她已经把标签贴好。 七点二十分,所有可见异常点被记录完毕。陆维桢把外壳重新合上,四颗沉头螺丝按原扭矩拧了回去。他站起来时膝盖微酸,但没有停,直接走回操作台前把刚才记录的所有数据输入笔记本,同步备份到加密存储设备上。 顾晏走过来站在桌边,手里端着她的保温杯。她喝了一口水之后说了一句话:“那台四层的分析仪,你打算怎么改?“ 陆维桢把笔记本电脑转了个方向,让屏幕对着顾晏:“不破坏原设备,也不拆天线。在它的同轴输入线和天线底座之间串一个主动信号耦合器。耦合器会分析所有经过的接收信号,如果是暗潮协议格式的数据包,让它正常通过。如果是任何非暗潮的格式——包括我们将来想往外面送的东西——耦合器会用暗潮的协议封装格式重新打包再发出去。“他在屏幕上画了一个简单的框图,“从外面看,天线收到的数据包和发出去的数据包在协议层完全一致。但收的内容实际上被我们截留了一份,发的内容由我们决定。“ 顾晏盯着那张框图看了大概十秒。她放下保温杯,从白大褂口袋里摸出之前绕第二组线圈时用的那卷漆包线,抽出一段在指尖上绕了一圈又松开,像在测试一种材料的手感。“耦合器的电源从分析仪主机取电,还是另外接?“ “从分析仪主机取。“陆维桢说,“它的电源板上预留了一组未使用的5伏焊盘,不仔细看以为是生产测试留下的。我们正好用那个。“ “明天天亮之前搞定。“顾晏把漆包线卷放回口袋里,“那台分析仪的工作状态指示灯如果一直亮着,可能会被注意到。我可以把它改成只在接收到信号时才亮,待机时不亮。这样能降低被检查的可能性。“ 陆维桢点了下头。他把笔记本电脑合上,转头看了一眼骨架的方向。右膝外壳已经恢复了原样,四颗螺丝的十字槽朝向被他调整到了拧紧时的自然角度,如果不知道原先的方向几乎看不出被动过。那截被他拆下的绝缘胶带已经封存在样品袋里了,但原位他贴了一截从工具箱里找到的同色胶带替代——长度、宽度、贴合方式都模拟了原状。 周承岳的消息在七点五十分再次弹出,这次是一个文件附件,加密压缩包。陆维桢解压后里面是一段从北门次干道路口监控里截取的视频片段——大约二十秒,画面上宋喆站在一辆深灰色轿车旁边,右手伸进半开的车窗操作什么。画质不算太高,但车窗降下的缝隙里露出的仪表台面上有一块屏幕亮着,屏幕上显示的是一张蓉城地图,一个红点标注在龙科院北区三号楼的位置。 陆维桢放大了截图里屏幕上的地图细节。红点正下方有一条极细的虚线延伸出去,穿过城市网格,终止于蓉城东郊。那个位置他在前面查过的信息里见过——那家注册在外资名下的精密加工企业,生产特种磁性材料器件的工厂所在地。 他把视频截图保存好。顾晏走到他身后看了一眼屏幕上的地图,她的视线在东郊那个点上停了两拍,然后退了半步重新拉开了距离。 “东郊那家工厂现在还是宋喆自己去接头,还是已经换人了?“她问。 陆维桢把手机屏幕熄灭,放下。“等周承岳回复。但不管是哪种,他们今天下午的行动表明他们已经知道右膝被检查过了。“他站起身,目光落在骨架的轮廓上,“所以接下来的拆改动向,他们要看的不是我们拆了什么,而是我们拆完之后是否还发现了别的。“ “那我们今晚就拆。“顾晏转身走向操作台重新打开测试箱,“把右腿液压缸全部卸掉,换磁流变液驱动方案的预装件上去。让他们看到我们在拆,也在装。让他们以为自己看到的画面就是完整的画面。“ 陆维桢重新拿起工具箱里的扭矩扳手,走到骨架右侧蹲下。顾晏的照明灯光再次打过来的时候,他拧下了第一颗液压缸固定螺栓。扭矩扳手的限位声在空旷的大厅里干净地响了一下,通风系统自动切换时送风声短暂地覆盖了那声响,又退去。 光屏在他视野角落亮着一行灰色小字:“东郊工厂的法人代表今日下午六点零二分有一条入境的航班记录。入境人姓名不在公开旅客名单内。“那行字顿了一下又追加了半句:“但机票预订时使用的联系手机号归属蓉城本地。“ 陆维桢拧下了第二颗螺栓。螺栓从螺纹孔里退出来时在灯光下折射出一线冷光,他把它放进绒布上的排列格里,和上一颗并排。液压缸开始从骨架上微微松脱,油管接口处一滴暗红色的液压油悬垂了几秒才滴落在地面上,发出几乎听不见的轻响。 顾晏蹲在另一侧,手里拿着托盘接住松动后可能脱落的管路接头。灯光照着她侧脸的轮廓,安静而专注。大厅里只有扭矩扳手咬合螺栓的节奏声和液压油滴落在地面的细小声音交替重复着。 第8章 合芯 液压油滴落在地面的声音在空旷的大厅里异常清晰。陆维桢拧下第三颗固定螺栓时扭矩扳手的限位声响了一声,他感觉到掌心的震动频率比之前拧下的两颗略高——这颗螺栓的内部应力更大,可能是装配时扭矩被加得偏高或者长期受力导致的轻微变形。他把螺栓放在绒布上排列好,低头看了一眼螺纹段,上面有一小片磨损的金属碎屑嵌在牙底里。 “这颗螺栓受过横向剪切力。“陆维桢把螺栓举起来对着灯光,“螺纹牙底有塑性变形,说明骨架曾经在承受了超过设计方向的载荷之后这个位置发生了微米级的相对滑移。不是测试工况——测试工况的载荷方向是预先知道的。这是真实使用中才会出现的情况。“ 顾晏从骨架另一侧探头过来看了一眼螺栓。“重岳零号封存之前只做了实验室测试,没有下过实战场地,“她说,“但这颗螺栓的经历表明它下过。可能是在封存前的某个非正式环节里被人带出去过。“ 陆维桢把那颗变形螺栓单独放进一只小样品袋里,标记了日期和位置信息。他继续拧下剩余的固定件,最后两处管接头用开口扳手松开时渗出的油液量明显少于前几处——说明这个关节曾经被排空过液压油又重新加注,加注量不够标准。排空再重新加注,是维修中才有的操作。结合绝缘胶带和微珠布置的时间线,排空油液的操作窗口大概率发生在宋喆接触骨架的同一批次行动里。 七颗螺栓、五处管接头全部松脱后,陆维桢和顾晏一左一右托住了液压缸总成的两端。缸体比预想的轻,内部油液残量不多,但整体重心偏移明显偏向外侧——右侧外壳的防护罩曾经被拆下又装回,装配间隙比左侧大了约半毫米。他们把液压缸总成从骨架右腿上整体卸下来,平稳地搁在地面一块吸油垫上。 液压缸卸下之后,右膝关节只剩下一组空置的固定支架和裸露的旋转轴端。灯光打在轴端表面上,能看到一圈细密的磨痕沿着轴周的半个圆周分布,角度大约九十度。这是往复运动偏载留下的,范围集中在轴端的特定方向,说明载荷施加的方向集中在某一个象限内。 “天工“系统的光屏弹出分析结果:“轴端偏载磨痕的方向指向骨架右前侧,对应佩戴者快速转向时的受力方向。磨痕深度约四微米,累计往复次数估算在八千到一万次之间。这个数量级远超出实验室测试的常规循环次数。“ 陆维桢蹲在轴端前面用手指轻轻感受了一下磨痕的深度。指腹压下去时能感觉到一个极其微弱的台阶。这个骨架的封存状态是假的——它至少被人在非测试环境下使用过相当长的时间,然后重新涂油、标记,放回了原位。 “先装预装件。“陆维桢站起来,转身走到操作台侧面,把放在那里的一组磁流变液关节预装总成端起来。这组预装件是他根据系统提供的图纸在昨天夜里用龙科院材料加工间的设备加工出来的,外壳是石墨烯复合材料,内部含磁流变液腔室和激励线圈安装槽,重量只有液压缸总成的三分之一左右。 顾晏放下托盘走过来帮忙扶住预装件的对准位置。陆维桢把预装件的固定孔位对准骨架支架上的安装面,拧入第一颗固定螺栓。扭矩扳手打了合适的力矩值,螺栓入位时发出干净利落的声音,没有震动余韵。他依次拧入剩下三颗,每颗都达到预设扭矩后停止。 预装件落位之后,右膝关节的整体轮廓发生了变化。磁流变液关节的体积比液压缸更紧凑,外壳的暗金色纹路沿着关节曲面的自然走向延伸,和骨架原有结构的风格之间没有突兀的割裂感。陆维桢站在一步之外端详了片刻,调整了一下预装件轴端与骨架旋转轴之间的配合间隙,把一枚调整垫片加了进去,间隙读数落到设计值的中位。 “天工“系统的光屏弹出一行新字:“预装件装配完成,几何偏差在公差范围以内。建议进行空载运动测试以验证接合面配合质量。“ 陆维桢走到控制台前启动了骨架的辅助供电系统。电流接入磁流变液关节的瞬间,他感觉到预装件内部传来一声细微的伺服启动音,很短促,然后整个关节进入待机状态,无声地悬停在他设定的初始角度上。他通过控制台发了一个缓慢屈伸指令,关节按照预设的速度曲线平滑地完成了全行程往复运动,没有卡滞、没有异响、没有泄漏。 顾晏站在骨架侧面全程盯着密封件外缘做视觉检查。关节运行了三组往复循环之后,她俯身用手指擦了一下密封件外壁的边缘,指尖干净。“没有渗漏。“她说,“密封件在运行压力下工作正常。“ 她把指尖伸到陆维桢面前让他看了一眼,然后收回手在实验服上擦干净。“接下来测动态响应延迟。“陆维桢重新坐回控制台前,把系统切换到了响应测试模式。他用软件信号发生器连续发出了多组不同频率的步态指令,记录关节从指令发出到实际动作完成的延迟时间。 数据显示在第一组指令之后快速输出到屏幕上。陆维桢看着那些数字逐行刷新,零点零零七秒、零点零零六秒、零点零零八秒。他在心里对比了一下液压系统的零点二四秒记录,差距超过一个数量级。他把数据截图存好,没有在公共屏幕上多停留,但顾晏已经看到了那一列数字。她站在骨架旁边低头操作手机,几秒钟后陆维桢的加密通讯应用里弹出一条她从三米之外发来的消息:“七毫秒。你那个磁流变液方案如果只是实验室数据,你猜周组长会什么反应。“ 陆维桢把手机屏幕朝下放回桌面。他没有回那条消息,但从顾晏站姿的微调幅度里能感觉到她在等他说点什么。他站起来走到骨架旁边,伸手在刚装的磁流变液关节外壳上轻轻叩了两下。回音短促而清亮。 大厅东侧隔间的内线座机忽然响了。顾晏走过去接起来,只听了大概十几秒就挂断了,转过身时表情依然平淡,但语速比平时略快了几分:“周组长刚才通过保卫科内部线路转接过来的消息。他说北门次干道监控录像里的那辆深灰色轿车已经查到了登记信息,车主登记在蓉城一家汽车租赁公司名下,租车人使用的是比利时护照。车型跟范德米尔在蓉城使用的交通工具相同。“ 陆维桢把手机重新翻过来解锁,快速打开了上一次保存的范德米尔资料页面。那本比利时护照的签发日期和编号在租赁公司提供的租车记录里被模糊处理了,但“天工“系统的光屏自行比对了两份文档的元数据,弹出了一个匹配度标记:两份记录中的护照签发机构编号完全一致。 同一本护照的持有人,在不同的场合使用了不同的名字拼写方式。范德米尔在学术论文里署名用的是b.vandermeer,在租车记录里用的是另一个拼写变体,指向同一个国际银行账号。租车记录末尾还有一个备注字段:“本单押金由比利时境内某公司账户代为支付。该公司名称与东郊精密加工企业的境外母公司共享注册地址。“ 陆维桢把手机递给顾晏,让她看了那个备注字段。她没有说话,只是把手机推回来时食指在屏幕边缘极轻地点了两下,然后转身走回操作台前开始整理测试箱里的探头线缆。大厅里重新安静了片刻,通风系统的送风声再次进入自动切换的周期,风声短暂地变了一下频率又恢复正常。 在风声覆盖的那一刹那,陆维桢听到了一段不属于通风系统的极低声音——从墙壁内部传来,像某种金属结构在温度变化时产生的微小应力释放。声音很短促,只持续了不到半秒。他转头看向声音来源的方向,是大厅北侧墙壁的位置,再往北就是那条消防通道的位置。 天工系统的光屏在他视野角落亮了一行字,字体比以往任何一次提示都细,细得像针尖在玻璃上划出来的一样:“北侧墙体内部温度场数据出现瞬时异常。该异常与人工热源通过墙体传导的加热模式一致,持续时间约一点三秒。该位置在地面上方对应北侧围墙外的次干道地面。“ 陆维桢站在原地没有动。他的目光落在大厅北侧的墙壁上,那面墙看起来和周围的其他墙壁没有任何区别,灰色的防火涂料覆盖着混凝土表面,墙面平整干燥。但刚才那一点三秒的异常温度信号表明有人站在墙外的地面上,把某种发热设备紧贴着墙体表面打开了一下又关掉了。 他低头看了一眼自己手边的工具箱。工具箱最上层放着一台手持式红外热像仪,平时做电路板温升检测用的。他把热像仪拿起来握在手里,没有开机,只是安静地捏着它走回操作台前坐下。 顾晏正在缠绕最后一组线缆,她的动作没有停顿,但她的手在收线时不自然地放缓了半秒,视线掠过陆维桢手里的热像仪,然后重新回到了线缆上。 陆维桢把热像仪放在操作台靠里的位置,用一本参考书挡了一下,然后把笔记本电脑重新打开,在空白文档里打了一行字:“北墙外有人。带了热源设备。已知范德米尔在蓉城。已知东郊工厂与范德米尔共享注册地址。已知宋喆今天下午出北门后回不来了。综合判断:今晚之前应该要有人下楼来收一次四层仓库的数据。“ 他把文档保存后最小化,端起桌上的杯子喝了一口水。凉水滑过喉咙的时候他感觉到自己的心跳速率比平时快了大约五到七次,但他坐着没动,让呼吸慢慢恢复到正常节奏。 墙上那一点三秒的温度异常已经冷却了。热像仪的取景框里现在什么也看不到,墙面上只剩一道均匀的灰色,在红外波段没有留下任何清晰的轮廓。但陆维桢知道外面有个人曾经站在那个位置,手里拿着东西贴着混凝土。他对着墙看了足够久,直到确定再有变化他会在第一时间捕捉到,才把目光移回笔记本屏幕。 光屏底部浮着一行几乎不可见的极浅灰色小字,字句尾端微微发暗:“范德米尔今晚入住的酒店已经确认,在前台登记使用的是第三本护照。房间朝向龙科院方向。“ 第9章 对映 陆维桢把手放在热像仪外壳上,没有开机。他站起来走到北墙前大约两米处,假装活动了一下长时间蹲着造成的腰背酸僵,右手自然下垂,热像仪的镜头在他转身时短暂地扫过墙面。他没有看取景框,但光屏已经把墙体表面的温度场数据实时投射到了视野右下角——一个直径约二十厘米的圆形区域温度比周围高出了零点七度,轮廓清晰,位置大约在距离地面一米六的高度。 他走回操作台前坐下,把热像仪放回工具箱,用内线座机拨了一个短号。三声后接通,周承岳的声音从听筒里传出来,背景里有风噪,像在车辆行驶中。 “墙外面有人贴了设备在扫描。“陆维桢用正常音量说,语气平稳得像在汇报天气,“位置在北墙一米六高度,热特征比环境高零点七度。可能是主动热成像或者低频声学扫描,时间窗口刚过去。“ 电话那头风噪小了一些,周承岳的声音低了下来:“多久了?“ “第一次出现大概在二十五分钟前,持续了一点三秒。刚才第二次,持续了大约四秒。中间间隔接近二十五分钟,说明他的扫描装置有冷却周期。每次开机之后需要散热,所以下一次的大致时间窗口在二十五分钟后。“ “你那边有反制手段?“ “有。“陆维桢看了一眼操作台上的笔记本屏幕,“墙体内部有暖气管道沿着北墙根部铺设,管道表面温度稳定在五十度左右。如果我打开管道伴热带的额外加热档,墙体表面的温度分布会被打乱,他和墙体之间的热交换路径会失效。他再扫的时候看到的就是一道均匀的热模糊面,什么都辨不出来。“ “开。“周承岳只回了一个字。 陆维桢挂断电话。他找到暖气管道伴热带的控制开关——在大厅北侧配电箱内的一块小面板上,标注着“管道防冻伴热“。他把开关拨到了手动高功率档。几秒钟后,墙壁内部的金属管道开始升温,热量通过混凝土传导到墙面,表面温度缓慢爬升,零点二度、零点四度、零点七度。整个过程平滑均匀,热像仪如果看过去,只能看到整面墙变成一个温度均匀的发热面,再也没有局部凸出的扫描热特征可以识别。 他回到操作台前坐下。顾晏走过来时手里拿着一组预装的信号耦合器,指甲盖大小的电路板被封装在黑色热缩管里,两端引出极细的接口线缆。她把它放在桌面上,然后低声说了三个字:“北墙外有东西在动。“ 陆维桢看向北墙。墙体表面温度还在缓慢爬升,均匀泛着红外波段上的暖色。但在通风管道送风声的间隙里,他听到了一声非常微弱的震动——不是从墙面上传来的,而是从墙外经过土壤和混凝土结构传导进来的低频撞响,像有人在用橡胶锤轻轻敲击地表。 频率稳定。间隔均匀。每两次敲击之间恰好间隔约六秒。这是测距用的声波探测,通过测量声波在混凝土中的传播时间反推墙体的厚度和内部空腔结构。但对方敲击的节奏显示他正在沿着墙体表面水平移动,每次敲击后移动大约半米。 “天工“系统的光屏上跳动着一组实时推算数据:“声波回波时间呈规律性变化,震源正沿北墙外部水平移动,速度约每分钟八米。移动方向自东向西。“ 陆维桢站起来走到配电箱旁边,把伴热带的功率又提高了一档。墙壁表面温度继续爬升,开始接近管道表面的实际运行温度。墙体内外温差的变化会影响声波的传播速度,给对方的回波时间测量引入一个逐渐增大的系统误差。他每提高一档功率,光屏就更新一次折射率偏导估算值,显示回波时间误差正在以线性方式累积。 三分钟后,北墙外部的敲击声停止了。没有收尾,没有逐渐减弱,就是直接在两次敲击之间的那个六秒间隔里消失了。然后大约过了七八秒,墙体表面的热特征也开始缓慢消退——对方把贴在墙上的设备取走了。 陆维桢站在配电箱旁边没有动,又等了大约一分钟才把伴热带的功率逐步回调到常规档位。墙壁温度开始回落,但回落速度慢于加热速度,整个北墙表面仍然维持着相当均匀的热分布。他重新坐回操作台前时顾晏已经把那只信号耦合器连接到了笔记本的调试接口上,屏幕上跳动着初步自检通过的提示。 “耦合器自检通过了。四层的分析仪如果明天之前有人动过,这台耦合器会记录下它的最后工作状态。“顾晏把笔记本屏幕转向陆维桢让他看了一眼自检结果,然后断开连接把耦合器收进了白大褂内袋。 大厅的照明在九点整切换到了夜间模式,色温更暖,亮度降到日间的三分之二左右。暗红色的应急指示灯在墙壁高处亮起来,沿着天花板边缘围成一圈,像夜间机场跑道上的边界灯。重岳骨架右膝上的磁流变液关节在低照度下泛着幽幽的暗金色微光。 陆维桢走到骨架旁边蹲下来检查了一遍预装件的固定螺栓。所有螺栓的扭矩保持完好,密封件外壁干燥洁净,关节在待机状态下发出的伺服嗡声均匀稳定。他伸手轻轻转动了一下骨架旋转轴端,感觉到的阻尼平滑无卡顿。右腿的改装部分今晚可以在这里过夜了。 “四楼的分析仪现在去改还是等后半夜?“顾晏站在操作台旁边,手里拿着那只装了耦合器的白大褂内袋。 “现在。“陆维桢站起来拍了拍膝盖上的灰尘,“后半夜可能有别的事。“ 两人从大厅东侧的员工通道绕到电梯间,刷卡进了电梯。上行的过程中陆维桢注意到四层按钮周边的金属面板上有一道极细的划痕,方向垂直,长度大约三厘米,像是被某种尖锐工具沿着按钮边缘划过留下的。他用手机拍了那张划痕照片保存好。 四层的走廊灯光比三层暗。陆维桢走在前面,顾晏跟在他后面大约一步半的距离,两人的脚步声在空旷走廊里几乎没有回声。他们在材料仓库门口停下,陆维桢用门禁卡刷开电磁锁,推门进入。 仓库内部维持着他下午离开时的布局。防尘罩下面那台频率分析仪的待机指示灯仍然亮着绿色,屏幕上的“待触发“字样平稳地停驻在面板中央。陆维桢快速检查了一遍天线位置和同轴线的走线路径,没有发现被移动过的痕迹。他掀开分析仪主机的外壳侧板,露出内部的主板和电源模块。 电源板上的预留焊盘还在原处。陆维桢用万用表确认了电压输出稳定,然后把顾晏给的信号耦合器沿着同轴输入线路串接进去。耦合器的三条飞线被他用高温胶带固定在线槽里,走线路径和原机内部线缆的走向完全一致,从外观上几乎看不出加装了额外的模块。整个操作过程不到四分钟,期间两人谁也没说话,只有焊枪微弱的加热声和镊子触碰元件的轻响。 陆维桢把分析仪外壳重新装好,拧回四颗固定螺丝。屏幕上仍然是那个“待触发“字样,颜色亮度都没有变化。他把防尘罩重新盖上,位置与之前一致,检查了一遍天线底座的磁吸位置才直起身。 “成了。“他退出仓库,把门重新锁好。转身时他看到走廊对面一扇半开的窗户外面的夜色中有一道非常暗的光线快速横移过去,像车灯被建筑物遮挡后露出的残余散射。那个方向是蓉城东边,去往那家精密加工企业的方向。 两人回到地下三层时周承岳已经到了。他站在骨架旁边,手里捏着一部打开了的平板电脑,屏幕上显示着实时遥感地图。看见陆维桢和顾晏从电梯出来,他把平板翻过来朝向两人,画面上是一个被红色箭头标注的位置——蓉城东郊,那家工厂建筑群中央的一栋三层楼。红箭头旁边附着一段文字注释:“热成像显示该建筑地下有异常空腔。空腔上方顶板温度比相邻区域低四度。“ 陆维桢在走向操作台的路上经过了周承岳身边,扫了一眼平板上的热成像图像。建筑物轮廓清晰,中央那栋三层楼的底部轮廓线有一个不规整的缺口,对应地下空腔的边界。那个空腔的形状不太规则,但大致呈现矩形,长边方向朝向龙科院所在的西南方位。 “范德米尔今晚住在哪?“陆维桢问。 “蓉城中心区一家国际连锁酒店。“周承岳收起平板,目光从陆维桢身上移到骨架右膝新装的磁流变液关节上,停了一会儿,“酒店东侧窗户视野朝向西南,正好覆盖龙科院方向和东郊工厂方向之间的这条线。“ 陆维桢走到骨架前面,伸手轻轻碰了一下磁流变液关节的外壳。暗金色的纹路在夜间照明下比白天更清晰,那些极细的纹路顺着关节曲面延伸,灯一照就在金属表面深处微微发亮。他收回手时注意到指尖上沾了一粒几乎看不见的灰尘颗粒——来自关节外壳表面,但外壳两个小时前刚装配完成时是没有灰尘的。这个灰尘出现的时间窗口只可能是骨架和旁边物品之间的空气流动带来的。他摸了一下旁边的液压缸外壳表面,同样的灰尘颗粒也存在。两个位置的灰尘沉积量一致,说明它们来自于同一批次的空气微粒,很可能是在通风系统最近的自动切换周期里被搅动起来的。 但陆维桢的目光停留在左腿原装的液压缸外壳上时,他看到一件东西。左腿膝关节后侧——跟右膝相对应位置——也有一道几乎看不清的细痕。油漆表面被极其轻微的力度划过,但没有破皮,留下的痕迹更像某种清洁剂擦拭时的残留线条。他用手电筒贴着表面打出侧光,细痕清晰地显现在光束下:直线,两端干净利落,不是自然划伤。 有人在他之前已经碰过左腿了。那台右膝是诱饵,左腿才是真正被处理过的位置。 陆维桢直起身来,手电筒的开关被他无声地推回去。周承岳站在三步之外看着他的动作,没有说话。顾晏正在操作台前把耦合器的调试数据从笔记本上拷贝到加密存储里,键盘按键的声音匀称平稳。暗红色的应急指示灯把三个人在墙面上的影子拉成了三道朝向不同方向的斜线,在通风系统送风声的低频背景里安静地定格着。 第10章 双翼 手电筒的光在左腿膝关节后侧的细痕上一寸一寸移动。陆维桢把光束角度调到最低侧切,油漆表面的那条线变得更加清晰——它不是被工具划出来的,而是被某种柔性材料的边缘压过之后留下的位移痕迹。有人用一段表面覆盖了吸附性材料的薄片塞进了左膝外壳和骨架结构的装配缝里,薄片的边缘在油漆上留下了这道平行位移线,然后又被抽走了。 “右膝拆开过一次。左膝被插过东西。“陆维桢收起手电筒站起来,“插进去的厚度大概零点二到零点三毫米,材质比普通纸更韧,可能是柔性pcb基底或者高密度聚乙烯薄膜。“ 周承岳从三步外走到骨架左膝前蹲下来,用指腹沿着陆维桢指出的那条细痕轻触了一遍。他收回手时没有说话,但起身的姿态比蹲下去时快了些许,脖颈侧面那道旧疤在暗红色灯光下微微绷紧又松开。 “右膝的微珠和绝缘胶带是明饵。“陆维桢继续说,“他们希望我们把注意力全部集中在右膝上。左膝才是真正植入东西的地方。那层薄片插进去之后可能做了以下三种操作之一:读取骨架内部的电子标签、在结构表面沉积一层纳米级的导电材料形成寄生天线、或者把一组极薄的传感膜片粘贴在关键受力面上。“ 顾晏已经把笔记本电脑合上了。她走过来蹲在骨架左膝的另一侧,用手电筒从自己的角度重新检查了一遍那条细痕的走向和长度,然后用一把精密卡尺量了量细痕两端的位置偏移量。“走向是直线,从外壳装配缝的上端伸入,出来后没有折角。“她直起身,“如果是读取电子标签,探头通常是圆柱形而不是片状。如果是沉积材料,操作时间至少需要几秒钟,痕迹可能会更长或者更不规则。长度只有这么短,更接近第三项——贴膜片。把传感膜片贴在关键受力面上,时间短,接触面积小,只需要把膜片塞进去压一下就能固定。“ 陆维桢蹲下来重新确认了一遍左膝外壳的装配状态。四颗沉头螺丝的位置和右膝稍有不同——有一颗螺丝的十字槽底部存在极其微小的金属碎屑堆积,是之前被某种镀层工具拧动过之后残留下来的。这颗螺丝被松过又被拧紧,拧紧的扭矩比原厂值略低,导致外壳和支架之间的间隙比标准值大了大约两丝。 “拆。“他说。 顾晏已经递过了螺丝刀。四颗螺丝依次旋松,每一颗退出的声音都干净均匀,没有异常磨损。左膝外壳被完整取下之后露出内部的关节结构——和右膝基本一致,但液压缸体表面多了一层极薄的半透明膜片,面积大约相当于一枚硬币,颜色接近于浅琥珀色,在灯光下几乎不可见。如果不蹲下来用侧光照射,用裸眼根本分辨不出它与金属表面的区别。 “天工“系统的光屏发出了一行实时的成分分析结果,利用陆维桢视野里的光学信息进行材质的初步推断:“该膜片为三层结构:顶层为压电聚合物传感层,中层为柔性导电回路,底层为生物相容性粘贴层。厚度约一百五十微米。其工作模式为——当受力面发生变形时,压电层产生微弱电荷信号,通过导电回路向外传输。传输距离极短,推测接收端位于骨架本体内部。“ 膜片贴在左膝液压缸体的外壁上,位置正好对应载荷传递的主要路径。这个位置受力最集中、变形最明显、信号最强。而且膜片的粘贴方向朝内,朝向骨架结构内部,它的信号发射面指向的就是骨架内部的金属构件——如果骨架内腔里埋了一枚无源接收器,这片膜片发出来的电荷信号可以被接收器捕捉到,并以某种方式缓存或转发出去。 “骨架内部有接收器。“陆维桢把膜片完整地揭下来放进样品盒里封存,“如果接收器是内置在骨架出厂装配时就装进去的部件之一,那我们即使换了关节方案也清不干净。它可能藏在一根空心结构管里、或者藏在某个密封件后面、或者被预埋在骨架铸造时的内部型腔里。“ 周承岳站在两米之外,声音压得低而稳:“你的意思是这具骨架出厂时就已经被做过手脚了?“ “不是出厂时。“陆维桢直起身,“是封存之后被人打开过内部的密封结构装进去的。刚才我们拆右膝的时候,只卸了外壳和液压缸总成,没有动骨架本身的承力管件。但如果接收器藏在承力管件内部,就需要用专门的工具把管件端部的密封塞取出来才能安装。“ 顾晏已经找到了左膝承力管件端部的密封塞位置。那是一颗内六角沉头螺堵,表面涂了防拆胶,胶层颜色和骨架表面的喷涂色完全一致,不凑近了根本不会注意到这里有一层额外的材料覆盖。她用针尖在螺堵边缘轻轻刮了一下,防拆胶层沿着刮痕裂开一小道口子,露出底下的金属面。 “拆。“陆维桢说。 顾晏用内六角扳手卡住螺堵的沉槽施加扭矩。防拆胶在初始几秒内提供了一定的阻力,然后突然松动——螺堵被拧开了。她旋下螺堵之后把扳手放到一边,用手电筒照向管件内部空洞。光柱打进去,大约深入管腔五厘米左右,一枚圆柱形的微型电子器件被磁吸在管壁上。器件的直径只有三毫米,长度约一厘米,表面封着一层透明保护膜,膜下可见微型的电路排线和一只纽扣电池大小的银白色单元。 陆维桢用一把长柄镊子伸进去把那枚器件取出来。放在掌心端详时,它的重量很轻,底部有一个微型触点阵列,对应的接收频率范围正好可以匹配那层压电膜片发出的电荷信号。这枚器件和膜片是配套的——膜片感知变形→产生电荷信号→无线传输→器件接收并存储。存储的数据需要有人定期靠近骨架,用另一台读取设备从器件上把数据下载走。 他忽然想到了一个问题,目光落在器件底部的触点阵列上。如果读取设备需要物理接触来下载数据,那就意味着有人需要定期把骨架的某个部位打开,用读卡器一样的设备去触碰这枚器件的触点。而这个部位不能太显眼,每次被打开都要留出充分的时间窗口和合理的开盖理由。 “四层仓库的分析仪是接收空气中传输的信号。“陆维桢把器件放回样品盒里封好,“而左膝里这枚器件是物理存储型的,它记录的数据需要被现场读取才能带走。说明暗潮在这栋楼里至少有两套采集方案——一套无线远程收数据,一套在地面上有人来接触取数据。两套并行,互为备份。“ 周承岳的加密手机在此时震动了。他接起来听了约十秒,挂断之后转向陆维桢:“围墙外面找到了一个废弃的信号中继器,埋在绿化带下面,距离三号楼北墙大约六米。工兵排的拆卸组刚才清理出来,里面存储了近十二小时的扫描记录。其中一段记录的时序跟今晚墙体外部敲击的时间完全吻合。“ 陆维桢把样品盒放进背包最深层的夹层里,拉链合拢时他抬头看了一眼墙壁上的时钟。九点三十七分。距离上一次墙体敲击已经过去了大约三十分钟,而之前两次敲击的间隔大约是二十五分钟。如果第三次敲击按照同样的周期来算,应该在十分钟之内出现。 他转身走到配电箱前,把伴热带预热到了中等功率档位。墙体表面温度开始平稳上升。他回到操作台边,把手持式热像仪重新握在手里,这次开机了,取景框对准北墙一米六高度的位置。屏幕上显示出一个缓慢变化的温度读数,墙体表面的热量正在均匀扩散,形成一个没有局部凸起的热幕。 周承岳走到了他侧后方。顾晏站在骨架旁边,手持式频率计开机运行着,探头指向北墙方向。三个人在暗红色的低照度灯光下形成了三个相互掩蔽的观测角度。北墙方向一片安静,暖气管道内部的循环声低沉平稳。 陆维桢盯着热像仪屏幕等了大约八分钟。屏幕上墙体温度读数稳定攀升到了设定阈值,整个北墙表面呈现出一片均匀暖色,没有异常热点或冷点。然后在第九分钟左右,热像仪的边缘突然捕捉到一个极其微弱的红外反射——来自墙体外侧大约一点五米处,某个物体短暂地出现在热像仪的取景框角落,然后消失了。出现和消失之间的时间差不到一帧。 “天工“系统同步截取了那一帧画面进行增强处理。光屏上浮现出一组经过算法补偿的轮廓线条:一个蹲姿的人体轮廓,头部略微偏向左侧——正在用一台手持设备对准墙体表面。轮廓的肩膀线条宽度和之前从北门次干道监控里提取的范德米尔的身体比例数据基本吻合。 陆维桢把热像仪放下。他没有给任何人看那一帧画面,但周承岳从他的停顿中读出了信息,侧头看了他一眼。陆维桢用左手食指在操作台面上轻轻划了一个方向标记,指向北墙偏东二十度。周承岳的视线朝那个方向偏了一下又收回来,然后他伸手从夹克内袋里取出加密手机,在屏幕遮光模式下快速输入了一条短指令,发送出去。 发送完成之后他把手机收起来,朝陆维桢微微点了一下头。 北墙外部的绿化带深处,在路灯照射不到的阴影里,有几片草叶被低于体温的空气移动扰动了一下,然后恢复了静止。没有人走进灯光的范围内,但周承岳的加密手机在发送指令之后大约四十秒震动了一次,消息内容极其简短,只有两个字:“已在。“ 陆维桢把热像仪关掉放回工具箱。墙体表面的温度开始慢慢回落,暖气管道内部的热循环恢复到了常规工作模式。骨架左膝的承力管件端部螺堵已经被重新装回去,防拆胶没有补涂——空缺本身会成为周承岳后续行动的判断依据,也是陆维桢期待对方暴露时的一个参考坐标。 顾晏已经无声地收起了频率计。她回到操作台前,把笔记本电脑重新打开,在白天的技术文档里找到了一页被隐藏的空白行,在行里输入了一行新内容:“左腿管内元件已取出,保留螺堵防拆胶缺失状态。“ 她保存文件,合上笔记本。 陆维桢走到骨架左膝前蹲下来,把外壳重新合上。四颗螺丝依次入位,扭矩打到与拆卸前一致的值。复原之后的左腿外观看不出任何变化,油漆表面的那一道细痕还在原来的位置,不凑近了用手电筒打侧光根本看不见。 他站起来退后一步。暗红色的应急指示灯把左膝外壳的曲面勾勒成一条柔和的弧线。右膝是饵,左腿是网。现在饵被拆了,网被收了。但暗潮的人今晚还在北墙外蹲过,范德米尔住进了那家能看到龙科院和东郊工厂之间那条线的酒店房间,而那台四层仓库里的分析仪现在还处于“待触发“的伪装状态。 “接下来十二个小时,对方可能会采取两个动作之一。“陆维桢面对周承岳和顾晏的方向说,声音不高但每个字都清晰,“要么因为右膝和左腿的数据同时中断而判断这栋楼内的采集体系被发现了,立刻启动全局擦除。要么因为他们仍然接收到了那台分析仪发回的确认信号而认为我们还蒙在鼓里,继续维持现状。“ 周承岳的加密手机屏幕在夹克内袋里无声地亮了一下,他又拿起看了一眼。看完后他把手机屏幕转向陆维桢的方向,上面显示着一条刚从技术组传来的消息:“在东郊工厂地下空腔的通风管道内部采样到一个id卡信号。频率码型和今天下午宋喆刷开北门时的门禁卡信号一致。“ 第11章 入夜 宋喆的门禁卡信号出现在东郊工厂地下通风管道里,这件事改变了很多事情的时间表。陆维桢站在原地看完那条消息,转身走到操作台前把背包里的笔记本电脑重新拿出来开机。开机过程中他对周承岳说了一句话:“宋喆今天下午从北门出去之后没有回龙科院,但他的人或者他身上的东西出现在了东郊。卡和人分开的可能性有多大?“ “分开。“周承岳几乎没有停顿,“他被带走的时候门禁卡还在身上。但今天下午四点四十分之后,北门门禁系统没有再刷到过那张卡的记录。如果他被抓或者被控制,卡会被搜走。搜走之后出现在地下通风管道里,说明那边有人拿到了卡并带进了工厂地下空间。宋喆本人不一定在那里。“ 陆维桢把笔记本屏幕转过来对着自己,快速打开了一幅蓉城东郊的卫星地图。那家工厂的建筑群在地图上呈现出一片灰白色的矩形顶棚,中央的三层楼在俯视角度下呈现出一种略微偏暗的屋顶材质——跟周围铁皮顶棚的反光率不同,更偏向吸光型表面。“天工“系统的光屏将热成像照片叠加在卫星图上,地下空腔的轮廓以半透明的红色线条勾勒出来,正好落在三层楼底部偏东的位置。 “如果通风管道里检测到门禁卡信号,说明有人下过那个地下空间。“陆维桢的手指在地图上的通风管道出口位置点了一下,“这个出口的位置在工厂围墙外围的配电房旁边,外面是一条小巷,巷子尽头通向一条乡镇公路。可以快速进出,而且不容易被厂区内部监控覆盖。“ 顾晏已经从操作台侧面的储物柜里取出了两台手持式频谱分析仪和一组便携信号天线。她把一台递给陆维桢,另一台挎在自己肩上,动作干脆到仿佛这件事在她脑子里已经演练过不止一遍。“通风管道内部如果有门禁卡信号,那管道本身的形状可以作为波导定向传输。从出口位置往外扫,只要能捕捉到微弱的信号残余,就能反向推演出信号强度最大区域——很可能就是宋喆进入地下时的路径。“ 周承岳看了一眼顾晏挎在肩上的频谱仪,然后转向陆维桢:“你们要不要去一趟现场。“ “要。“陆维桢把笔记本合上放进背包,拉链拉到一半时停了一下,把热像仪从工具箱里抽出来也塞了进去。 地下三层通往地面的员工通道更窄,仅容两人并行。他们沿着通道向上走了两层楼梯才到达地面出口,通道出口掩藏在一排修剪整齐的冬青后面,外面是龙科院北区的一片停车场。夜风迎面吹过来带着十一月底的湿冷,陆维桢把外套拉链拉到了最顶上。 周承岳开了一辆没有任何标识的黑色suv过来,停在冬青丛边缘,车灯没开。三人上车后他沿着园区内部道路朝东门驶去,经过门禁时值班室的灯光透过窗玻璃照进来,陆维桢看到值班员的茶杯搁在窗台上还在冒热气,窗户拉开了一道缝透气。 车辆驶出龙科院之后上了城市快速路。周承岳的车速维持在限速以内,走的是中间车道,没有超车也没有变道。车速平稳到几乎感觉不到颠簸,引擎运转的噪音被底盘隔音层压得很薄。陆维桢坐在后排靠窗的位置,偏头通过车窗玻璃的反光观察后视镜里的车流——后面有两辆车一直在跟,保持的距离足够远但始终出现在下一组街灯的覆盖范围内。他看了大约三分钟后发现那两辆车在同一个路口分了道,各自转向不同方向。之后没有再看到重复出现的车灯。周承岳从后视镜里也看到了这一幕,他什么也没说,只是继续维持着匀速向城东推进。 二十多分钟后suv拐入一条两侧种着梧桐树的乡镇公路。路灯光线变得稀疏,中间的间隔从城市道路的三十米逐渐拉长到近百米,有些段落没有路灯只有路边住户家里透出来的零散光线。导航地图上显示工厂建筑群就在前方大约一公里处,围墙的轮廓已经开始在林木线后面隐约浮出来。 周承岳把车停在距离工厂围墙大约两百米的一处废弃机械修理铺的院子里,引擎熄火后他没有立刻下车,而是先侧耳听了一分钟周围的声响。有狗的叫声,不远不近,大约在围墙内侧。有风声穿过梧桐树枯叶间隙的声音。更远处有一条乡镇公路上的柴油货车经过,发动机的轰鸣声由远及近再及远,前后持续了大约四十秒。 “这条通风管道的出口在工厂围墙外围,配电房旁边的巷子尽头。“陆维桢在手机上打开了提前截取的地图局部放大图,把屏幕侧过来给周承岳和顾晏看,“配电房外墙朝西有一扇检修门,门锁是标准的弹子锁,侧面有通风百叶窗。管道出口在配电房北侧地面,有一个铸铁井盖。井盖边缘的油漆颜色和周边地面不太一样,去年粉刷的时候漏掉了这一圈。在卫星图上能分辨出来。“ 周承岳看了一眼地图,推开车门。外面的空气比车里更冷,带着泥土和枯草混合的气味。三人沿着梧桐树的阴影边缘朝围墙方向移动,脚下踩着干裂的泥土地面和碎石子路,每一步都注意避开松散的土块和枯枝。陆维桢跟在周承岳后面大约三步,顾晏断后,她的频谱仪天线已经展开了一小节,顶端收着电波,屏幕显示着实时背景噪声。 配电房的轮廓在月色下显出来,是一间约四米见方的砖混小屋,屋檐下没有灯,配电房外侧的电线杆顶端有一盏路灯亮着发出昏黄的光,灯罩积了灰,照在地面上的光斑模糊而边缘不清。三人绕到配电房北侧,地面上果然有一块铸铁井盖,直径约六十厘米。井盖边缘的颜色确实比周边地面浅了一圈——去年粉刷时被遗漏的油漆痕迹,在路灯余光的照射下形成了一个隐约的环状分界线。 陆维桢蹲在井盖旁边用手电筒照了一圈边缘。井盖的铸铁表面覆盖着一层薄薄的泥土,但盖沿和井圈之间的缝隙里泥土分布不均——东侧的缝隙比西侧宽约半毫米,有被撬起过之后重新放回时没有完全对正造成的偏移。他用手套垫着指腹沿缝隙摸了一圈,触觉反馈告诉他这口井盖最近两天之内被打开过至少一次。 周承岳蹲在对面,手里捏着一把工具钳轻轻地卡入缝隙向上施加压力。井盖被抬起了一道窄缝,边缘和井圈之间发出轻微的铸铁摩擦声。他停住,侧耳听了听下方。没有异常的声音。然后他把井盖缓缓抬起到足够一人侧身进入的角度,用一块石头抵住边缘以防它回落。下面的通风管道内壁是水泥材质,直径约八十厘米,壁面上有一层浅灰色的积尘。积尘表面有几道不规则的拖拽痕迹延伸到黑暗深处,末端消失在管道的弧形拐角后面。 顾晏把频谱仪的天线指向管道入口方向,屏幕上的读数微微跳动了一下。她蹲下来把天线探入管口约三十厘米,读数的跳动幅度增大了。“里面确实有和门禁卡同频的信号残余,“她说,“微弱但持续,频率吻合。像是卡本身仍然在通电状态,有内置电池。位置大概在管道前方二十到二十五米处,拐角后面。“ 陆维桢准备侧身进入管道,周承岳按了一下他的肩膀。“你走我后面。“他说完先侧身滑入了管口,身体贴着管壁内侧的曲面缓慢向里挪动。陆维桢跟进去,然后是顾晏。三人在水泥管道里弯腰前进,手电筒的光束在前方的壁面上照出一个圆弧形的亮斑,管道内壁的积尘在手电光下呈现出细微的颗粒纹理。 管道前进了大约十几米后向左拐了一个接近直角的弯。拐过弯之后前方约五米处的管壁上有一个金属盖板,尺寸跟手掌差不多,表面覆盖着一层防尘棉垫。金属盖板边缘有一根极细的数据线延伸到管道侧壁的缝隙里消失不见。盖板本身微微鼓起的轮廓表明下面有物体被固定在内壁上。 陆维桢侧身挤过去,用手电照向金属盖板。盖板表面的防尘棉垫被揭开过,边缘还留着新指纹的油脂印记,指纹清晰完整。他用指甲轻轻撬开盖板的扣锁,里面嵌着一只约信用卡一半大小的黑色塑料盒子,盒体侧面引出了三根极细的线缆。盒子背面贴着一张贴纸,上面手写着一行编号:echo-7--04。 他认出了“echo-7“这个前缀。在他第一次被张启明特招后,系统曾截获过一份来自大洋彼岸的情报报告,编号就是echo-7。此刻他面前这个盒子的编号后缀中也有echo-7,中间字段意味着“附属通信装置“。 “这是暗潮的前端信号收集器。“陆维桢压低声音说,“它的三根线缆分别通往管道侧壁的缝隙里——一根接电源,一根接天线延伸段,一根负责数据回传。如果把它拆下来,后面接的两根线缆如果没有新负载会立刻导致回传线路开路,触发远端的掉线警报。“ 顾晏从后面挤过来用手电照了照盒子的底部结构,低声说:“它在通过管道侧壁的原生线缆偷电。这根线原本属于管道内部的防结露伴热带的供电回路,被中间分接了一路。“ 陆维桢盯着盒子看了几秒。他能拆掉它,但拆的同时需要做一个负载模拟器接在原位上——让那两根线缆仍然感知到一个正常的电气连接状态,系统不会认为掉线了。做一个负载模拟器需要电阻、电容、一小块运算放大器和十五分钟的时间。 但他手里的材料只有顾晏挎包里那台频谱仪和几卷备用的细导线。 “做负载模拟器。“陆维桢侧头对顾晏说,“你包里应该有电阻和运放芯片。“ 顾晏从背包里摸出一个零件盒,里面各种阻值的贴片电阻用密封条分格装好。“你需要多少?“ “匹配线缆负载,不用完美匹配,只需要让远端检测不到开路就行。“陆维桢伸出手,“四十七千欧电阻,一微法电容,一块单运放,接成电压跟随器。“ 顾晏把零件递过来的动作精准到像在手术台上传递器械。陆维桢接过来蹲在管道里就着手电光开始焊接。他的手没有抖动,焊枪尖头在焊盘上停留的时间精确控制在让锡流动但不烧蚀基板的程度。四分钟后负载模拟器焊完,他用热缩管封装了接点。 “拆。“他说。 顾晏用镊子夹住盒子的数据线接头轻轻拔下。在接头脱离的同时陆维桢把负载模拟器的对应端接入了线缆回路。整个过程不到半秒。盒子的状态指示灯在短暂闪烁了一下之后重新恢复了常亮。他用手电照了一下指示灯,绿色平稳,没有告警。 盒子本身被完整地从管壁上取了下来。背面的echo-7--04贴纸在灯光下露出边角的一串激光蚀刻二维码。陆维桢没有当场扫描,直接把它放进了背包里封存好。金属盖板重新扣上,防尘棉垫按原样盖好,线缆的分布角度也恢复了原位。 三人沿着原路退出通风管道时,陆维桢感觉到管道外部的温度比进去时略高了一点——地面有人在靠近配电房的北侧,身体散发的热量通过地面传导进来,在封闭空间里产生了一点点可测的温差。他停下脚步,侧耳听了两秒。管道外的夜风声中夹杂了一个人的脚步声,轻重匀速,从配电房西侧绕向北侧,正在向井盖的位置靠近。 周承岳也停住了。他的右手无声地从腰间抽出一样东西,握在手里压在腿侧。管道外的脚步声在距离井盖大约三步的位置停住了。然后传来一个声音,嗓音偏低,带着轻微的沉浊感和一点非母语者特有的音节收尾方式,用中文说出了三个字:“陆维桢?“ 管道内没有回应。脚步声停在那里等了大约五秒没有移动,然后那个声音又说了一句话,语气像是在确认什么,又像是在抛出一个新的定式:“你是走了,还是在里面听着?“ 第12章 井上 管道内的空气在那一句话落地之后静止了。陆维桢蹲在黑暗里,手电已经关掉,只有管壁拐角处透进来微弱的天光反射。他感觉到自己左手边顾晏的呼吸在控制深度,右侧周承岳握在腿侧的工具在布料下面发出几乎听不见的静力压缩声。 外面的人没有走。脚步声从井盖边缘退了大约半步又站定了,像在等一个回答。夜风从井盖缝隙里漏进来,带着地面上的枯草气味和一种极淡的化学试剂余味——那种气味他在四层材料仓库里闻到过,溶剂挥发后的残留。 陆维桢用气声对周承岳说了一句,音量低到几乎只有他旁边的管壁能传导:“我能从他站的位置判断出他面朝的方向。如果他在等我们出去,他应该站在井盖正上方或者侧前方。他站的是侧后位——他不想让我们一出去就正面看到他,他想先观察我们的视线落点。“ 周承岳没有回应,但他握在腿侧的右手略微调整了握持角度。 陆维桢往前挪了一小步,贴近管道的拐角处。他把手机调到最暗的屏幕亮度,从拐角边缘探出一线来反射管道壁面上的光泽,通过手机屏幕的反光观察井盖缝隙里的外部光线分布。缝隙里透进来的光线有一块被遮挡了——那人的脚站在井盖北侧约半米的位置,一双深色靴子的鞋尖在路灯余光的边缘露出一小截轮廓。鞋底的纹路是较深的沟槽花纹,不是城市通勤鞋,更接近户外地形鞋或战术靴的底型。 “范德米尔。“陆维桢把手机收回来,低声说,“他穿了一双鞋底纹路非中式的靴子。站在井盖北侧,背朝配电房,面朝东侧围墙方向。他不想让我们在出来的第一时间看到他,但他也不打算走。他在等我们主动给出一个动静。“ 管道里的温度正在缓慢下降,通风管道的水泥壁吸收了夜间地表的凉意。陆维桢手里那只刚取下的echo-7盒子还贴在他的掌侧,盒子背面的激光蚀刻二维码在黑暗中像一道极浅的印记。他低头用手机的微光扫了一下那个二维码,光屏立刻在视野里展开了解码后的数据——一串嵌套的文本信息,被压缩成类似于坐标和编号的组合,末尾有一行未加密的备注字段:“-04终端,用于南区通道路由节点数据的本地暂存。回传周期每二十四小时一次。下次回传窗口:十一月二十八日凌晨三点至五点。“ 陆维桢把解码后的信息记住了。他抬头看向井盖方向,夜风从缝隙里灌进来的速度比刚才慢了一点——有人站到了上风口的方向,身体阻挡了一部分空气流动。 他在管道内用手机的备忘录打了一行字,把屏幕转向周承岳:“他堵住井口是为了不让我们用原路返回,但不是为了抓我们。他如果带了足够的人手,没必要自己站在这上面等。“ 周承岳看完之后略微点了下头。他收回视线,在备忘录上打了一行回复,屏幕朝向陆维桢:“你的意思是他单独来的。“ “单独。而且他想要的东西不是我们的人,是他装在管道里的那台盒子。他只是确认盒子还在不在。“ 周承岳把手机收起来,腿侧握持的那把工具被无声地放低了。他侧过头用口型对陆维桢说了两个字:“给他。“ 陆维桢瞬间理解了。盒子本身已经不重要了——里面的数据已经被他扫走,硬件本身唯一的价值是如果被取走会导致远端触发掉线警报。但如果他们把盒子留在管道里原位,让范德米尔自己下来确认,他可以当着范德米尔的面暴露“东西还在“,同时制造一个空档让周承岳在地面上完成截停。 他退回到金属盖板前,把echo-7盒子重新卡进盖板下的固定位里,那三根线缆的插头按照原来的顺序接好。负载模拟器被他顺手拆了下来放进口袋。盒子上的指示灯重新亮起绿色,保持着原有的常亮状态。他转身退回管道拐角处,用手势示意顾晏后退。三人沿着通风管道向内退了大约七八米,留出了一个充分的缓冲距离。然后陆维桢在管道壁面上轻轻敲击了三下——两短一长,像是金属盖板被不慎碰响时发出的声音。 井盖上方传来了回应。一个轻微的脚步声挪动了一步,井盖边缘的铁质圈沿被什么东西轻轻勾了一下,发出一声金属叩响,然后井盖被从上方平移开了大约一掌宽的缝隙。冷空气灌进来的量比之前更大。一只手从缝隙里伸进来,戴着黑色薄手套,指间夹着一只微型手电筒。灯光在管道内壁扫了一个来回,落在金属盖板的方向,确认盖板完好、指示灯亮着,然后那只手缩了回去。 井盖重新合拢的声响在管道里回荡了很短的时间。然后脚步声向北侧移动了大约两米远的方向,停住了。 “他拿到了他想要的确认。“陆维桢用气声说,“但他在附近停下来了。“ 周承岳没有说话,他蹲在管道拐角后面,侧耳听了片刻外面的动静。风声和植被的窸窣声恢复了正常的夜晚节奏,但有一种额外的静默嵌在里面——像一个人刻意放轻呼吸之后留在空气里的空白。他无声地向前挪到井盖下方,抬起井盖一侧,从缝隙里观察外面。配电房的北侧地面上有一颗半截没入泥土的烟头,还在冒着微弱的余烟,滤嘴朝向东侧围墙方向。 他放下井盖,转身朝陆维桢比了一个手势:“他在围墙外附近。没走远,但也没必要继续留在这里等。我们可以出去了,但要走另一条路。“ 顾晏的频谱仪在此时用最低音量发出了一组序列信号提示。她低头看了一眼屏幕,侧过屏幕让陆维桢看到:频谱仪捕捉到了一段极窄带的跳频脉冲,频段跟之前暗潮的通信协议一致,但发射源位于地下,来自管道前方约五十米处,方向指向工厂建筑群方向。那个方向正好和工厂地下空腔的位置重合。而且这一段跳频脉冲的持续时间和间歇周期和之前echo-7盒子内部的数据备份节奏完全吻合——同一套系统在向另一个接收端发送数据时产生了同样的射频特征。 “地下空腔里还有另一台echo终端在运行。“陆维桢的目光从频谱仪屏幕抬起来,落在管道深处更暗的方向,“这台管道里的-04只是路边的一个中继节点,核心主机在地下。范德米尔今晚来确认-04还在线,是因为他真正要动的设备在下层。“ 周承岳把井盖重新卡回井圈上。他侧身沿管道向外挤了半米,贴着配电房的外墙根处找到了一个小型通风百叶窗,窗户的铁制格栅有六颗螺丝,其中三颗已经被卸掉过、槽口有轻微变形。他用工具钳依次旋下剩余的三颗,格栅被取下来,后面露出一道约半米高的通风格栅开口,穿过之后可以直接进入工厂外围的空置区域,绕开井盖附近范德米尔可能仍然驻留的位置。 他先把工具包递了出去,然后侧身钻过了通风格栅。陆维桢跟着钻出去,顾晏断后把格栅重新用三颗螺丝固定在原位。外面的空气比管道里冷,也潮湿,带着泥地和水管漏水混合的气味。三人沿着配电房东侧的围墙根快速向南移动,在穿过一段低矮灌木丛之后重新回到了那条乡镇公路上。 周承岳的suv仍然停在机械修理铺的院子里。他上车后没有立刻启动引擎,而是先扫了一遍后视镜里和前方道路两侧的视野,确认没有灯光或车辆停留在附近,才拧动了钥匙。引擎启动的声音在深夜的乡镇公路上被压缩得很低。 车辆驶入快速路之后,陆维桢坐在后排把那只echo-7盒子的二维码信息完整地写进了手机备忘录里。写的最后一行是一组时间标记:“凌晨三点至五点,十一月二十八日。今天日期十一月二十七日——回传窗口就在今晚。也就是说范德米尔今晚出现在配电房附近,确认-04仍然在线,然后他会在今天凌晨三点到五点之间启动地下主机那边对应的接收程序,接收-04回传的数据。“ 周承岳从后视镜里看了他一眼。陆维桢继续输入:“如果我们能在今晚三点之前接入地下主机旁边的通道,在他开启接收窗口的同时切入协议层,我们可以把-04回传的数据包替换成——“ 他停顿了一下。顾晏在旁边接上了后半句:“替换成我们想要他收到的东西。让他以为他收到了正确的数据,实际上那些数据由我们写。“ 车辆在夜色中平稳地沿快速路向西行驶。龙科院的建筑群轮廓在远方开始重新变得清晰,实验区的灯光在地平线上织出一片低密度的暖黄色星群。周承岳在后视镜里点了点头。他的方向盘在下一个路口略微向右偏了一个角度——不是回龙科院的方向,而是绕向了东郊工厂的南侧入口方向。 陆维桢在手机备忘录里新开了一行,写了几个字:“今天凌晨三点之前。还有时间。“写完他透过车窗看向东方的天际线,那片工厂建筑群的轮廓在月光的低照度下融进了夜色的背景里,看不清楚。但他知道它的位置。 第13章 楔入 suv在绕过工厂南侧第三个弯道之后减速了。周承岳把车停在一条与工厂围墙平行的土路边缘,熄火时发动机的余温让前挡风玻璃蒙了一层薄雾。他没有下车,而是先把车窗降了一条缝隙侧耳听了约半分钟。外面的夜很静,只有远处偶尔传来几声犬吠,声音被围墙阻挡过后变得沉闷而遥远。 “南侧入口是货运通道,晚上没有值班岗亭。“周承岳从扶手箱里取出一张打印好的厂区平面图铺在方向盘上,“围墙上有一道铁栅栏门,门锁是普通挂锁。翻过去之后是物料堆场,堆场东面有一排铁皮库房。地下空腔的入口根据热成像判断位置在中央三层楼的底部,需要通过库房之间的通道穿过堆场才能接近。“ 陆维桢借着手机屏幕的光看了一遍平面图。物料堆场的地面标注为水泥硬化面,没有植被遮挡,从铁栅栏门到库房之间大约有六十米的开阔区域。如果厂区内有任何夜间巡视或者摄像头覆盖,这六十米就是最危险的暴露段。 “摄像头覆盖怎么处理?“他问。 周承岳从手套箱里取出一部手掌大小的设备递给陆维桢:“主动红外***,发射覆盖角度六十度,有效距离三十米。打开之后能让正前方的摄像头画面产生均匀的眩光伪像,看起来像夜间传感器自噪。持续打开时间超过十五秒会被系统识别为故障,所以只能每次开十秒就关。“ 陆维桢接过设备掂了掂重量。外壳是磨砂塑料,侧面有一枚按钮和一颗指示灯。他在脑子里快速计算了一下从铁栅栏门到库房之间的距离和步速:六十米,以正常快步走约需三十秒,中间需要开三次***,每次十秒,间隔十秒做自然冷却。路径上的摄像头如果成对交错布置,***只能覆盖单方向,需要用身体遮挡和步态配合来补足。 “我可以走。“他说。 周承岳看了他一眼,没有争论,只是把平面图收了起来。“我走前面开路,陆维桢走中间拿***,顾晏断后带频谱仪监视射频环境。“他推开车门,夜风带着泥土和金属氧化物的气息灌进来,“速度要快,落地要轻。“ 三人翻过铁栅栏门的动作几乎没发出声响。周承岳先翻过去蹲在围墙内侧的阴影里扫视了一遍堆场方向,然后朝后方打了一个手势。陆维桢翻过去的时候铁栅栏顶端的一根焊点略微松动的铁丝在他外套肩部刮了一下,他用手按住了那片布料防止刮出声响。顾晏最后落地时踩在水泥地面上的脚步声被他外套的下摆缓冲了。 堆场比平面图上看起来更大。地面上堆着成卷的金属板材和几只集装箱式的储物箱,水泥地面上有重载车辆行驶留下的轮胎痕迹和油渍斑点。陆维桢蹲在铁栅栏内侧的阴影里把***对准视线方向的第一只摄像头,按下按钮的同时快步向前移动。十秒后他松手,快步在堆放物之间蹲下,让身体和金属板材的轮廓重合。周承岳已经在第一个掩体后面就位,向他做了一个继续的手势。 第二次***开启时陆维桢穿过了一段开阔区域,落地时脚掌先触地再缓放跟,鞋底和水泥地面的接触几乎没有产生摩擦音。他蹲在一卷巨型钢带卷后面喘了半口气,旁边的顾晏已经无声地端着频谱仪扫了一遍周边频段,屏幕上的背景噪声曲线平滑,没有异常的突发信号。 第三次***开启后他穿过了最后一段暴露面,在库房之间的通道入口处和周承岳汇合。三人贴着通道外墙的阴影向中央三层楼方向移动,脚下是水泥地坪上铺着一层细碎的砂石,每一步都需要先把重心放稳再转移。 中央三层楼的轮廓在月光下显出来。建筑外形和卫星图上一致,墙体是浅灰色的涂料粉刷,没有窗户朝西。建筑底部沿着地基线有一圈水泥散水坡,散水坡与地面交汇处的防水层有一小块被切开的缺口,露出底下的混凝土边缘和一根直径约十厘米的pvc管道。管道从散水坡底部斜着伸入地下,穿墙处填充的密封胶层有一圈新鲜的重新封堵痕迹。 陆维桢蹲在管道口旁边用手电照了一下内部。管道是空的,内壁上挂着一层极薄的干涸冷凝水痕迹,管道壁的倾角向下延伸约两米后转入水平方向,灯光照不到更深的区域。管道的截面尺寸勉强可以让一个人匍匐通过,而且由于直径偏小,人在其中移动时会不可避免地摩擦管壁。 “地下通信线缆的穿墙管。“陆维桢压低声音说,“管道内部没有保温层,但凝水痕迹分布均匀说明管道内部的温度和外部土壤已经达到平衡,有人近期在管道里爬过,带走了部分凝水,留下的擦拭痕迹在灯光下反射角度不同。“他用手电照了一下管道内壁侧面的一个位置,“这里有一组新鲜的手指压印,排列间距和成年人手部宽度吻合。“ 周承岳蹲在管道口侧面的阴影里看了一眼手表。指针指向凌晨一点四十七分。距离三点钟的回传窗口还有一个多小时,但进入管道之后移动速度必然慢,需要在两点半之前到达地下空腔内部并且完成设备接入。 “我先。“周承岳把外套的前襟收紧,侧身钻入了管道口。他的肩膀宽度和管径之间几乎只有厘米级的间隙,每往前挪动一段都需要用双臂和膝盖交替发力推进。陆维桢跟在后面,管道的冷空气裹着一股淡淡的未完全干燥的水泥气味,管道内壁的粗糙表面在他屈肘推进时反复摩擦外套的前臂位置。 管道内部的水平段比预想的更长。三人在黑暗中爬行了大约六分钟之后,管道的走向开始轻微偏转,然后前方出现了光线——一道暗绿色的光从管道口的末端透进来。周承岳在管道尽头停下,从管口向外观察了片刻,然后用手势示意后方:出口位于一间约十平方米的设备间内部,天花板上的应急灯发出暗绿色光,房间内没有其他人员,有一排服务器机柜和一套桌面终端。 陆维桢从管口爬出来时身上的外套沾了一层灰白色的管道积尘。他站起来快速扫视了一遍这间设备间的布局:靠墙排着三台标准机柜,机柜门上锁,透过通风孔能看到内部的服务器硬盘指示灯在低频闪烁。房间中央的桌面上有一台开机状态的笔记本电脑,屏幕亮着,显示着一组监控画面的实时缩略图——其中一张画面正是地面那间配电房北侧的井盖视角。桌面旁边的墙上贴着一张便签纸,上面手写了一组ip地址和登录凭据。 “-04的远端确认程序在这台笔记本上运行。“陆维桢凑近屏幕看了一眼监控画面的窗口标题,“它每隔十五分钟向-04发送一次心跳信号。三点整的时候它会切换到数据传输模式,从-04拉取数据。“他转身在笔记本键盘上敲了一行命令,调出了程序的后台进程列表,在一长串进程名里找到了对应的数据拉取服务。 顾晏已经打开了桌面终端侧面的一个接口面板,从挎包里取出信号耦合器和一组线缆。她用极快的速度把耦合器串接在终端和服务器之间的数据链路上,然后用频谱仪校验了一遍通道的误码率,屏幕上跳出一个绿色的“ok“状态。 “数据链路串接完成。“她说,“三点整的时候,数据从-04回传到这台终端的过程中,耦合器会把原始数据包拦截、复制、然后转发送出。我们要写入的替换数据包会通过同一个耦合器插入传输流,终端收到的将是合成后的版本。“ 陆维桢坐在笔记本电脑前面开始构造要替换的数据内容。他在空白文本里快速写入了符合echo-7协议格式的模拟数据包——内容包括一组伪造的骨架应力读数、虚假的关节温度数据和没有实质意义的振动特征值。所有这些数据的数值曲线模拟得平滑合理,就像骨架真的经历了一整周的正常静置状态。他在伪造数据末尾添加了一个校验和字段,让整组数据在协议层面完全通过合法性验证。 “你在写什么数据?“顾晏站在他身后看着屏幕。 “让看到它的人相信这具骨架没有任何变化。“陆维桢敲下最后一行校验值,“右膝没拆过,左腿没打开过,管道里的盒子从没被人碰过。一切正常。他们在蓉城的采集系统仍然在正常工作。“ 周承岳已经无声地检查完了设备间的进出口。他回来时手里拿着一张从墙上摘下来的安保巡逻时间表,表上显示夜间的例行巡更时段为每两小时一次,下一次巡更时间在凌晨三点四十分。距离现在还有足够的时间窗口完成数据替换操作。 凌晨两点五十五分,陆维桢把构造好的替换数据包写入了耦合器的缓存中。顾晏最后做了一次链路通畅校验,所有数据通道的工作状态均为绿色。桌面上的笔记本电脑屏幕右下角跳出了一行系统日志:数据拉取服务将于三分钟后启动。他们三个人分布在设备间的三个不同位置,各自占住一个观察方向,呼吸压到最浅的水平,在暗绿色的应急灯光里等待着时钟走完最后的三分钟。管道入口方向传来一丝极其微弱的空气流动,搅动了设备间地面上积着的一层薄尘,但数据链路上仍然安静。 第14章 撤点 凌晨两点五十九分四十秒,笔记本电脑屏幕右下角的系统日志窗口开始逐行刷新预备信息。陆维桢的手指悬在键盘上方,没有触碰任何按键。耦合器已经在线,替换数据包已经写入缓存,现在只需要等传输服务自动启动时让数据走完预设的路径。 时间跳到了三点整。日志窗口里跳出一行文字:“数据传输服务启动,拉取目标:-04终端存储区。文件大小:约4.2mb。“紧接着第二行日志出现:“连接成功。握手协议验证通过。开始传输。“ 陆维桢能感觉到桌面上的笔记本内部硬盘在轻微转动。耦合器上的状态指示灯从待机的暗绿色切换为传输中的淡蓝色,持续了大约十二秒左右,然后蓝灯恢复到暗绿色。日志窗口里出现了两行新的文字——第一行是“数据传输完成,校验和验证通过“,第二行是“本地存储已更新。等待下一次拉取任务。“ 他慢慢吐出一口之前一直屏着的气。顾晏从侧面走过来看了一眼屏幕上的校验和验证字段,用手机拍了张照片然后退回去。周承岳站在设备间入口方向,视线一直停留在走廊的暗处没有移开过。 “替换数据已经被当作原始数据存进这台终端的本地存储了。“陆维桢低声说,“-04那边的原始数据还在,但下次有人从-04直接提取硬件时会发现数据和终端里存的不一致。不过按照他们二十四小时回传一次的周期,下一次拉取在明天凌晨三点。在此之前我们有整整一天的时间窗口处理这个问题。“ 周承岳收回了目光,转身扫了一遍设备间的墙面。桌面上的便签纸仍然贴着那组ip地址和登录凭据,他用手机拍了一份留存。墙角的机柜里有一台设备的风扇转速比其他的略快,发出的风噪在安静的设备间里形成了一处可辨的声学特征。 “巡更三点四十到。“周承岳说,“现在撤,时间够。原路返回。“ 陆维桢把笔记本电脑的屏幕恢复到了他进入时的状态,没有留下任何操作痕迹。他把耦合器从链路中摘下来装进顾晏的挎包,桌面终端的接口面板重新盖好,螺丝拧回原位。墙角那只风扇转速略快的机柜也没有被动过。 三人依次钻回管道,顺序倒了过来——顾晏先进入,陆维桢跟在她后面,周承岳断后。管道内壁的冷空气再次包裹上来,带着凝水蒸发后的轻微土腥味。陆维桢在匍匐前进的过程中用外套前臂尽量覆盖管道壁面上的指纹和摩擦痕迹,但十指在粗糙水泥面上的少量接触痕迹是不可避免的。他回头看了一眼管道入口处,确认周承岳正在用一块干布擦除他爬入时留在管道口边缘的泥土和表皮碎屑。周承岳做完这些之后才倒退着进入管道,在他经过的位置同样用外套覆盖了自己留下的摩擦痕迹。 管道水平段的移动比进来时更快。三人已经熟悉了管道内壁的曲率和障碍位置,手肘和膝盖的发力点形成了肌肉记忆。大约四分钟后他们到达了管道起点的斜坡段,陆维桢从管道口探出头,确认配电房北侧没有被触动过的痕迹,然后侧身滑出来站在散水坡旁边的地面上。顾晏跟着出来蹲在井盖侧面把遮盖用的杂草重新铺了一下,周承岳最后出来时带出了管道口边缘的一片干土,他把土撒在附近的碎石地面上,让管道口周围的视觉连续性保持自然。 三人穿过堆场返回铁栅栏门的过程比进入时更快,周承岳在前方选择了一条利用堆放物阴影遮蔽的路径,避开了之前需要开启红外***的那几段暴露区域。翻过铁栅栏门回到土路上时凌晨的风比前半夜更冷了,陆维桢感觉到后背的外套布料被管道内的凝水浸湿了一片,贴在皮肤上冰凉潮湿。 suv引擎重新启动的低响在夜风中显得格外清晰。周承岳没有等发动机预热到正常温度就缓慢驶离了土路,沿着乡镇公路向北行驶了大约两公里之后在一个路口转向了通往市区方向的快速路入口。车辆上了快速路之后他提速到了正常的夜间车流速度,偶尔从后视镜里扫一眼后面的路况。没有尾随的灯光。没有异常。 陆维桢坐在后排,把外套脱下来翻了一面搭在膝盖上晾着。他打开手机备忘录再次核对了一遍替换数据包的协议格式和校验和字段,所有数值都比对无误。他又翻出之前从echo-7盒子背面扫到的二维码解码信息,确认了一遍回传窗口的时间标记——十一月二十八日凌晨三点至五点。替换数据已经成功写入,下一次回传窗口在明天凌晨。 但这只是设备的回传周期。范德米尔本人的行动窗口不一定会等到明天凌晨。陆维桢靠在座椅里闭上眼睛快速过了一遍今天晚上所有的节点——井盖上的对话、管道里的盒子、设备间的终端、未完成的巡更。范德米尔出现在井盖上确认-04的状态,说明他需要确认数据链条上每一个环节正常,然后才会在正式回传窗口开启时接收最终数据包。如果一切正常,他应该会在明天凌晨三点到五点之间出现在某个可以接收数据的地点。 “我们这次截断的只是-04到地面终端这一段的传输。“陆维桢睁开眼睛,“范德米尔拿到替换数据之后如果觉得不放心,他还有可能从地下主机那边直接提取原始数据做交叉比对。“ 周承岳从后视镜里看了他一眼:“你的意思是替换数据只能挡一次。“ “如果他在明天凌晨接收完替换数据之后仍然觉得有问题,他有退路。地下主机里的原始数据如果没有被我们处理过,他随时可以找人下去做物理提取。“ 顾晏从副驾驶座侧过头来:“地下主机的位置我们已经大致判断了,中央三层楼底部的空腔。如果范德米尔明天凌晨来接收数据的同时也派了人去地下空腔做物理提取,那我们替换数据包这件事只能拖住远程链路那一端——不能阻止他拿到原始硬件。“ 陆维桢重新打开手机地图放大了东郊工厂的卫星图像。中央三层楼的地基轮廓在俯视角度下比较清晰,底部似乎有一圈比建筑主体范围更大的阴影区,面积大约相当于主体结构向外延伸了三到四米。这圈阴影区很可能是地下空腔外围的防水保温层铺设范围,这也意味着地下空腔的实际边界比热成像显示的面积更大。 “地下空腔的面积比我们原先估计的至少大了三分之一。“陆维桢把手机侧过去让顾晏和周承岳都能看到,“如果它的入口不止一个,那范德米尔要派人去物理提取的时候未必会走我们今晚走过的那条路。说不定还有第二条、第三条通道。“ 顾晏接过手机放大看了看那圈阴影边界的走向。她的食指点在阴影区南侧一个不太明显的转角处:“这个位置的阴影边缘有一个向内收缩的折角,不符合常规防水层的施工手法。防水层通常会保持平滑的外延轮廓,不会产生这种锐角折弯。这个地方可能本身就是一个不同的结构体——一个附属的设备间或者竖井通道。“ 周承岳在前方的一个服务区入口打了一下方向灯,缓慢减速拐进了服务区。他把车停在一排夜间关闭的商铺前面,熄了火,然后转过来看着后排。“先不走。现在掉头回去太早,回龙科院又太近。在这里等一等,天亮之前做个判断。“ 服务区的灯光稀疏而偏冷白,隔着车窗外层的凝霜看出去路灯的光晕被折射成了一个个模糊的同心圆。陆维桢看了一眼车上的时钟——凌晨三点四十二分。他想象着此刻东郊工厂设备间里的那台笔记本电脑,屏幕上大概还亮着监控画面的缩略图。夜班巡更的人应该刚经过那个区域,在安静的走廊里走完一圈之后回到值班室,然后掏出手机刷一刷。 但他脑子里有一个更紧迫的念头。如果范德米尔不在明天凌晨回传窗口才行动,而是立刻动手。今晚的管道口检查、-04的确认,他自己出现在地面上本身就是一个信号。如果他已经拿到了想要的确认,等不到明天凌晨三点就会提前启动地下主机的数据提取流程。 陆维桢把外套翻回正面重新穿上。凝水还没干透,但至少冷风不会直接吹到皮肤了。“顾晏,“他说,“你刚才在设备间有没有看到那台笔记本上除了-04之外还有没有其他终端的状态指示?“ 顾晏低头想了想,然后从挎包里取出手机翻看了一张她在设备间拍的照片。她把照片放大到监控缩略图那一栏,指着画面底部一行字:“这里。终端列表里除了-04之外还有一个条目,名称标注的是b1-sub。状态显示为红色离线。当时我以为是地下主机的子设备出了问题,但如果b1-sub就是地下空腔内部的那台主机——它的离线状态可能说明它已经被提前取走了。“ 陆维桢凑过去看了那张照片。b1-sub,状态红色,离线时间戳标记为十一月二十七日晚上八点十七分。距离现在大约七个半小时。这个离线时间正好和范德米尔出现在蓉城、宋喆从龙科院北门出去的时间段重叠。 地下主机已经不在原处了。它在今天天黑之前就被人取走了。今晚范德米尔来确认-04的状态,是收网的最后一步。 陆维桢靠在座椅里看着服务区空旷的停车场上那片冷白色的灯光,玻璃上的凝霜把光线柔化成一层模糊的晕圈。光屏在视野里无声地亮了一行字:“离线设备在最后通信记录中向一个蓉城市区内的ip地址发送了确认信号。那个ip地址段属于城中心的国际连锁酒店。“ 第15章 锁孔 服务区的灯光在凌晨四点的风里微微颤动。周承岳没有发动引擎,只是把驾驶座的靠背略微后调了一点,让视线保持在前方路面的覆盖范围内。顾晏把那台频谱仪重新拿了出来,开机后扫了一遍周边环境,屏幕上的噪声曲线平直稳定,没有异常的射频信号。 陆维桢靠在座椅里闭着眼睛,但脑子里“天工“系统的光屏正在持续运作。b1-sub离线时间戳的数据已经被系统做了多轮关联分析,输出结果以简洁的条目形式排列在他的视野里:十一月二十七日晚八点十七分,b1-sub向蓉城中心区某ip发出确认信号。该ip段正好覆盖那家国际连锁酒店的b座客房网络。确认信号的数据包大小只有不到十千字节,内容很可能是位置确认或者身份验证,而不是数据本身。 他睁开眼。“范德米尔把硬件拿回了酒店。“他说,“b1-sub的离线信号发送时间是晚上八点十七分,他在那之前就已经把设备从工厂地下取出来了。今晚他出现在井盖旁边,一是确认-04还在工作,二是看看有没有人在井盖附近做多余的动作。“ 周承岳把座椅靠背调回了竖直位置。“所以他手里现在有地下主机的原始数据。“ “有。“陆维桢说,“但他拿到的数据和我们今天替换进终端的那批数据不是同一份。b1-sub作为地下主机,它存储的数据范围比-04更广。-04只是它的一个数据接收节点,类似于它放在外面的耳朵。b1-sub里面存着过去一段时间内从多个节点采集汇总的全部原始记录。范德米尔拿走了整套数据集。“ 顾晏从挎包里取出手机重新翻看了设备间的照片,把终端列表里那条离线状态的时间戳截图放大。“如果b1-sub在八点十七分发送了确认信号到酒店ip,说明范德米尔到酒店的时间应该早于八点十七分。他把硬件带进房间之后开机通电,它自动连上了酒店的网络并发送了位置确认信号。“ “那他拿到数据之后为什么还要去井盖旁边确认-04?“周承岳问。 “他要确认数据链路上的每一个环节都处于未被触碰的状态。“陆维桢说,“他有原始数据,但如果-04或者终端链路被人动过,那原始数据和链路数据之间的偏差会被记录下来。他需要确认他的整条采集网络从硬件到传输到接收都还是干净的。今晚他确认完-04之后,才会在明天凌晨三点正式接收终端里存的那批数据。两条链路的数据如果一致,说明系统仍然安全。“ 陆维桢说到这里停了半拍。他意识到范德米尔的计划有一个核心逻辑前提:他必须等到明天凌晨三点接收到终端数据之后,才能对比两组数据做一致性判断。这意味着——从现在到明天凌晨三点之间,范德米尔还不会对酒店房间里的b1-sub硬件做任何处理。他需要那个硬件里的原始数据留着,等到明天凌晨接收完终端数据之后做比对。 “硬件还在他酒店房间里。“陆维桢说,“他没动过它。因为他需要等终端数据到齐之后再一起处理。“ 周承岳的车钥匙在点火开关上转动了半圈,引擎低鸣着启动了。他没有说话,但车的方向已经明确——返回市区,朝城中心方向驶去。快速路上的车流在凌晨四点多仍然稀疏,深色suv以稳定的速度穿过一段段路灯照亮的桥面,城区建筑的轮廓开始在前方的天际线处密集起来。 陆维桢在手机上打开了那家国际连锁酒店的建筑结构图纸,是通过公开的地产备案信息查到的。酒店b座一共十二层,标准层平面呈回字形布局,客房分布在回字形外围,中间是采光天井。范德米尔登记的房间号在六层,朝向西南,正好对着龙科院方向和东郊工厂方向之间的夹角。 “如果硬件被带进房间之后开机通电就自动发送了确认信号,“顾晏说,“那它现在应该还在房间内。酒店客房不像实验室,没有电磁屏蔽,它的射频信号如果还在工作,频谱仪在外部就能收到。“ 陆维桢看向顾晏挎包里的那台手持式频谱仪。他在心里估算了一下酒店建筑结构和外部街道之间的距离:六层楼,西南朝向,靠近酒店内部天井的墙壁厚度大约二十五厘米,外侧幕墙是玻璃幕加金属龙骨。射频信号穿透这些结构之后到达街面的衰减量应该仍然处于可测范围内。 “车停酒店对面那条街。“陆维桢说,“面向西南方向,六层高度的位置。如果信号还在,我们在街对面应该能捕捉到。“ 周承岳在一个路口减速后转向了酒店北侧的一条平行街。车辆在一排夜间关闭的商铺前面停了下来,车头朝酒店方向。从这个角度看上去,b座六层西南方向的窗户正对着他们所在的街面,之间有大约四十米的直线距离。 顾晏把频谱仪的天线从车窗缝隙伸出去,对准酒店b座六层西南方向的窗面启动了扫描。屏幕上跳出了噪声基底之上的微弱信号峰值,频率稳定在一个与echo-7设备工作频段吻合的窄带范围内。信号强度不高,但持续存在,间隔特征和设备待机状态下的周期性心跳信号完全一致。 “硬件还在房间里。“顾晏把屏幕侧向陆维桢,“信号强度显示它的位置在六层西南侧,正对着我们。没有任何移动或者被屏蔽的迹象。它还在原地等明天凌晨的数据比对。“ 陆维桢透过前挡风玻璃看向那扇窗户。六楼西南方向的窗帘是半拉的,透出一线暖黄色的室内灯光。看不到人影,看不到活动痕迹。整个酒店外观在凌晨的街道灯光下沉睡着,只有大堂门廊的顶灯亮着将一小片地面照成暖白色。 他把目光收回来,落在自己的手背上。车内的暖气把窗玻璃上的凝霜融化了一层,水滴沿着窗面流下来,把酒店的外轮廓模糊成一条条垂直的亮线。 “b1-sub的确认信号发送给酒店ip之后,“他开口时声音不大,“服务器那边会收到一个回执,内容应该是设备已上线,等待数据接收指令。范德米尔如果想在明天凌晨三点接收数据时让b1-sub正常工作,他不能把它关机。它要保持在线状态等待指令。“ 周承岳在驾驶座上沉默了一下。“那你有没有办法让它“换一个人等待指令“?“ 陆维桢看着那扇半拉的窗帘。车窗上的水滴继续垂直流淌着,把窗帘和灯光拉成一道道模糊的流光。他脑子里正在快速评估一个操作的可行性:酒店房间距离街面四十米,设备发出的射频信号被他用频谱仪捕捉到了,那么反向——如果他从街面上向酒店房间发送一个伪造的指令包,只要功率和协议匹配,b1-sub会把它当作来自服务器的合法指令来响应。 “需要两个条件。“他说,“第一,我要知道它的指令格式——今天从-04和终端数据里我们已经拿到了足够多的协议样本。第二,我要在它接收指令的频段上以适当的功率发送伪造数据包。“ “用定向天线。“顾晏说,“频谱仪的射频输出口可以做发射源,配合一只定向天线聚焦射向六楼那扇窗户。功率控制好,确保信号到达时刚好在设备的接收灵敏度以上,不会让房间内的其他电子设备产生误响应。“ “需要多近距离?“周承岳问。 “不需要更近。“陆维桢说,“四十米,定向天线的波束半径在三米以内,刚好覆盖那扇窗户的区域。我坐在车里就能完成发射。“ 他重新看向那扇窗帘半拉的窗户。暖黄色的灯光稳定地从缝隙里透出来,把窗帘边缘的一小段轮廓照得清晰可见。他的手指悬在笔记本的键盘上方,准备开始构造伪造指令包。外面的路灯在凌晨的低温中发出稳定的白光,酒店建筑整体的轮廓在夜空中安静地矗立着,六楼西南朝向那扇窗户透出的灯光像一只半阖的眼睛注视着街对面深色suv里坐着的人。 但陆维桢在准备开始输入之前,忽然注意到了另一件事。那扇窗帘透出的灯光在窗面左上角有一个极小的暗斑——不是玻璃上的污渍,而是从房间内部投射在窗帘上的一个形状规整的物体剪影,大小和轮廓近似于一台台式机箱或同等尺寸的设备。它贴在窗帘内侧,没有移动,没有变化,和灯光一起稳定地存在于那里。 他盯着那个暗斑看了几秒。天工系统的光屏自动拉近了那个区域的图像对比度,暗斑的边缘被锐化后呈现出清晰的矩形轮廓,侧面还有一组隐约可见的通风孔阵列——那种标准服务器机箱的散热格栅形态。b1-sub就放在窗帘内侧的桌面上,正面朝向龙科院的方向,正在安静地等待明天凌晨三点接到的指令。它的散热格栅在窗帘上留出的暗斑像是嵌在光线里的一个方形印记,比周围亮着的部分暗了一整圈,像是在告诉对面街上的每个人它所处的位置。 第16章 猎时 暗斑在窗帘上保持着恒定不变的矩形轮廓。陆维桢盯着它看了大约三十秒,确定那不是风吹动窗帘造成的晃动光影——它的边缘锐利、稳定,和窗帘布料的自然褶皱完全叠加在一起,没有相对位移。他把视线收回来,落在笔记本电脑屏幕上,开始构造伪造的指令包。 指令包的结构在他脑中由“天工“系统实时补充完善。从-04盒子抄录下来的协议样本提供了完整的握手流程和指令字段定义,系统根据这些字段逆推出了b1-sub作为下游设备所接受的指令格式类型。需要伪造的指令内容很简单:一个“数据同步启动“指令,附带一个回传坐标字段——把回传目的地指向龙科院北区三号楼地下三层的ip地址。 “把它的数据引回我们那边。“陆维桢一边输入一边低声说,“不是窃取,是让它主动送过来。“ 顾晏从挎包里取出那只定向天线,用吸盘支架固定在副驾驶座的车窗玻璃内侧。天线对准了酒店b座六楼西南窗面的方向,她在手机上打开了一款简易的瞄准辅助应用,利用手机陀螺仪把天线的指向角度校准到目标窗户的精确方位。整个过程无声而迅速。 “定向天线的波束宽度大约十五度,“她说,“在四十米距离上覆盖半径约五米。那扇窗户的宽度大约一点八米,在波束中心覆盖范围内。信号到达时功率控制在设备的接收灵敏度以上约六个分贝,不会溢出到相邻房间。“ 陆维桢把伪造指令包的最后一行校验值写完。他在一个测试终端上模拟了一遍协议层的完整流程,确认指令包能被目标设备正确解析。系统光屏给出通过标记之后,他抬头朝顾晏点了一下头。 “可以发射了。“ 顾晏把天线连接到频谱仪的射频输出口,在频谱仪面板上设置了发射功率和中心频率。陆维桢从笔记本上把指令包通过数据线传到频谱仪内部,然后按下了发射键。射频信号从天线端发出时车内没有任何声音变化——只有频谱仪面板上的发射指示灯短暂地亮了一下又熄灭。整个发射过程持续了不到两秒。 车载的频谱仪在接收模式下同时捕捉到了返回的握手信号。陆维桢盯着屏幕上的波形变化:b1-sub收到了伪造的指令包,解析了指令内容,然后按照指令里指定的回传坐标开始发送数据。酒店房间内的设备在没有被任何人物理触碰的情况下,正在把存储的全部原始数据通过无线信道往外发。数据包的目的地坐标在龙科院北区三号楼的ip地址。 “数据回传开始了。“陆维桢低声说,“传输速率大约每秒五十千字节,总数据量按b1-sub的存储容量估算大概在几百兆左右。全量传输大约需要一到两个小时。“ 周承岳从驾驶座侧过身看了一眼仪表台上的时钟。凌晨四点三十三分。到六点半左右可以完成全量传输,留出几个小时的缓冲时间再等范德米尔在凌晨三点拉取终端数据。他重新坐直了身体,把座椅略微调低了一档,让自己在等待期间保持一个可以随时启动的姿态。 顾晏把频谱仪切换到了被动监听模式,屏幕上的数据流进度条开始缓慢增加。她看着那些数据包逐行通过,每一帧的校验和都显示为绿色通过。“他设备里的东西正在过来。原始数据、历史记录、配置参数、可能还有它和其他节点之间的通信日志。“ “如果有通信日志,“陆维桢说,“就能还原出过去一段时间内整套数据采集网络的拓扑结构。“ “包括它跟哪些节点交换过数据、交换频率和周期、以及那些节点的位置。“顾晏把频谱仪的屏幕往陆维桢的方向倾了倾,“日志应该按时间顺序排列。最早的条目可能覆盖到几个月前,甚至更久。“ 陆维桢看着数据流持续在频谱仪屏幕上跳动。他不知道范德米尔什么时候会发现传输通道已经被占用,但至少在接下来的一个多小时里,酒店房间内的设备会继续安静地向外输送数据。只要没有人主动检查那台设备的工作状态指示灯或者网络连接状态,这个过程就能持续到传输完成。 四点五十分。数据传输进度到了大约百分之十七。陆维桢把视线从频谱仪屏幕上移开,透过前挡风玻璃再次看向酒店六楼西南方向的窗户。窗帘上的暗斑仍然在原处,形状、位置、边缘都没有变化。窗外的街面上依然没有人走动,整条街道在凌晨时分的灯光下沉睡着。 但他注意到了一点不同——窗帘底部有一道极其细微的褶皱偏移。那道褶皱之前是向左侧倾斜的,现在变成了向右侧略微偏转,偏移量大约只有一两厘米。这个变化太小了,如果不是因为他刚才盯着窗帘看了足够久,几乎不会注意到。但褶皱改变了方向意味着窗帘被碰过。而窗帘内侧唯一可能碰触到它且不留下明显痕迹的东西,就是那个b1-sub机箱在被人移动时布料随着箱体表面摩擦产生的位移。 房间里有人的脚步移动了机箱的位置。幅度很小,大约几厘米,但足以让窗帘的布料在接触面上被推出一道新的褶皱方向。 “房间里有动静。“陆维桢的声音压到最低,“机箱被人碰了。量不大,但移动过了。“ 周承岳没有回头,但他的右手从方向盘上移到了挡位杆旁边的位置。“他在房间里。“ “不一定是他。“顾晏说,“也可能是酒店客房服务或者安全巡检。“她停顿了一下,看了一眼车上的时间,“凌晨四点五十,不是常规的客房服务时段。“ 陆维桢重新看向那扇窗户。窗帘没有再出现新的褶皱变化,暗斑的形状也没有继续移动。房间里的人在碰了机箱之后没有再动它,可能只是做了一个检查——确认设备仍在正常运行。检查完毕之后他退回去了,窗帘恢复了稳定的静止状态。 数据流还在继续传输。进度到了百分之二十一。频谱仪屏幕上的波形平稳地延续着,每一个数据包的校验和都正常通过。 “如果他检查了设备,“陆维桢说,“可能会看到它的网络活动指示灯在闪。正常情况下待机状态的设备网络指示灯应该是慢闪,现在它正在全速传输数据,指示灯会变成快闪。这个变化在设备正面是可见的。“ 周承岳的手从挡位杆旁边收了回来,转而在方向盘上握紧了一下又松开。“那我们应该假设他已经看到了。“ 陆维桢盯着窗帘上那个暗斑。它在暖黄色的灯光背景下保持着矩形剪影的轮廓。然后那个轮廓突然动了——从桌面上升起了大约十五厘米,平移了大约半米,然后重新落下。机箱被拿起之后放到了另一个位置。这个动作的幅度比刚才的褶皱偏移大得多,明确地表达了“移动它“的意图。 他把笔记本的屏幕亮度调到最低,快速打开了数据流记录的实时日志。传输进度在百分之二十四的位置出现了一次短时中断——中断时间约两秒,然后重新恢复。中断是设备端主动发起的,像是有人在机箱上按了电源键或者网络接口被插拔了一次。但中断只持续了两秒,说明那个人在插拔网络线缆之后发现信号自动恢复了,没有继续操作。 “他发现网络接口被占用了。“陆维桢说,“但他不确定原因——接口拔掉再插上之后数据流自动恢复,他可能以为是设备本身的定时任务或者系统故障。这种两秒的插拔操作更偏向于试探,而不是终止。“ 窗帘恢复了静止。机箱没有再被移动。但窗帘内侧的光影中多了一个新的影子——人的头部和上身的轮廓,在窗面和窗帘之间形成了一道微弱的光学阻隔。有人正站在窗帘后面,面朝窗外,看向街对面的方向。那道影子停在窗帘内侧大约两指宽的距离处,没有贴上去,没有动作,只是安静地面朝着街面。 周承岳把引擎从熄火状态无声地切换到了待机供电模式,确保所有车内照明全部关闭。三个人在黑暗的suv内部保持着绝对静止,从外面看这辆车和周围其他夜间停放的车辆没有任何区别。窗帘后面的那道影子站了大约十几秒,然后退回了房间深处。窗帘恢复到了只有暗斑的原始状态。 陆维桢慢慢呼出一口气。频谱仪上的数据传输进度仍然在稳步增加,刚才的两秒中断没有影响到整体传输的持续性。数据流底部跳出了一行新的日志条目:传输日志显示有一组新的指令在刚才的插拔操作之后从b1-sub发出,目的地坐标指向了一个全新的外部地址——那组地址的格式跟龙科院的数据回传地址完全不同,它指向的是一组加密的云端存储节点,坐标解析结果为境外的商业云服务商。 b1-sub在被人物理接触之后自动触发了备份机制,把数据传输到了另一个位置。它在被人检查的时候,已经同步把自己复制了一份送到了暗潮的远端服务器上。 陆维桢看了一眼车上的时钟。传输进度到了百分之二十九,剩余数据量还需要大约四十分钟才能完成。但被送到云端存储节点的那份备份,现在已经永久离开了蓉城。窗外酒店六楼的窗帘依旧半拉着,暖黄色的灯光从窗帘缝隙里漏出来,像一只闭不上的眼睛。 第17章 断链 窗帘后面的暖黄色灯光在五点左右变成了暗色——不是逐渐调暗,而是一次性熄灭。房间内的照明被人从内部关闭了。伴随着灯光熄灭,陆维桢手中的频谱仪屏幕上的数据流进度条也同时归零。传输中断。b1-sub的信号从酒店六楼西南窗面的方向彻底消失。 “他关机了。“顾晏的声音在黑暗中压到最低,“或者拔掉了电池。信号完全消失,设备进入了物理断电状态。“ 陆维桢盯着频谱仪屏幕上那条突然断裂的数据流曲线。最后接收到的进度是百分之四十一,传输了一部分,但剩下的大半数据仍然留在了酒店房间的那台硬件里没有出来。而那台硬件现在处于断电离线状态,它内部的存储芯片里存着的原始数据不再通过任何无线信道发送。 范德米尔发现的比他想象的多。他拔掉网线又重插之后看到数据流自动恢复了,但他没有坐视不管。他紧接着做了一件更彻底的事——直接切断了设备的电源。这说明他在拔插网线的两秒内确认了数据流向是异常的,然后立刻做物理层面上的完全切断。他不再做任何软件层面的试探,直接关掉了整台机器。 周承岳已经启动了引擎。车辆在街道上以怠速向前移动了大约三十米,停在酒店b座大堂入口侧面一处视线更好的位置。从这个角度可以同时看到酒店大堂的正门和地下车库的出口坡道。大堂内部的灯光仍然亮着,前台有一名值班人员坐在电脑后面,姿态和之前一样没有变化。六楼那扇窗户现在全黑,窗帘的轮廓在建筑外墙的阴影里融成一片无法分辨的暗色。 “他可能会走地下车库。“顾晏说,“b1-sub机箱尺寸大约相当于一台小型台式机,用手提包或者行李箱可以带出来。走大堂太显眼,车库更隐蔽。“ 陆维桢把目光从六楼移到地下车库出口坡道的位置。坡道口有一盏灯,照在混凝土路面上的光斑呈椭圆形。坡道深处暂时没有车灯的反光,也没有引擎声从地下传来。他收回视线时注意到酒店侧面的消防通道门有一个微小的动作——门缝从内部被推开了一指宽的间隙,然后停住了。 他抬手朝周承岳的方向示意了一下,指尖指向消防通道门的位置。周承岳的视线快速扫过去,左手无声地把车窗降下了大约三厘米,让外面的空气和声音可以更直接地传进来。 消防通道门从内部被完全推开了。一个人影从门内闪出来,穿着一件深灰色的长款外套,左手拎一只黑色尼龙提包,包体侧面有一个方形的硬质突起轮廓——尺寸和b1-sub机箱的长宽高吻合。人影没有走向地下车库坡道,也没有走向大堂正门。他沿着酒店建筑侧面的步行通道朝北走,脚步不快不慢,姿态自然,像是一早出门的普通住客。 “他走了步行方向。“陆维桢低声说,“没有开车,可能是为了减少被车辆识别追查的可能性。“ 周承岳把车缓慢地沿路边朝北滑行了一段距离,保持在和那人步行速度平行的节奏上。人影继续沿着人行道向北走了大约一百五十米,在一个公交站台处停住了。站台上空无一人,早班公交车的首班车时间大约在五点半之后,但此刻五点刚过。他在站台上站定之后把提包放在脚边的地面上,从外套口袋里掏出一部手机,低头操作了片刻。 顾晏把手持式频谱仪重新举起来,天线对准公交站台方向扫了一下。屏幕上跳出了一组短暂的窄带信号——持续了大约三秒,然后消失了。“他在发送一条短报文。频段跟之前echo-7设备的握手频率一致,但功率很低,应该是手机端的加密通讯应用在发送短消息。“ 发送完消息之后,人影把手机收回口袋,弯腰拎起提包,然后没有继续等公交车——他离开了站台,沿着一条小巷拐入了建筑群背后的老街区。老街区道路狭窄,两侧是早期建的居民楼和底层商铺,巷道路面狭窄到车辆无法驶入。周承岳在一百多米外的位置减速停下,没有再跟进去。 “放弃跟进了。“陆维桢开口说,“他特意走步行方向、在公交站假装等车、然后拐入车辆进不去的街区,都是为了确认有没有车跟踪他。如果他发现任何车辆减速或者转向的节奏变化,他就能判断出来。不走地下车库是对的。“ “他发消息的接收方呢?“顾晏问。 “从信号强度和频段判断,短报文的接收方距离不远。如果是远程转发,功率不会这么低。接收方就在这附近——可能在相邻的街区甚至同一栋建筑的另一个房间。“ 陆维桢把这句话说完之后沉默了。他知道范德米尔发送那条短报文的内容是什么:可能是在汇报数据链路被破坏、b1-sub被迫断电撤离、以及后续的接应路线。接收方就在附近,说明今晚在酒店周围活动的暗潮成员不止他一个人。 周承岳把车停在老街区入口附近一处可以观察到巷口的位置。引擎持续怠速运转,车内暖气保持着恒温。天色在窗外开始从纯黑变深蓝,然后缓慢地亮起一层薄薄的灰白。街面上出现了早起的环卫工和零星的晨跑者,清晨的城市正从夜间模式切换回白天的节律。 六点十二分的时候,周承岳的加密手机震动了一次。他接起来听了不到十秒,挂断之后把手机放回夹克内袋。“技术组说b1-sub传输过来的那百分之四十一数据已经完成了解析和初步整理。里面包含了过去三个月内暗潮在这座城市布设的部分设备清单和坐标记录。其中几个坐标的位置不在工厂区,也不在龙科院周边——它们分布在蓉城西部的工业区里。“ 陆维桢把那句话在心里过了一遍。蓉城西部的工业区在地理上与龙科院完全相反的方向,与东郊工厂之间隔着一整座城市的纵深。暗潮在蓉城布设的节点不止一套设备,他们有两个方向的数据收集点——东边和西边同时运行。东边的节点主要负责龙科院方向的数据采集,西边的节点负责另一些目标。 “西边还有什么值得他们长期布设采集点的单位?“陆维桢问。 周承岳从后视镜里看了他一眼:“那边有一座航空动力研究所,做涡扇发动机核心机的。“ 陆维桢靠回座椅里。光屏在视野里亮了一行浅灰色文字,字数不多:“b1-sub传输的数据中有一份坐标记录对应西部工业区某建筑物地下两层的设备间。该建筑的产权归属信息与一家航空材料供应商相关联,该供应商曾多次参与涡扇发动机叶片材料的军工配套项目。“ 他把那行字看完,没有念出来。车窗外的晨光正在逐渐增强,街面上的行人车辆逐渐增多,老街区入口的巷口恢复到了日常城市街道的状态。公交站台上有一个拎菜篮的老人正在等车,公交车从远处开过来的声音沿着马路传过来。范德米尔消失在老街区深处的身影已经彻底融入了早间人流,找不到任何区分于普通路人的特征了。 但陆维桢记住了那份坐标记录。百分之四十一的数据量比预期的少,但其中包含的关键信息密度足够高,已经让暗潮在这座城市里的节点布局露出了明确的一角——西部还有一套他们在运行的系统。那套系统不在龙科院周边,它的目标在航空动力方向。 周承岳启动了车辆,朝龙科院方向驶去。后排座位上陆维桢把笔记本电脑打开重新扫描了一遍传输数据的目录结构,在文件夹列表深处看到了一个子目录,命名格式和其他的不同——一串以“echo-7“结尾的编码之后跟着一个后缀:“/west-sub-01“。这个目录的内容没有被完整传输过来,只有前几层目录树的结构信息。但从命名方式来看,它对应的坐标位置指向蓉城西部那座工业建筑的地下二层。 他把笔记本电脑合上。窗外的晨光已经完全亮了,街道两侧的商铺开始陆续卷起卷帘门,早餐铺子的热蒸气从门檐底下冒出来在冷空气中凝成白雾。东方的天际线被初升的太阳染成一层浅淡的橘红色,把蓉城早间街道的轮廓描绘得分外清晰。 酒店b座六楼西南朝向的窗户在晨光中恢复了窗面的正常颜色。窗帘仍然半拉着,但房间内已经不再有任何信号发出。没有人知道范德米尔此刻在老街区深处的哪条巷子里,也可能已经换了一辆出租车继续移动,也可能坐在某间不引人注意的早点铺里吃一碗面,然后翻开手机看那条短报文有没有收到回信。 陆维桢在车后排闭了一下眼睛。天工系统光屏仍然亮着,底部有一行极细的灰色文字安静地浮现出来:“蓉城西部航空动力研究所周边的信号背景噪声水平在最近三小时内发生了规律性波动。波动模式与b1-sub离线前的最后一次心跳信号时序吻合。“ 有人已经抵达了西部那套系统所在的位置。时间恰好是范德米尔发出短报文之后的三小时以内。 第18章 剖影 suv驶入龙科院北区停车场时晨光已经完全亮了。园区内部道路上有穿深蓝色工装的保洁人员在清扫落叶,几辆带有院徽的白色面包车停在食堂门口,热气从排气口冒出来在冷空气中凝成雾气。周承岳把车停在员工通道入口附近,熄火后从前排扶手箱里取出一只加密存储盘递给陆维桢。 “技术组把b1-sub传过来的数据全部转存到了这只盘里。“他说,“原始数据和解码后的结构树都放在里面。你回地下三层用工作站跑分析,西部工业区那套系统坐标相关的文件夹已经做了标签。“ 陆维桢接过存储盘握在掌心,盘体的金属外壳在晨间的温度里微微发凉。他和顾晏从员工通道回到地下三层,大厅里的照明已经切换到了日间模式的白亮灯光。重岳骨架在原地矗立着,右膝的磁流变液关节预装件在灯下泛着暗金色纹路,左膝外壳完整闭合,漆面上的细痕在正常光线下完全不可见。 他把加密盘插入工作站的读卡器,文件系统自动挂载。技术组已经完成了数据的初步结构化整理,目录树按照设备类型和地理位置做了分类索引。陆维桢打开标有“west-sub-01“标签的文件夹,里面包含了一份坐标记录和一组设备配置参数文件。坐标指向蓉城西部工业区的一条具体街道门牌号,建筑用途登记为“航空材料性能测试中心“,物业所有者是一家注册在本地的检测服务公司,但其股东结构中的一家出资方与东郊工厂的境外母公司之间存在间接关联。 “西部系统用的设备型号和b1-sub几乎完全一样。“顾晏站在他身后看着屏幕,指了一下配置文件中的硬件参数栏目,“工作频段、数据格式、存储容量、甚至固件版本号都是一致的。两套系统可能是同一批采购、同期部署的。“ “硬件一致说明软件架构也相同。“陆维桢点开了设备配置参数中的一个子项——通信协议版本号字段,“固件版本号是完全相同的数字,意味着只要我们能拿到西部系统的物理接入点,之前用在b1-sub身上的指令包格式大概率也能在那边用。“ 他向下滚动文件列表,在坐标记录的下方找到了一组附件,是技术组根据b1-sub的通信日志还原出的西部系统近期的活动摘要。摘要显示西部系统的数据采集频率比东部的系统低,大约每四十八小时才做一次完整的数据回传,但在回传间隔期间它保持着一组低频心跳信号和主控端之间的稳定联络。最近一次心跳信号的时间戳是今天凌晨三点零七分——正好在范德米尔发送短报文之后约两个小时。 “凌晨三点零七分的这次心跳,“陆维桢把时间戳圈了出来,“距离短报文发送时间有两个小时左右。说明接收短报文的人花了约两个小时赶到西部系统所在的现场做了设备状态检查,然后系统发出了心跳确认。范德米尔的那条消息是通知西边的人东边已经暴露了,检查你们那边的设备状态。“ 顾晏弯腰凑近屏幕看了一遍那次心跳信号携带的附加数据字段。心跳信号本身除了常规的状态确认之外还附带了一组小型的元数据块——内容看起来像是系统当前存储容量的使用率。“元数据里显示系统存储使用率比常规状态下低了大约百分之三十。说明有人在出发到现场之前、或者到达之后,删除了系统内的一部分历史数据。他们在做清理。“ 陆维桢靠在椅背上闭了一下眼睛,快速梳理了一下现有的信息链条。范德米尔在东边暴露、发送短报文通知西边团队、西边团队在两小时内到达现场做了设备检查和部分数据清除。西部系统目前仍然在线工作,但已经被清理过的存储区里存着的信息可能不完整了。不过如果能在他们完成全面清洗之前截停那套系统,仍然有可能获取到尚未被清除的那部分数据。 “西边系统还在线,“他说,“心跳信号照常发送说明他们还没有决定关机撤离。他们可能还在评估东边暴露的程度——如果他们认为东边的泄露没有波及西边,这套系统就还会继续运行一段时间。“ 顾晏拿起手机发了一条消息给周承岳,内容询问西部系统所在建筑的安保情况和外围监控覆盖范围。几分钟后周承岳的回复弹出来,附了一份从市规划部门调取的建筑竣工图纸。图纸上显示那栋建筑地上四层、地下两层,地下二层对应的位置在建筑平面图上标注为“设备间-电控室“,与b1-sub坐标记录吻合。 陆维桢把竣工图纸放大后逐层看了一遍。地下二层有两条疏散通道:一条通过楼梯间连接地上部分的常规出口,另一条通过一条设备管廊连接建筑北侧围墙外的一处独立配电房。这种双出口配置和东郊工厂的地下空腔设计非常相似,说明两套系统的选址和布建规范遵循了同一套操作手册。 “他们用的施工规范是统一的。“陆维桢说,“配电房那条通道的走向、长度、甚至管道口位置的选择逻辑都差不多。如果我们今天能进入西部系统所在的地下二层的管廊入口,大概率可以沿管道内部接近设备间——路线结构和东郊的那条几乎一样。“ 顾晏从操作台侧面抽出一张空白纸,在纸上画了一个简化的建筑平面布局示意图。“西部系统和东边系统在硬件和架构上的高度相似意味着指令包格式也能通用。如果我们能让西部系统像b1-sub一样执行一次数据回传,在它被清洗之前把剩余数据拉取出来——“ “同步进行。“陆维桢接上了她的话,“今天之内完成。越快越好,西边的人现在处于评估状态的窗口期。他们还在判断东边泄露的程度,没有立刻关机。这个窗口一旦关闭,他们会做和b1-sub同样的处理——物理断电撤离。“ 他把工作站上的西部系统实时状态监测界面打开,通过之前从b1-sub协议样本中获得的握手机制向西部系统发起了一次低权限的试探性查询。界面上返回了一个简短的确认信号,说明系统仍在线且正在正常待命。确认信号的元数据中附带了一个时间戳,显示系统最近一次被管理员访问是在凌晨三点零九分——正好是心跳信号发送后的两分钟内。那个时间点,有人在那套系统前面坐过。 陆维桢把试探查询的结果截图保存,然后关闭了界面。“现在出发还来得及。“ 顾晏已经站了起来,把她的挎包重新收好,里面装着频谱仪、信号耦合器、和之前使用过的那组定向天线。“我去跟周组长说一声,车在员工通道门口等。“ 她转身朝电梯走去。陆维桢坐在操作台前把加密存储盘从工作站上拔下来收进口袋里,关机的时候屏幕暗下去之前的最后一帧画面停留在西部系统的架构拓扑图上——一个极简的设备节点标识符悬挂在建筑平面图的红线标定区域中央,旁边附着一行已经被技术组标注过的备注文字:“系统名称:echo-7-west-01。部署日期:约九十天前。“ 九十天。三个月前暗潮就在蓉城西边布下了这套系统,而三个月前的陆维桢还在学校报告厅里被苏媛当众用麦克风羞辱。有人在那个时间点就已经计划好了在这座城市的两个方向同时建立数据采集节点。东边的节点盯着龙科院,西边的节点盯着航空动力研究所。两个节点之间的数据流在中途经过某个集合点汇总后再向外传送。那个集合点的位置在东郊工厂的地下空腔里,也就是b1-sub原本待着的地方。 现在东边的集合点被撤离了,西边的节点正在被清理。但清理还未完成,设备还在线上。陆维桢知道今天之内如果动作足够快,就还有机会从西边系统拿到最后一批数据。他站起来走向电梯,经过重岳骨架时伸手在右膝暗金色的关节外壳上轻轻碰了一下作为确认。骨架安静地矗立在灯下,预装件的表面温度因为通宵的待机状态而比室温略高了几度,从指尖传来一丝极微弱的暖意。 电梯门在他身后合拢时,光屏弹出了一行字:“西部系统的心跳信号周期已经偏离了常规间隔。上一次心跳比预定时间晚了六分二十秒。系统可能正在被人以更高的频次检查状态。“陆维桢看着那行字在视野里停留了几秒后消失,电梯下行到达地面层的提示音刚好响起。 第19章 同构 黑色suv驶出龙科院北门的时候,早高峰的车流正在从四面八方汇入城市主干道。周承岳没有走快速路,而是选择了一条沿着老城区的次干道向西延伸的路线,车速被控制在跟车流基本持平的范围内。陆维桢坐在后排,笔记本电脑打开放在膝上,屏幕上是西部系统的设备配置参数表——他在利用这段路程做最后的协议校验。 “刚才那组心跳信号的偏差是六分二十秒。“他说,“如果系统在被更频繁地检查,那心跳间隔的波动可能会继续扩大。接下来的心跳窗口可能还会延迟,也可能提前。我们的行动窗口就在两次心跳之间的间隔里。下一次心跳在什么时候?“ 顾晏从副驾驶座把手机上的计算结果递过来:“按照最近一次心跳的时间加上常规间隔,下一次预定心跳应在今天上午九点四十分左右。目前偏差率还在扩大,实际可能推迟到九点五十之后。从现在到九点四十分之间大约有两个小时的时间窗口。“ 九点四十分。陆维桢看了一眼笔记本屏幕右下角的时间,七点三十一分。两个小时的窗口足够完成接近、接入、数据提取和撤离的全流程,前提是路径畅通、系统未被提前关机。 车辆在七点五十分左右到达了西部工业区边缘。这片区域以中小型制造企业和仓储物流设施为主,街道两侧的建筑物多为两到四层的混凝土框架结构,外墙涂料普遍褪色或剥落。目标建筑是一栋浅灰色的四层楼,正门上方挂着一块褪色的蓝底白字招牌:“蓉城航空材料测试中心“。招牌边缘的金属框架有一处弯折,表面覆盖着积尘,看起来像是有一段时间没有维护过了。 周承岳没有直接把车停在建筑附近。他在相隔一条街的位置找到一处废弃的厂区入口把车停进去,熄火之后三人徒步沿街区外围接近目标建筑。陆维桢手里拿着手机上的竣工图纸对照实景,确认建筑北侧围墙外那处独立配电房的位置——图纸上标注的管廊入口就在那里。 配电房比东郊工厂那边的略小,是一间约三米见方的砖混小屋,外墙被爬山虎的枯萎藤蔓覆盖了大半。北侧围墙和配电房之间的巷道极为狭窄,宽度不足一米五,路面铺着碎石和干枯的落叶,踩上去有轻微的窸窣声。陆维桢侧身挤过巷道,在配电房北侧墙根处找到了图纸上标定的管廊入口位置:一块尺寸约六十乘六十厘米的混凝土盖板,表面被积尘和落叶覆盖得几乎看不出缝隙。 他蹲下来用手套边缘清理掉盖板表面的覆盖物,露出了盖板与地面之间的接缝。盖板边缘有一道被撬起过的新鲜痕迹,金属撬具在混凝土角部留下了几处小缺口,缺口边缘的碎屑还没有被风化侵蚀——时间很近,可能在二十四小时以内。 “这个入口已经被人打开过。“陆维桢低声说,“跟b1-sub的处理流程一致——检查完设备状态之后清理现场的人也会确认管廊入口是否正常可开。他们来过。“ 周承岳蹲在巷道的出口方向观察外部的动静,目光扫视着配电房东侧和建筑北墙之间的整个视野。顾晏在陆维桢对面蹲下,用手套垫着指腹探了一下盖板缝隙内部的密封条状态。“密封条被重新压回去的痕迹还在,是新的。压回去的时候力道比安装时稍大,边缘有一部分翻卷起来没完全压平。“ 陆维桢用一把扁口工具轻轻撬起盖板边缘。混凝土盖板被抬起了一道缝隙,下方露出管廊入口的内部空间——一条水泥预制管道的起始端,直径约八十厘米,跟东郊工厂的那条管道规格完全一致。他把盖板抬起到足以侧身进入的角度,先用手机拍了一张管道内部方向的照片。管道内部有极微弱的残余照明从深处透过来,亮度不足以照清管壁,但足以在黑暗背景中形成一个可以辨认的光源方向。 “管道内部有应急灯在亮,“陆维桢把手机收起来,“说明地下二层的设备间目前仍然通电。系统还在运行。“ 他侧身进入管道,动作和上次在东海管道里爬行时已经形成了足够自然的肌肉记忆。顾晏跟在他后面,周承岳断后,入口盖板在最后一个人进入之后被从内侧拉回来虚掩着。管道内部的空气比外部湿润,带着泥土和水泥的混合气味,管壁上的凝水分布比东郊那边更均匀——说明这条管道的密封性更好,外部渗透较少。 管道前进了大约十几米后转为水平段,方向转向建筑主体下方。陆维桢用手电照着前方,在管道侧壁上看到了和东郊管道里一样的金属盖板——尺寸、安装方式、位置高度都如出一辙。盖板上同样覆盖着一层防尘棉垫,但他没有停下来检查。这套系统的硬件部署是标准化的,管道内部的节点布局遵循同一套施工模板。盖板下面的设备形式应该和-04类似,但西部系统的运行时间更长、管理人员的干预频率更高,盖板边缘的固定螺丝有被反复装卸过留下的磨光痕迹。 管道末端的光源随着他的靠近逐渐变亮。他在出口处停住,把手机探出管口用前置摄像头拍了一张设备间内部的全景照片。画面显示设备间的布局和东郊工厂基本一致——靠墙的机柜、中央的桌面终端、墙上的应急灯和监控屏幕。但有几个明显的差异:桌面上的屏幕数量更多,机柜的侧面多了一组外接存储设备,墙上张贴的便签纸密度更高、颜色不同。 陆维桢从管道口爬出来,落地时快速扫了一遍整个房间。终端屏幕亮着显示着一组实时数据流界面,界面上正在运行的进程名和他在东郊设备间见过的有部分重叠,但也有几个新的标识符,其中一条标注着“west-data-cache“,显示的数据块大小约两百兆。他凑近了看那组数据流的窗口标题,底下有一行备注文字:“下次传输倒计时。已清除记录已标记。“ 系统正在被清洗。那组两百兆的数据块旁边有一行操作日志,显示凌晨三点十一分开始执行了一项批量删除任务,任务状态现在是“已完成百分之六十“。他们已经清掉了六成历史数据,还剩四成在原位等待下一轮清洗。陆维桢快速扫了一遍剩余数据块的命名结构——大部分是传感器日志和通信记录,时间覆盖范围从一个月前到最近一周左右。 “它们还在清。“陆维桢坐下来操作桌面终端的键盘,调出了系统的文件管理界面。“百分之六十已经清掉了,但剩下的四十还在。要把剩余的拉出来,不需要全量传输——只需要定位到它们存放的位置然后开启同频定向回传。“ 顾晏蹲在机柜侧面检查设备连接状态,用频谱仪扫了一遍系统的工作频段。她看了一眼频谱屏幕上的波形特征,点了点头:“协议结构和b1-sub完全相同。指令包格式可以直接复用。“ 陆维桢把伪造的指令包从自己的笔记本上传到设备间的终端上,然后通过网线接口向系统主机的管理端口发送了一条数据回传指令,回传坐标指向龙科院北区三号楼地下三层的ip地址。指令发送之后,系统文件管理界面上的数据块开始逐个亮起传送状态标记。 剩余的四成数据开始向指定地址传输。传输速度比上次快,因为数据量更小,网络负载更轻。 但陆维桢在等待传输进度增加的同时,目光在屏幕角落里捕捉到了一行不寻常的系统日志条目。条目内容只有几个字:“外部链路检查-已确认。“时间戳标记在今天凌晨三点十四分,执行权限来自管理员级别的账户。那个账户在发送了清理命令之后还额外做了一项操作——确认设备间外部链路的连通状态。 那条外部链路指向的位置,被日志条目附带了一个简短的ip地址后缀。陆维桢复制了那个地址输入到自己的笔记本上进行解析,返回的结果让他的手指在键盘上方停了一下:那个ip地址所在的地理位置不在蓉城,也不在龙国境内。它指向的区域位于太平洋东岸,精确到某座灰色建筑所在的城市。那座建筑的地下三层里,曾经有一份echo-7情报报告在一个值班主任的桌上被摔过咖啡杯。 “我们在取数据的同时,西部系统向境外发送了一条链路确认。“陆维桢说话时声音比平时低了半个调,“今天凌晨三点十四分,有人在这台设备前面操作完之后确认了它和境外主控端之间的网络通道仍然是通的。“ 数据传输进度持续向前推进。但陆维桢知道,只要那条外部链路还是通的,西部系统在传输剩余数据的同时也在向境外主控端发送着“设备正在大规模向新地址传数据“的提示信号。境外主控端会在数据拉取完成的同一时间知道系统已经被接入过了。然后他们会把那座城市东边和西边的所有节点一并关闭。 现在的问题是:百分之四十的剩余数据,和境外主控端收到警告信号之间的时差还有多少。 第20章 劫时 传输进度在屏幕上行进得平稳而无声。百分之六十三、百分之六十七、百分之七十一——剩余的四成数据正在按顺序从西部系统的存储区被读出、打包、通过无线信道送往龙科院的方向。陆维桢盯着那条外部链路的日志条目,手指悬在键盘上方没有动,但他脑子里正在快速推算境外主控端从收到异常信号到做出响应之间需要的时间窗口。 “外部链路确认信号被主控端收到的瞬间,他们就会看到系统的发送队列里出现了大量超出常规的数据流。“陆维桢对顾晏说,声音在设备间的安静环境里显得格外清晰,“常规情况下这个系统每四十八小时传一次总量不会超过几十兆的数据。现在它的发送速率是峰值模式,对方从收到第一帧异常传输数据开始就可以判断系统被非授权接入了。“ 顾晏侧过头来看了一眼屏幕上的传输进度,然后看了一眼设备间墙上的钟。“加速。减少传输量。只拉取和西部航空动力研究所有关的那部分数据,其他通用日志可以放弃。“ 陆维桢没有再犹豫。他快速调出了系统文件管理的筛选功能,按照文件名和路径结构筛选出了所有包含“aviation“和“engine“关键词的数据块,标记为优先传输队列。剩余的非关键数据块被取消了传送标记。传输队列的大小从两百兆瞬间缩减到了大约七十兆,进度条上的剩余时间缩短了接近三分之二。 “优先队列开始传输,预计完成时间比全量拉取缩短至少四十分钟。“他调整完参数之后靠在椅背上,视线仍然停留在屏幕角落那条外部链路的状态指示器上。指示灯此刻是绿色的,显示链路持续畅通。 顾晏从机柜侧面转过来,手里拿着频谱仪的天线对准设备间的通风管道方向又扫了一遍。“除了那条固定链路之外,系统还在另一个频段上保持着一组极低频的微功率信号。这可能是一个独立的被动监听通道——不参与数据传输,只用于检测主通信链路是否被切断。如果主链路断了,这组微功率信号会改变频率,作为独立报警信道传递出来。“ “那我们现在动主链路吗?“陆维桢问。 “不动。“顾晏把频谱仪放下,“主链路正在传输我们想要的数据,切断了反而触发独立报警信道。让它传,传完我们再处理。“ 传输进度继续前进。百分之八十二、百分之八十七、百分之九十一。优先队列的数据块逐个完成传送,屏幕上的完成提示逐条亮起。陆维桢在传输间隙里快速扫了一遍已经被传回龙科院的文件清单——航空动力研究所的设备日志、测试记录、通信交互历史、以及一组标注着“叶片材料供应商数据接口“的子目录。那个子目录的命名方式显示出它可能连接着某家军工配套企业的内网接口。 百分之九十七。最后几个数据块的传输指示灯开始闪烁,每个块都在三秒内完成了发送。进度条到达百分之百时设备间的终端屏幕上跳出了一行系统日志:““。 传输完成。陆维桢快速拔掉了自己的笔记本与设备间的连接线,把所有操作痕迹从终端的历史记录中清除。顾晏把频谱仪的发射状态关闭,定向天线从设备架上拆下来收回挎包。周承岳在设备间入口处保持着警戒姿态,他的视线一直固定在外面的走廊方向上,但听见操作完成的声音时他侧头看了一眼——确认完毕,然后他无声地退到了管道入口旁边。 陆维桢站起来之前又快速检查了一遍系统状态界面。外部链路的状态指示灯仍然绿色,独立报警信道没有触发,传输记录已经在系统日志里被覆盖成了“常规维护数据传输“的字样。他关掉终端屏幕,把椅子推回桌下,转身走向管廊入口。 三人沿原路退出管道的整个过程用了不到四分钟。盖板被重新闭合之后陆维桢把周围的落叶和碎石大致恢复了原样,配电房北侧的墙体外观重新变成了那幅被爬山虎覆盖的荒置状态。清晨的阳光下工业区的街道开始出现更多车辆和行人,他们的移动在背景噪音中不再显眼。 回到suv之后周承岳沿着一条绕过工业区核心的路线向龙科院方向返程。陆维桢坐在后排把笔记本重新打开,快速浏览了一遍优先传输过来的文件内容。航空动力研究所的数据块中包含了一份传感器布置图和一组与某型涡扇发动机核心机测试相关的参数记录。那些参数的质量和格式呈现出与b1-sub数据相似的采集风格——频点分布均匀、时间戳精准、采样密度高。西部系统对航空动力研究所的监控深度跟他之前推测的一致,它确实在持续收集与发动机核心机研制相关的环境信息。 他把文件窗口最小化,看了一眼窗外。车辆正沿着一条河边的道路行驶,河面上映着上午逐渐明亮的天光,城市的声音从隔音玻璃外面传进来时已经变得很薄。他在座椅里靠了一会儿,视野里光屏亮着一行字,字体很浅:“境外主控端对东部系统的信号丢失大约需要三到六小时才能确认并逐级上报。目前窗口已过去约四小时。如果主控端的响应序列已经完成确认,下一阶段将是统一的节点关闭指令。“ 周承岳在后视镜里开口了,声音简洁:“主控端那边会怎么做?“ “切断蓉城所有节点的电源,“陆维桢说,“包括已经离线的那台b1-sub,和我们已经退出的西部系统。他们会把所有硬件断电并通知地面人员撤离,把数据物理介质带离现场或者在现场做物理销毁。“ “那地面人员撤离之前还有多长时间?“ 陆维桢看了一眼笔记本上系统日志记录的最后一条外部链路确认时间,结合主控端的响应周期做了估算:“从确认信号发出到现在大约三个半小时。按常规流程,确认-上报-决策-下指令这个循环至少需要四到六个小时。窗口可能正在关闭,但还没完全关上。如果我们能在下一小时之内确认剩余硬件的位置,就有可能在他们动手之前获取更多信息。“ 车辆驶入龙科院北门时园区里的日间活动已经全面展开了。穿着不同颜色工装的人员在建筑之间穿行,食堂方向飘出饭菜的气味。陆维桢下车时被日光照了一下眼睛,他眯着眼走了几步才适应从地下到地上之间的亮度变化。但他在走向员工通道入口的途中忽然停了一下——口袋里手机的加密通讯应用弹出了一条来自技术组的消息,内容简短,附了一张实时卫星热成像截图。截图显示蓉城东郊工厂地下空腔位置的土壤温度正在下降,比周围地面的背景温度低了约两度,幅度比正常的地下空腔保温波动要大。下降速率正在均匀加速。 地下空腔的地面层被人打开了——热空气从空腔内溢出到外部环境,导致土壤温度层被扰动。有人正在东郊工厂的地下空腔里做大规模的设备拆卸。暗潮撤离的时间点比预测的更早,他们已经进入物理拆解和撤离阶段了。 第21章 剥茧 地下空腔的土壤温度下降速率在后续三十分钟内又加快了一档。技术组连续传来的热成像图片拼接成了一段动态序列,画面上的温度色阶从橙红渐变为黄绿再沉入蓝紫,描出一幅正在加速冷却的地下结构的剖面图。陆维桢站在地下三层的操作台前面,面前的屏幕上同时显示着卫星热成像的实时更新和西部系统传回的航空动力研究所数据结构树。他的目光在两张图之间来回切换了几次。 “东郊那边的物理拆除已经开始至少四十分钟了。“他指了一下热成像序列中温度下降速率最大的区域,“下降曲线呈指数型,不是自然冷却。人为打开出入口之后冷空气灌入空腔内部,把原来被设备运行产生的余热维持住的平衡温度打破了。他们搬走了发热源。“ 周承岳站在他侧后方看着屏幕。他看了片刻之后把加密手机拿起来拨了一个短号,接通后只说了两句话,核心意思大概是通知外围安保组对东郊工厂区域提高观察密度但不做主动接触。挂断电话之后他把手机放回夹克内袋,没有进一步说明。 陆维桢继续翻看西部系统传回的数据结构树。航空动力研究所相关的文件被技术组初步分类后归入了一个独立的子目录,里面包含了环境数据采集日志和材料测试参数记录两个主要文件夹。他点开材料测试参数记录,里面是一组重复周期非常规律的数值曲线——每天同一时刻记录同一组叶片的某种物理参数,记录精度高到微米级。这种规律性的暗示了一个事实:西部系统在对航空动力研究所某款新型涡扇发动机的叶片进行长期监控。它不是测绘整个研究所,而是盯着一组具体的部件在连续测量。 “他们的目标是发动机叶片。“陆维桢把曲线图放大,“不是整个发动机,也不是整个研究所。他们盯的是新型材料的长期蠕变测试数据。叶片在高温高压工况下的形变速率变化、微结构演化轨迹、寿命预测模型——这些数据如果积累到一定量级,做逆向工程时就可以推导出材料配方和加工工艺的很多关键信息。“ 顾晏走过来弯腰看了一眼屏幕上的曲线。她在电磁兼容方面的专业训练让她对信号处理和数据的周期性极为敏感,几乎是看到曲线的第一眼就指出了其中的特征:“这组测试数据每天在同一时刻采集,时间精度高到秒级。采集触发信号可能是从某个外部同步源发出的,不是随机的现场测量。有人在这套系统的软件里植入了定时触发器,让它自动对准发动机测试台架的工作节拍。“ “所以西部系统比东部系统更精。“陆维桢说,“东部系统只是收集环境信号和低频数据,西部系统在针对具体的技术目标做定向采集。它的数据价值更高,所以他们把西部的清洗优先级排得更靠前,比东郊地下空腔还早开始动手。“ 他退出叶片测试数据文件夹,回到目录树的根部重新检查了一遍文件列表。在目录树的最底层,他发现了一个被技术组初步归类为“系统日志“但实际内容格式有显著差异的子目录——文件名的长度和末尾的后缀名跟echo-7系统自己的日志格式不同,更像是从外部导入进来的数据包在本地留下的缓存副本。他打开其中一个文件,内容是一组没有时间戳的坐标序列,每隔一段数据就重复出现一个相同的地址模式。那组地址模式以字符间隔在文本中重复出现了多次,每次之间的间隔长度均匀,像一种人为嵌入的标记符。 陆维桢把那组地址模式复制出来单独放在一个空白文档里,去掉了空格和标点之后得到的文本长度大约三十个字符。他把这三十个字符输入到系统中进行格式识别,“天工“系统几乎同时返回了一个分类结果:这是某型航空发动机图纸编号体系的缩写变体。三十个字符对应到图纸编号结构中的分类码和序列号段,指向一款处于预研阶段的高推重比涡扇发动机的关键组件图纸。 “这套系统不只是采集测试数据,“陆维桢的声音比刚才稳了一些,但语速略微加快,“它还收到过从航空动力研究所内部传输出来的图纸编号。有可能是有人把图纸编号作为数据标记嵌入到正常的文件传输流里,和传感器数据混在一起送出。西部系统收到了这些标记,把它当作普通数据字段记录在日志里。“ 周承岳的加密手机在他口袋里震动了。他接听之后这次没有立刻挂断,而是听了一段约半分钟的内容,然后说了一句“行了“就挂断了。他把手机收起来,转向陆维桢方向时说:“外围组刚才在东郊工厂围墙外面观察到一辆深色商务车驶出,沿乡镇公路向东离开了。车窗全黑,车牌被泥土遮盖,出发时间大约在空腔温度开始下降之后四十分钟左右。符合设备搬运后的撤离时间窗口。“ 东郊的东西已经搬走了。那辆商务车现在正在乡镇公路上向某个方向驶去,可能带着从地下空腔里拆卸出来的硬件设备和存储介质。如果车上的人带走了b1-sub部署位置周边的那批外接存储设备,那么即使西部系统的数据被提前取走了大部分,东郊空腔里残存的硬件仍然可能包含从航空动力研究所传输出来的其他资料。 “那辆车去的方向是哪个?“陆维桢问。 “东。出了城之后上高速,方向沿海。“ 沿海。如果车里的东西最终被装船运往境外,那蓉城境内能获取的信息链就会在这条线上被打断。但这辆商务车从离开工厂到驶入高速入口还需要大约半个小时到四十分钟的行程时间,中间要经过一段不长的乡镇公路和一段普通国道。如果能在它上高速之前从外部获取一次它的信号特征或者车牌信息,就能为后续追踪提供依据。 陆维桢把操作台上的笔记本转向自己,打开了一个空白文档准备记录后续方向。他的手放在键盘上时停顿了一下,转头看向顾晏:“你刚才在设备间的时候用频谱仪扫描过系统周边的射频环境。西部系统终端和那套主设备之间的数据链路有没有发现第二条、第三条跳传路径?“ 顾晏没有犹豫就接上了他的话:“有。终端到机柜之间走的有线网,但机柜侧面有一根被绝缘胶带和主线束绑在一起的细同轴线,走向穿过设备间上方的吊顶进入通风管道。频率特征和主链路的通信不同,像是独立的镜像通道。“ “镜像通道。“陆维桢在备忘录里写了这个短语,“那意味着西部系统存的数据在传输过程中有可能被复制了一份,通过另一条路径送到了另一个目的地。那个目的地不是主控端,也不是-04。可能是第三方的缓存点。“ 周承岳从他站的位置走进了一步。他的手机屏幕亮着,上面显示着一条刚从技术组传来的实时路径分析结果,附了一张用无线信号定位技术反向推算出的镜像通道方向坐标图。坐标落在蓉城东部某个靠近绕城高速出口的位置——离东郊工厂不算远,但也不在工厂区内。那个位置在地图上标注为“综合物流园“。 “物流园是蓉城东部最大的货物中转中心。“周承岳说,“每天进出几百辆货车,集装箱堆场面积相当于十几个足球场。如果把一台中继设备藏在那种环境里,三天三夜都不会有人注意到它在工作。“陆维桢盯着那个坐标,光屏在他的视野里自动叠加了一组时间线数据和路径预测:“如果东郊撤离的商务车在物流园停靠一次再继续前往高速入口,总行程时间会增加大约二十分钟。但停靠窗口会给出一个物理交接地点的精确坐标,并且镜像通道的数据可能在那个地点被卸载。“ 操作台上的时间显示上午八点四十七分。商务车如果已经在路上,它抵达物流园的时间窗口大约在九点十分到九点半之间。如果他们要在这个窗口期间做一次定向监听或者物理接触,出发时间就是现在。 第22章 物流园 suv沿着绕城高速向东行驶时,陆维桢把笔记本的屏幕亮度调到了最低档,只保留地图导航界面可见。地图上的物流园坐标被标记成一个蓝色光点,位于绕城高速和国道交汇处的东南方向。车辆到达之后,他快速确认了一遍周围的建筑布局:物流园占地面积广阔,东侧是集装箱堆场和货运站台,西侧是一排钢结构仓库,北侧是办公区和司机休息室。 周承岳在距离物流园主入口大约两百米处把车停在了路边一处早餐摊位的侧面。摊位的棚布和摆放在外的折叠桌椅正好遮挡了suv的车身轮廓,从主入口方向看过来不容易注意到这里有车辆停驻。路边停着几辆长途货车的备用车厢板也提供了额外的视觉遮蔽。 陆维桢从车窗缝隙里观察物流园主入口的车辆进出情况。早高峰时段刚过,进出的货车频率开始下降,但仍有零星的车辆驶入驶出。一个岗亭里坐着穿灰色制服的保安,门禁杆保持着升起状态,进出车辆不需要停车登记。 “镜像通道的坐标定位精度在物流园内部大约三十米半径范围内。“陆维桢说,“那个区域落在东侧的集装箱堆场和货运站台之间的空地上。如果中继设备真的藏在这里,它应该需要电源和防水的物理保护壳,最可能放置在某个集装箱内部或者堆场边缘的设备箱里。“ 顾晏从座椅上侧身看了一遍物流园的卫星图,她的视线在东侧堆场区域停留了片刻:“堆场边缘有几个配电箱和通信交接箱,金属外壳的标准箱体,尺寸足够容纳一套中继器组。而且它们和堆场内部的照明、监控系统共用供电线路,从电源端看完全正常。“ “我们得进去看一眼。“陆维桢说。 下车之前他换上了一件从后备箱里取出的反光背心和一顶棒球帽。这身装束在物流园这种环境里不会引起额外注意——类似穿着的工作人员和临时工在园区内随处可见。顾晏同样换上了一件深色的连帽外套,把频谱仪的天线收短到最长度,藏在挎包的侧袋里只露出一小截。 两人沿着物流园东侧围墙外的人行道走到堆场区域的侧门处。侧门是一扇铁栅栏门,门锁没有上锁,只插着一根铁销做临时固定。陆维桢拔出铁销推门进去,脚下是水泥地面,上面散落着碎纸屑和包装带。堆场内部的集装箱排列成整齐的纵列,每两排之间留着约三米宽的通道供叉车和人员通行。 他沿着通道走了大约四十米后停下。左侧有一排附着在混凝土柱上的配电箱,其中一只箱体的尺寸比其他的略大,外壳涂着相同的灰色油漆,但箱门合页的螺丝型号和其他箱体不一致——更长的防撬螺丝。顾晏从他身后闪到配电箱侧面用频谱仪天线扫了一下箱体周围,屏幕上的读数显示有一组极微弱的射频信号在箱门内侧的缝隙处向外渗出。 “信号在里面。“她说,“工作频段和设备间的镜像通道完全对应。“ 陆维桢蹲下来观察配电箱的锁具。它用的是一只普通的挂锁,锁梁上有轻微的刮擦痕迹——近期被开启过,开启时锁梁与锁体之间的摩擦在金属表面留下了新鲜的亮痕。他从口袋里取出工具钳剪断了挂锁的锁梁,锁体脱落时发出一声清脆的金属撞击声。他扶住箱门,缓缓向外拉开。 配电箱内部的空间比外观看起来更深。一台约手掌大小的金属外壳设备被固定在箱体后壁上,用一块可调节的金属支架夹持住。设备顶部有一根极短的微型天线从外壳引出,天线的末端紧贴着箱门内侧的金属面板,形成了一个隐蔽的射频出口。设备底部有一条电源线连接到配电箱内部的主线路上,取电方式跟东郊管道-04盒子如出一辙。 陆维桢用手机拍了几张照片记录设备的外观和安装方式,然后伸手触摸了一下设备外壳的温度——微暖,仍在运行中。他用手电照向设备底部,看到了一枚小型存储卡插在侧面的卡槽里,卡槽旁边有一颗指示灯,以约两秒一次的频率缓慢闪烁着绿色。 “它还在收数据。“陆维桢压低了声音,但语气中有一丝不能完全压住的确定感,“镜像通道的传输还没有断。西部系统的那根细同轴线延伸到了这里,现在正往这张存储卡里写入从西部系统镜像过来的数据。如果东郊那辆商务车今天会在物流园停靠,那这枚存储卡就是他们要取走的目标。“ 顾晏用频谱仪扫了一下存储卡附近的射频特征。她在确认卡内数据格式与西部系统输出格式的一致性时,忽然停了一下,然后把频谱屏幕转向陆维桢:“卡上不仅有从西部系统过来的数据流,还有另一组来自不同方向的信号在同一张卡上写入。来源方向指向——西北。从成都西北方向的某座城市发过来的,距离大约三百到四百公里。“ 陆维桢蹲在配电箱前面看着那个方向。西北方向三百多公里外的城市分布中,有一座在航空工业体系中有着特殊地位的场所——绵阳某国家级风洞实验室的所在地。那座城市和蓉城之间的距离和频谱仪显示的信号源距离基本吻合。 “他们在通过同一组中继节点,汇总不同城市采集到的数据。“陆维桢说,“蓉城西部航空动力研究所的数据通过镜像通道送到了这里。绵阳风洞实验室的数据也可能通过另一条类似的链路送到了同一张存储卡上。然后这辆商务车定期来物流园取卡,把卡带走汇总到某个中心节点。“ 他把存储卡从卡槽里轻轻拔出来。卡体温热,存储容量标着六十四gb,已用容量约一半左右。他在拔出卡的同时把自己预先准备好的一张空白卡换进了卡槽——空白卡预先格式化成相同的文件系统结构,插回后设备会继续写入数据,但数据会写到空白卡上而不会影响被他带走的那张原有卡。系统的写入指示灯在他换卡后持续闪烁了几下,然后恢复到了先前的绿色慢闪频率。 他把原有存储卡装进一只小型防静电袋里,放进了外套内袋。顾晏把配电箱的箱门合回原位,锁具重新挂好。锁梁在剪断后无法复位,但箱门本身是闭合的,从远处看不出来锁具已经被破坏。 两人沿原路退出堆场侧门时,陆维桢的视线扫到了物流园北侧主通道上正在缓慢行驶的一辆深色商务车。车窗全黑,车牌位置覆盖着一层被泥土喷雾刻意污染过的遮蔽涂层。那辆车在物流园北侧的主通道上行驶到东侧堆场附近时减速了,方向正好朝向配电箱所在的那排混凝土柱。 陆维桢和顾晏已经退出了侧门,回到了围墙外面的人行道上。他们以正常的步行速度沿着人行道继续朝前走,没有回头。身后物流园内部的商务车在配电箱附近停靠了大约一分半钟,然后重新起步,沿着北侧通道驶向物流园的主出口方向。 陆维桢在走到人行道拐角处时才侧过头,用余光扫了一眼物流园主出口的方向。那辆商务车驶出大门之后右转上了国道,朝着绕城高速入口的方向驶去。车速平稳,没有加速也没有变道。 他继续走了一段路,等商务车完全消失在视线里之后才重新加速脚步,穿过一条巷道回到了周承岳停车的位置。他在副驾驶座旁边的位置站定,从外套内袋里取出那只防静电袋,放到车内的中控台上方。 “存储卡拿到了。“他说,“车上的人今天取不到数据了。但他们还会回来重新投放新的卡。物流园这个中继节点还会继续工作,只要他们不清楚卡什么时候被换走的。“陆维桢把防静电袋的封口又压紧了一次。袋内那枚六十四gb的存储卡泛着黑底金标的表面光泽,里面存着从蓉城西部航空动力研究所和绵阳风洞实验室两座城市汇总而来的采集数据——航空发动机叶片测试记录、新型材料蠕变参数、风洞试验环境曲线。这些数据来自一明一暗两条不同的采集路径,汇集到同一张物理介质上,然后被同一辆商务车带走。 他看着袋内的卡面,想到商务车此刻正在驶向高速入口的方向,沿海方向。里面坐着的人今天跑空了一趟,但他们不会知道为什么。直到下一次来看这张卡的时候才会发现卡已经被换过了。而那中间隔着的,可能是几个小时,也可能是几天。他手指按在中控台上,指尖能感觉到引擎熄火后底盘逐渐冷却的温度。 第23章 经纬 回到龙科院地下三层的时候,大厅里的白炽灯矩阵照得顾晏眯了一下眼。她直接走向操作台把频谱仪从挎包里取出来连接电源,屏幕亮起的过程中她已经拉开了挎包的第二个隔层,把那张存储卡的防静电袋放在了操作台面上。陆维桢在旁边坐下,把加密读卡器插入工作站usb接口,用镊子取出卡身放进读卡槽。 存储卡被识别的速度比预想的快。系统弹出的文件目录显示这张卡采用了简单的分区结构,主分区里排列着一组以日期命名的文件夹,最早的日期标记落在约四十五天前。文件夹内部存储的文件格式统一,元数据中的创建者字段指向一个统一的管理账户名,备注部分留着一组缩写编号,编码规则和echo-7系列设备完全不同——更短,像是另一个系统的标记。 “它不属于我们之前接触的任何一套暗潮设备。“陆维桢说,“西部系统、b1-sub、-04都用echo-7系列的设备标识格式。这张卡上的写入设备是另一套独立的采集系统——可能是更早部署的一层网络,用不同的硬件供应商和不同的协议栈。暗潮在蓉城至少有两层数据采集架构:外层是echo-7设备网络,负责广泛覆盖和常规采集。内层是这套独立的系统,负责定向针对核心目标做更精细的定制化提取。“ 顾晏已经打开了一个文件查看器,随机抽取了一个日期文件夹里的数据文件进行解析。文件内容在她屏幕上展开时,她确认了确实包含了航空动力研究所的叶片测试参数记录——和西部系统采集的数据同源,但采样频率更高、记录字段更精细。她在查看文件末尾的附加标记时停住了,手指在键盘上方的位置悬停了片刻。 “这个文件末尾的标记字段里包含了一组嵌入式时间戳。时间戳的格式不是标准utc也不是本地时间——它是某个特定系统内部任务调度器的时间计数格式。“她把那个时间戳字段截屏标注出来,“这种时间计数格式我在专业文献里见过一次,是某款进口测量系统固件里使用的原生时间基。那款测量系统的制造商注册在德国。“ 德国制造的测量系统,被用于国内航空发动机叶片测试平台的数据采集。测试平台产生的原始数据通过该系统的数据接口被转存出来,然后经由某种内部途径嵌入到常规文件流里被外部接收端捕获。接收这些数据的外部系统就是这张卡所属的设备——它藏在物流园配电箱里的中继器,以和echo-7系统不同的硬件平台运行着。 陆维桢继续向下翻看文件列表。四十五天的数据文件夹中,大约有近三分之一是相对完整的记录周期,另有少量文件夹内容残缺或者只有索引表。这种不完整的记录特征提示他:中继器可能不是持续在线接收的。它可能有固定的接收窗口,在窗口期之外的时间段里处于待机状态。而窗口期的设置时间,很可能和测试台架的实际运转周期对齐。 “顾晏,你看一下这些文件的写入时间在一天中的分布情况。“陆维桢说,“是不是集中在某些固定的时间段里,其他时间几乎不更新。“ 顾晏快速筛选了几个日期文件夹内的文件创建时间戳,导入表格软件做了分布统计。结果在她屏幕上呈现出一条明显的峰值曲线:写入集中在每天上午九点到十一点之间,下午三点到五点之间也有一个较小的次峰,其余时间段几乎没有任何新文件产生。两个时间窗口恰好对应发动机测试台架最常用的早晚两班运转时段。 “所以中继器的接收窗口是照着发动机测试台架的工作节拍开的。“陆维桢说,“测试台一开机,数据就开始往外流。测试台关机的午休和夜间时段,中继器进入待机,不接收也不写入。这个逻辑保证了中继器的工作状态和测试台架的运转规律完全重合,如果外部人员检查中继器的工作日志,看到的就是在测试台架运转时段写入的数据——看起来像正常的运行周期日志,看不出任何异常的数据外传痕迹。“ 顾晏靠在椅背上低了一下头,又抬起来,看向屏幕上的峰值统计图。“那这张卡上除了航空动力研究所的数据之外的另一组信号源——绵阳方向来的数据——它的写入时间分布和蓉城的数据是相同的还是不同的?“ 陆维桢调出了文件目录中标注“ext_my“前缀的文件夹进行同样的时间分布分析。绵阳方向来的数据写入时间集中在每天下午两点到四点之间,和蓉城方向的上午峰值错开了大约五个小时。这个时间差让他把注意力放到了这份分布图的含义上:绵阳方向和蓉城方向的数据不是同时写入的,它们在时间轴上错开排列,两者之间有一个明确的时序节拍——上午收蓉城的数据,下午收绵阳的数据。 “中继器按照地理顺序轮询了不同节点的采集队列。“陆维桢在纸上画了一条时间线,“上午的窗口给蓉城,下午的窗口给绵阳。可能还有其他的节点分布在另外的时间窗口里,只是这张卡上存储的数据时间范围只覆盖了蓉城和绵阳两个来源。“ 顾晏把统计结果保存后抬头看了看大厅墙壁上的时钟。上午十点整。距离商务车在物流园停靠的时间点已经过去了大约三十分钟。如果商务车发现卡被换过的时间窗口发生在他们下一次定期检查卡的时候——按照物流园中继器的常规轮询周期和商务车的到访频率来判断,那可能是几天之后的事情。 但陆维桢注意到了另一件事。他重新点开了一个从卡中复制出来的数据文件,查看文件内部的数据记录格式。叶片测试参数的记录行之间除了标准的数值字段之外,还夹带着一些极短的不规则字符串片段,分布在数值列的间隙中。他选了一段这样的字符串做解码分析,“天工“系统返回的结果是一组字符编码格式转换后浮现出来的内容:“wp-15c高温段转子叶片第47次循环记录偏载验证状态:正常。“ 他认出了wp-15c这个编号。这个编号指向的是一款处于工程验证阶段的新型涡扇发动机的核心机代号。蓉城航空动力研究所正在做那款发动机的叶片材料长期测试。而那张卡里存着的,就是那款发动机叶片在测试过程中的偏载和形变数据——而且带有“偏载验证状态“这种只有在台架测试实时记录中才会出现的操作注释,不是后期整理的数据报表里会包含的内容。这意味着数据流出的源头极有可能不是历史数据导出,而是台架测试过程中的实时数据接口。有人在测试台的实时数据流里做了手脚,让数据在产生的同时就被复制了一份送了出去。 “测试台的数据接口被动过。“陆维桢站起来,走向白板把wp-15c和叶片测试数据这两个关键词写了上去,用线连接起来,在线的末端画了一个问号。“问题不是谁在接收这些数据。问题是谁能在测试台的实时数据流上加一个分流接口而不被发现。“ 周承岳从大厅入口的方向走进来,手里拿着加密手机,屏幕亮着。他走到白板旁边扫了一眼上面的新写内容,然后转向陆维桢说了一个信息:“航空动力研究所那边今天上午的常规安全巡查刚刚做完了。检查结果显示测试数据采集系统的主控面板侧面多了一组未被登记的数据输出接口,接口位置非常隐蔽,藏在了面板侧面通风槽的内壁上,从正面完全看不到。接口端接了一段极细的光纤线,沿着管道走向汇入大楼的弱电系统。光纤的出口末端连接着一**立的通讯转换器,体积跟一包纸差不多大,用磁吸底座固定在吊顶内部的钢梁上。“ 他把手机上的照片翻给陆维桢看。照片上是一条极细的光纤线从面板侧面通风槽探出,沿着墙角的管道走向上行没入吊顶的内部。那条光纤线的表皮颜色和动力研究所大楼的弱电标准线缆颜色相近,如果不打开面板把通风槽内壁拆下来用手电照着检查,根本不会注意到它的存在。 陆维桢看完照片之后把手机还给周承岳。他重新转回操作台前,把那张存储卡的目录树又翻了一遍,在“ext_my“文件夹的底层发现了一组以前没有被注意到的文件名后缀——那个后缀的编码格式和动力研究所测试台的设备日志格式一致,但末尾多了一个额外的字符标记。他把那个标记输入系统进行解码,“天工“光屏上跳出了一个结果,只有一行字:“标记指代的方向:测试台实时数据分流口的配置参数文件索引号。“ 光纤线在面板侧面通风槽内壁上连着的,就是那个数据分流口。而物流园配电箱里的中继器,就是沿着那根光纤线的末端从动力研究所大楼里往外收数据的中转节点。现在卡在陆维桢手里,光纤线已经被发现,测试台面板上分流接口的位置也已经确认——但动力研究所内部被加装的那段光纤线从通风槽出口到弱电系统入口之间还有一段距离没有覆盖到。如果那个转换器仍在吊顶内部的钢梁上,它的存在就意味着数据接口仍然可能在未来被重新启用。 陆维桢在操作台前坐下,把那张存储卡从读卡器里取出重新封进防静电袋。他看了一眼白板上那个“?“,伸手在它旁边写了一个词:“吊顶“。 第24章 吊顶 下午一点二十分,陆维桢站在航空动力研究所试验大楼三层的走廊里,身旁的墙上挂着一幅消防疏散示意图,图上标注着楼层内部结构和吊顶检修口的位置。周承岳通过研究所安保部门的工**调,为他安排了一个“技术设备巡检“的临时身份,陪同的是一位穿灰色工装的中年电气工程师,姓刘,在研究所工作十二年,对大楼内部的管线走向十分熟悉。 刘工领着他穿过走廊,在一扇标有“弱电间“的金属门前面停下,用钥匙打开门锁。弱电间内部空间约三四平方米,墙面上排列着成排的配线架和光纤熔接盒,通风管道从顶部横穿而过,管道的保温层包裹严密。刘工从工具梯爬上配电架的高度,用手电照向吊顶板与主管道之间的夹层缝隙。 “那根光纤是从测试台面板通风槽出来的,“他说,“按你描述的大致走向,它应该会经过这间弱电间上方的汇流层,然后沿管道走向接入大楼的主弱电系统。如果吊顶里面的转换器装在钢梁上,那它应该就在这附近。“ 陆维桢站在梯子下方,仰头看着刘工用手电扫过的夹层区域。在管道保温层和吊顶龙骨之间的一个狭窄空隙里,隐约能看到一段与标准线缆颜色略有差异的细线从管道侧面探出,沿着钢梁下沿延伸了一段距离后没入一个约十五厘米见方的金属外壳设备中。设备被两只磁吸底座固定在钢梁的腹板上,外壳颜色和钢梁表面喷涂接近,在吊顶内部暗淡的光线下几乎看不出轮廓。 “找到了。“刘工压低声音说了一句,然后从工具包里取出一把长柄螺丝刀和一副防静电手套,“要拆?“ “先看。“陆维桢接过刘工递来的手电,自己爬上去凑近了几厘米观察那个金属外壳设备的结构。外壳尺寸和他在物流园配电箱里见过的中继器相近,但厚度略薄,侧面多了一组微型散热孔。散热孔的边缘有一层极薄的灰尘堆积——正常的热空气对流会把这些细尘均匀地吸附在孔口周边,形成一圈渐变色的沉积环。但沉积环的分布不完全均匀,孔口下半部分的沉积比上半部分厚,说明设备在被安装之后曾经被调整过倾斜角度。 “这个转换器被人重新调整过角度。“陆维桢说,“刚安装的时候它的姿态可能跟现在不同,有人后期又打开吊顶来调过一次。调整时间可能是最近一两周内的事情,因为沉积环的分布还没被新的气流模式完全覆盖掉。“ 刘工从另一侧探过头来看了一眼沉积环的分布情况,点了点头。“这个弱电间上个月做了一次光纤线路扩容施工,吊顶开过。施工队当时确实有人在这个区域停留过一段时间。“ 陆维桢用手套垫着指腹轻轻触碰了一下转换器外壳的侧面。外壳温度低于人体温度,说明设备并非持续满功率工作状态,可能在接收窗口之外的时间段里处于低功耗模式或者深度待机状态。它的输入端接着那根从测试台面板引出的光纤,输出端延伸出去的一根细线沿着钢梁走向汇入了大楼弱电系统的综合配线架。 “它的输入接测试台,输出接弱电系统。“陆维桢退下梯子,把观察结果记在手机备忘录上,“但弱电系统的综合配线架是整个大楼网络的核心节点——它接上弱电系统意味着从这根光纤过来的数据可以被转发到大楼内部任何一台能联网设备上,也可能通过大楼的外部数据专线送出研究所。“ 刘工从梯子上下来时拍了拍手上的灰尘。他的表情没什么变化,但他的声音比刚才轻了一些:“那个施工队是外包的,当时负责光缆扩容的那批人跟研究所内部没有隶属关系。我可以去查一下当时的施工审批记录和人员名单。“ “查的时候不要直接问。“陆维桢说,“就说技术审计时需要确认扩容施工的工艺质量,调阅施工记录用于存档参考。不要让任何人觉得这次检查有特别的针对性。“ 刘工点了下头。他在离开弱电间之前回头又看了一眼吊顶夹层的方向,目光在那只转换器的外壳上停了一瞬,然后推开弱电间的门走了出去。 陆维桢留在弱电间里又站了一会儿。他重新爬上梯子,这次打开了手机摄像功能,从多个角度拍下了转换器外壳的细节、光纤输入端和输出端的走线路径、以及磁吸底座在钢梁上的接触面位置。拍完照片后他退下梯子,用弱电间里的配线架标签纸快速抄录了转换器输出端接入的那组配线端口编号。 他把所有信息汇总后给顾晏发了一条消息。回复很快就到了,内容简明扼要:“配线端口编号对应的路由路径解析完成。输出端连接的最终落点指向研究所一楼的一间闲置小会议室,那间会议室在办公系统里登记为视频会议备用室,但近三个月的使用记录显示几乎没有被预约过。“ 一间几乎没有被使用的备用会议室,位于研究所一楼,弱电系统配线端口对应的最终落点。陆维桢收起手机走出弱电间。他在脑海中快速勾勒了一下从测试台面板引出光纤→经弱电间转换器→沿弱电配线架→连接到一楼会议室内部网络端口的完整路径。那间会议室里有一个人长期接收着从测试台上分流出来的实时数据。 他沿着楼梯走到一楼。走廊的尽头是一扇标着“视频会议备用室“的木门,门牌号旁边贴着一张褪色的使用提示标签。他伸手试了一下门把手——锁着。门把手是普通的球形锁,门上方的窗户透出室内一片均匀的暗色,窗帘从内侧拉拢着,看不到内部布局。 他蹲下来从门缝底部观察了一下室内地面的光线反射情况。窗帘闭合状态下室内的光线极暗,但门缝底部有一丝极淡的蓝白色微光透出来——来自某种设备屏幕的待机光源,不是日光灯。那种光线的色温和亮度特征和电脑显示器在夜间模式下的待机屏保一致。 他站起身,没有推门,转身离开了走廊。走回楼梯口时他发了一条消息给周承岳:“一楼视频会议备用室锁着,内部有设备待机光源。建议在不惊动里面的情况下确认该房间的启用状态和使用记录。“ 周承岳的消息回复得很快,但内容让他停了一下脚步:“研究所行政系统记录显示该会议室在近三个月的使用登记表中确实为空白。但内部安保系统有一条异常记录:该房间的门禁感应器在非工作时段有过多次短时触发信号。触发间隔没有固定规律,但触发时段大多集中在晚间九点到十一点之间。“ 陆维桢把手机收起来。晚间九点到十一点,正好是测试台结束晚班运转、数据流入量最大的时段。有人在那个时间窗口里进入那间会议室,取走转换器端分流出来的数据,然后离开。每一次进入和离开之间的停留时间不足以完成大容量的文件传输,更接近于替换存储介质或者检查设备状态的短时操作。 他走出试验大楼正门时下午的阳光打在地上,把建筑外墙的投影拉出一道锐利的明暗界线。他在界线旁边站了一下,视线穿过广场对面稀疏的树影落向远处。航空动力研究所园区内部的布局和龙科院类似,由几栋不同功能的建筑围合成一个相对封闭的实验区。园区北侧围墙的高度和龙科院相似,围墙外的绿化带也采用了类似的分层设计。 他忽然想到一个可能性——那间备用会议室的门禁触发记录如果全部集中在晚间九点到十一点之间,那说明取数据的人使用了一种固定的交通方式进入研究所园区。晚间的园区安保级别比白天高,进出需要刷门禁卡并通过安保值守岗。但如果取数据的人本身就持有有效的园区门禁权限——那他不需要绕行围墙或者避开监控,他可以走正门。 换句话说,把数据分流器装在测试台面板上的那个人,和定期从会议室取走存储介质的那个人,可能不是同一个人。有人负责安装硬件,有人负责定期回收数据。两者的工作时段不同,权限层级可能也不同。安装硬件的人对弱电系统有充分的了解,可能参与了那次光纤扩容施工或者知道施工的详细方案。回收数据的人只需要一张能在晚间进入研究所的门禁卡。 陆维桢在广场边缘停下脚步,拿出手机再次翻看了一遍弱电间里拍到的转换器照片。外壳表面的散热孔旁边的沉积环分布确实不均匀,但那是因为后期被调整过倾斜角度。他在调整角度之外还注意到了一个更细小的特征:散热孔的金属边沿上有一道极浅的擦痕,宽度和某种卡式工具的压力面吻合。那种卡式工具在拿取存储卡时会顺着卡槽的导向面滑动,如果手法不够精准就会在卡槽旁边的金属边沿上留下轻微的摩擦痕迹。 安装硬件的人手法可能不够熟练,或者安装环境受限导致操作不够从容。但那个痕迹已经被擦去了大部分,只在金属表面的微观尺度上残留了一小段微弱的沟槽纹路。陆维桢把那张照片放大后保存好,然后收起手机继续向前走。光屏在他视野里亮了一行字,字体很浅:“转换器散热孔边沿的擦痕方向表明存储卡是从右侧卡槽取出的。取卡人的惯用手可能为左手。“ 一个用左手取卡的人,每周在固定的晚间窗口进入一楼会议室,停留足够短的时间,然后离开。而且他持有的门禁卡能够通过园区安保岗亭的验证。这个人就在研究所内部,使用着合法的身份在合法的时间段内进出,做着表面上完全正常的夜间加班工作。 第25章 守夜 陆维桢没有离开航空动力研究所。他在园区东侧的一栋附属楼里找到了一间用于存放旧图纸的档案室,窗户朝向主试验大楼的方向,正对一楼会议室所在的走廊侧墙。他在窗口旁边放了一把折叠椅,坐下来的角度刚好可以透过档案室窗户的缝隙观察到试验大楼一楼走廊尽头的照明变化和人员进出动态。档案室的门锁是简单的弹簧锁,他在里面把门反锁了,这个房间在晚间不会有人来。 下午到晚上的这段时间他在档案室里继续分析物流园存储卡的剩余数据。卡上除了航空动力研究所和绵阳方向的测试记录之外,还有几个零散的小文件片段,看起来像是早期测试阶段的残留数据,可能因为在不同节点之间的传输过程中发生了中断而只留下了不完整的碎片。其中一组碎片里的时间戳标注比现有的数据覆盖范围更早,属于大约三个月前的记录。三个月前的数据内容指向的对象代码仍然和wp-15c相关,但记录的测试参数类型不同——倾向于材料微观结构演变的数据,而非宏观性能曲线。 这段数据的时间起点和暗潮在蓉城开始部署的早期节点建设时间大致重合。陆维桢在手机备忘录里记下了这个时间点。 天色在六点左右开始暗下来。实验大楼的灯光逐间亮起,走廊灯在七点切换到了夜间节能模式,亮度降到了日间的约三分之一。陆维桢在档案室的黑暗里坐着,视线固定在一楼走廊尽头的方向。值班的安保员在八点半左右沿着主走廊走了一圈,经过那间备用会议室门口时没有停留。九点整,走廊尽头的照明灯光正常亮着,没有人经过那扇门。 九点半左右,陆维桢看到走廊尽头有一个穿深色夹克的人影从楼梯口方向走过来。那人走路的姿态匀速而平稳,没有刻意放轻脚步也没有左顾右盼。他在备用会议室门口停下来,从口袋里取出一张卡片在门锁感应区刷了一下,推门进入。进入后门被带拢但没有完全关严,留了一道约一厘米的缝隙。 陆维桢从档案室窗边站了起来。他隔着窗户看到那间会议室内部的灯光从门缝里透出来——很暗,是那种显示器屏幕的背光亮度,不是日光灯。他看不到房间里的人在做什么,但他开始计时。从那人进门到离开,一共持续了大约三分四十秒。门重新打开时那人手里没有拿任何显眼的物品,他关上会议室的门之后沿原路走回楼梯口方向。灯光在他经过走廊拐角时照到了他的侧面轮廓——中等身材,穿深灰色夹克,未戴帽子,面部特征在距离和灯光条件下不足以辨识。 陆维桢记住了一个特征:那个人在离开会议室走向楼梯口时,他的左手在夹克侧袋外面停了一下,像是确认口袋里有东西。左手。和散热孔边沿擦痕的方向推断一致。 他等那个人完全消失在楼梯口之后才从档案室出来,沿着走廊侧面快速移动到备用会议室门口。门锁在刷卡后重新锁闭,他用手机拍了一下门锁感应区周围面板上的指纹分布,然后蹲下来检查地面。会议室门前的浅色地砖上有两组脚印,一组是进入时留下的,一组是离开时留下的。两组脚印的朝向和步幅一致。但他在门缝边缘的地面上发现了一小片不同于地砖颜色的东西——大约指甲盖大小,浅灰色,形状不规则,像是从某种办公用具上剥落的塑料碎片。他用镊子把它夹起来放进样品袋里封好。 回到档案室之后他重新坐下来,把那个人的姿态和步幅特征在自己脑子里过了一遍。中等身材、深色夹克、左手确认口袋的动作、步幅约七十五厘米、行走速度均匀。他整理好这些信息之后给周承岳发了一条消息,描述了今晚观察到的特征。 周承岳的回复在几分钟后弹出来:“会调取楼梯口和一楼出口的监控截图做比对。你继续留到什么时候?“ 陆维桢看了一眼手机上的时间。九点四十分。那人的进入时间在九点三十分左右,持续了三分四十秒后离开,按照常规的工作节奏判断,他今晚不太可能再回来。但陆维桢没有马上走。他在档案室里又坐了大约半个小时,确认走廊尽头没有再出现人员靠近备用会议室的情况,才起身离开。 他走出档案室时经过了一层大厅的楼梯口附近的挂墙式消防疏散图,图纸旁边的公告栏上贴着一张内部值班安排表,上面排列着研究所本周的夜间值班人员名单和对应的电话分机。值班安排表的打印日期是本周一,表格上的夜间值班人员一共有四名,分为两人一组轮值,每组负责一三五和二四六的晚间时段。今天周四,值班人员是两个人名。 陆维桢用手机拍下了那张值班表。他往外走的时候顺路经过园区内部的通勤车站台,站台旁边的灯箱里贴着一张研究所普通员工的通勤卡发放统计表,上面列出了各部门的人员数量。他在表上找到了对应夜间值班人员所在部门的标注——那两个人名中的一个,来自于试验测试技术部门,正好负责测试台的数据采集系统运行维护工作。 他把这个关联记在了心里,但没有在现场多做停留。走出研究所园区大门时夜色已经完全笼罩了城市,路灯把街道照成暗橘色的光带向远处延伸。他在路边叫了一辆出租车回龙科院,坐到后排靠窗的位置,把手机上的照片和记录重新过了一遍。 出租车经过蓉城东部快速路时,陆维桢的目光越过车窗看到了物流园方向的一片灯光。那辆深色商务车今天没有取到卡,但按照定期检查的逻辑,它会在某个时间点再次出现。而那张被他换走的空白卡,在下一个数据窗口开启时会开始写入新的信息——它会逐渐存储来自蓉城和绵阳方向的新数据,形成一条新的记录链。如果商务车在几周后再次来取卡,看到卡上有数据、设备正常运行,就不会意识到任何异常。 陆维桢靠进座椅里。出租车驶过一段高架桥,城市的灯光在挡风玻璃上反射成流动的线条。他的目光在这些线条上停留了一会儿,然后他闭上了眼睛。 窗外有一架夜航班机的信号灯在高空缓慢移动,光点在天幕上经过一段平直的长线轨迹后渐渐变小消失。天工系统的光屏在他的视野里短暂地亮了一下,上面浮着一行字,字体很浅,收尾处略微发暗:“值班表上那个测试台数据采集维护人员的工作履历中有一条记录——他曾经在该研究所与一家境外测试设备供应商的联合调试项目中担任过现场技术协调员。联合调试项目的时间线和卡上最早的数据碎片时间戳起点一致。“ 陆维桢没有睁眼。出租车在下一段平直路面上继续行驶,轮胎碾过路面接缝时发出均匀的节奏声。窗外夜空中的航线灯已经完全消失了,只剩下一片深色的天幕,被城市的光污染映成暗橘色。他在那均匀的节奏声里慢慢做完了一个完整的呼吸周期才睁开眼睛,城市的灯光在他瞳孔里重新聚焦成清晰的轮廓。出租车前方出现了一个标志着龙科院方向的指示牌,他往座位上挪了一下身体,把外套的领口翻起来。 第26章 定踪 出租车停在龙科院北门外的时候,陆维桢看见顾晏站在门禁旁边的灯柱下面。夜风把她的外套下摆吹得微微翻动,她手里握着手机,屏幕亮着但没有在看。他下车走过去,她侧过头来看了他一眼,没有寒暄,直接说了一句话:“周组长调出了航空动力研究所那个值班人员今晚的行程记录。他离开研究所之后没有直接回家,他在园区外面绕了一段路。“ “绕到哪儿了?“ “南侧的一处公交站台。他在站台上站了大约四分钟,期间做了一件事——把一只信封塞进了站台广告牌背后的缝隙里。“顾晏把手机上的监控截图翻出来给陆维桢看。画面比较模糊,但能辨认出那个人弯腰在广告牌框架的侧后方操作了一下,然后直起身离开。整个过程持续了不到十秒。 陆维桢看着那张截图。一只信封被塞进公交站台广告牌背后的缝隙里,这个动作和物流园配电箱里的中继器构成了同一套传递模式——物理介质在固定地点被放置,由另一条线的人按固定周期取走。他抬头问顾晏:“信封还在那里吗?“ “周组长派人去看了。信封已经被取走了。取走的时间大约在十一点左右,那人从站台离开之后大约一个半小时。“ 陆维桢往前走了一步,站到门禁的灯光下面,用手指在手机屏幕上画了一条简略的路线图:研究所→公交站台放置信封→约一个半小时后有人取走。取走信封的人可能使用了不同的交通工具进入和离开,使得两条行动线之间无法通过时间重叠来建立直接的人员关联。他停了一下,把手机收进口袋。 “他在研究所内部有自己的门禁权限。他还需要把拿到的数据转移到第三条线路才安全。如果他直接带走存储介质或者数据设备,一旦被调查就可能被追踪。所以他在去公交站台之前可能会先把数据转到信封里的某种介质上——比如优盘或者另一张更小的存储卡——然后把原卡留在研究所内部某个安全位置。这样即使他被调查,他手里的东西也只是表面上无异常的办公用品。“ 顾晏转身跟着他一起走进园区大门,两人并肩通过门禁通道时她侧过头说了一句:“周组长调了公交站台附近的交通监控,取走信封的人上了一辆深色轿车,车牌部分被遮挡。车型和物流园那辆商务车有相似之处,但不是同一辆。“ 两辆车。同一套传输网络。一套负责物流园的中继器取卡,另一套负责公交站台的信封回收。两条线在物理上没有重叠,但数据流通的末端可能汇集到同一个中心。 两人走到员工通道入口时,周承岳从阴影里走出来,手里拿着一份打印好的材料递过来。陆维桢接过来翻了一下,是那个值班人员的完整人事档案——姓廖,名维,三十二岁,航空动力研究所试验测试技术部门的数据采集工程师,入职五年。档案附页里有一份他参与的联合调试项目记录,项目名称缩写成“wp-test-intl“,合作方是一家在欧洲注册的测试设备供应商,总部设在德国。项目周期大约在五个月前启动,三个月前结束。物流园中继器卡上最早的数据碎片时间戳也大约在三个月前开始出现。 “他和德国供应商的项目已经结束了三个月。“陆维桢把档案合上,“但三个月后他仍然在从研究所的数据接口往外送数据。可能联合调试项目期间他接触了那家供应商提供的某种软硬件工具,利用那套工具在测试台面板上安装了分流接口。项目结束之后供应商没有拆除那个接口,他继续通过它往外传数据,收益也持续流入他的账户。“ 周承岳点了点头,从夹克内袋里取出另一张纸递给陆维桢。“这是他的个人银行账户在近三个月内的资金流动摘要。每月固定有一笔款项转入,金额相同,转账备注全部空白。转入账户开在一个小语种国家的银行。“ 陆维桢看了一眼摘要上的金额和转账周期。每个月固定一笔,金额不大不小,刚好构成一种持续性的报酬而不是一次性的买断。这种付款模式说明他在做一种长期稳定的服务输出。廖维不是一时兴起帮了个忙,他在按月领取报酬执行一项持续性任务。 “他现在手里没有数据。“陆维桢说,“今晚他取完会议室的数据之后,把数据转到了信封里放到了公交站台。信封被取走之后他手里应该是空的了。如果他在下一次取数据周期之前被我们截停,他没法删除或者销毁他在研究所内部的数据路径——那根光纤和转换器还在弱电间的吊顶里。“ 周承岳接上了他的话:“但他的取货路线还有另一条链路继续运行。公交站台那个点被取走了一份数据,但物流园那边的中继器仍然在收集新的信息。我们手上现在有中继器那张卡的数据副本,也有转换器的位置信息,但背后的资金链和人员的全网结构还没有形成完整的闭环。“ 陆维桢把档案和资金摘要收好,向前走了两步准备进电梯。他在电梯门口停了一下,转过身来说了一句话:“明天白天我要再去一次那间档案室。我有几条时间线和节点位置需要整理成图。“ 周承岳点了下头:“明天上午九点之前车在门口等你。“他说完之后转身朝另一个方向走了。顾晏还站在员工通道入口处,手插在外套口袋里,看起来没有立即跟下来的意思。陆维桢看了她一眼,她抬起目光回望了一下,简单地说了一句:“那张卡上的绵阳数据你还没看完。明天你去研究所的时候我带工作站过去,把绵阳那边的信号源定位同步出来。“ “好。“陆维桢说。 他走进电梯时门合拢之前看到她仍然站在原地,手在口袋里没有拿出来。电梯门关到还剩半掌宽度的时候他看见她朝他的方向动了一下嘴唇,像是说了一句只有一个音节长度的话,但被电梯门的隔音面板截断了没能传进他耳朵里。电梯向下运行的过程中,他站在安静的轿厢里回想了一下那个唇形的轮廓。音节很短,具体内容在快速移动的门缝之间没能完全识别出来。 地下三层的大厅里空无一人,白炽灯在夜间模式下调暗到了偏冷色调的待机亮度。重岳骨架在原位矗立着,右膝磁流变液关节的暗金色纹路在低照度下呈现出一种沉淀的金属光泽。他走到骨架旁边伸手碰了一下关节外壳,表面温度略低于室温,说明待机状态的能耗已经稳定到了很低的水平。他回到操作台前坐下,打开笔记本,把今晚收集到的所有信息节点整理成了一张时间轴线图。 线图从三个月前开始——联合调试项目结束、测试台面板分流接口安装完成、物流园中继器开始写入数据。然后在约一个月前出现了变化:公交站台的信封投递点开始启用,廖维的转账记录从那时起出现了固定的入账周期。而深色商务车在物流园的取卡周期也大约在这个时间段开始固定下来。两条并行的数据链路在同一时间点形成了同步架构。 陆维桢在那条时间轴线上画了一个圈,圈住了约一个月前的那个转折点。然后他把笔记本合上了。光屏在他的视野里亮着,底部浮着一行极淡的灰色文字:“廖维的通讯记录在近一个月内出现了一个重复频率较高的号码,归属地为蓉城本地,机主身份未在公开数据库中注册。该号码的基站连接记录与公交站台取信人深色轿车出现的位置在时间上存在数次重合。“ 他在椅子上靠了一会儿,闭着眼把那个号码的几组时间重合点在心里粗略排了一下。然后他睁眼看了一眼大厅墙壁上的钟——已经过了凌晨。他站起来走到折叠床旁边坐下,外套没脱,手搭在膝盖上安静了大约几分钟才躺下去。头顶的应急灯在暗处投下一圈幽绿的光圈,落在重岳骨架右膝外壳的暗金色纹路上,把那片金属表面的纹路照成一道细长的弧线,在安静的黑暗中微微亮着。 第27章 镜像 陆维桢睡了大约三小时,醒来时大厅的照明已经切换到了日间模式。他坐在折叠床边把外套重新拉好,膝盖上的笔记本还在待机状态,屏幕上的时间轴线图和他睡前合上时一致。他把笔记本打开,在时间轴的“一个月前“标记处加了一行备注——廖维的转账记录起始点与深色轿车固定的取信周期起点重合。 顾晏在七点二十分左右推门进来,手里拎着一只黑色的设备箱和一杯打包好的豆浆。她把设备箱放在操作台上打开,里面是一台经过加固处理的便携工作站,侧面多了一组外接天线接口。“绵阳那边的信号源数据我昨晚做了初步定位,“她说,“把卡上ext_my目录的所有文件覆盖时段做了基站匹配,信号源的大致位置可以收敛到风洞实验室周边半径大约两百米的范围。如果再结合风洞实验室的建筑平面图做路径损耗修正,可以进一步缩小。“ 陆维桢接过豆浆喝了一口,温度刚好。他看了一眼工作站屏幕上已经加载好的风洞实验室周边地图,信号源的定位点以一个淡蓝色的圆形区域标注出来,圆心落在实验室主体建筑的东侧边缘。圆形区域的半径已经被顾晏缩小到了一百五十米左右。 “如果能拿到风洞实验室里面某个具体房间的弱电图纸,再做一次衰减模型校正,应该能把范围收到三十米以内。“顾晏用手指在屏幕上的地图区域画了一个圈,“但需要知道那栋楼的建筑材料和外墙屏蔽参数——这个信息我得问周组长协调。“ 陆维桢放下豆浆杯。他站起来走到操作台侧面,把昨晚在档案室里收集的廖维行动时间线用白板画了出来。每一个时间节点旁边他都标注了对应的物理位置:研究所测试台、弱电间、一楼会议室、南侧公交站。他把四个位置之间的连线在板子上画出来,发现了一个之前没注意到的几何关系——从一楼会议室到南侧公交站之间有一条几乎笔直的路线,中间经过研究所在建的实验区临时围挡。 “临时围挡区“这几个字在他脑子里停留的时间比其他节点更久。他在白板上把围挡区的位置用虚线标注出来,在虚线上方写了一个问号。如果廖维从会议室取完数据之后通过临时围挡区而不是绕过它去公交站,围挡区内部可能藏着一个更隐蔽的传递节点。围挡区本身是工地,出入人员杂、设备堆放多,一个信封放在工地的某个角落比放在公交站广告牌背后更不容易被注意到。 “你等一下。“顾晏说。她从自己的手机上调出了一份建筑许可信息——临时围挡区所在的在建实验室项目批文,审批时间约四十天前。围挡区的施工区域计划在近期完成主体结构封顶,施工队预计将在未来两周内撤离。 “围挡区还有大约两周的施工窗口。“陆维桢说,“廖维用的公交站投递点启用时间大约一个月前——比围挡区施工开始的时间晚。他可能先用了别的方法,后来发现工地围挡区内更方便、更隐蔽,就切换了投递位置。公交站那个点只是个备用或者障眼法。“ 顾晏在工作站上快速检索了一下围挡区施工项目的人员进出记录。记录显示施工人员的名单是固定的,但最近两周有一名新加入的短期电工被登记在项目人员列表里,该电工的入职时间恰好和公交站取信人出现的时间吻合。 陆维桢走到操作台前重新坐下来,把那名短期电工的名字输入系统进行信息查询。“天工“系统的返回结果比预期更短:名字是一个常见普通名,关联的身份证号在公安系统内登记的有效地址与蓉城本地不符,显示该人户籍所在地不在本省。他对照了一下那辆深色轿车的出没路线,发现取信人行动的时间窗口和那名短期电工的下班时间之间有一个可重叠的区间——围挡区工地夜间停工的时间大约在七点前后,取信人出现在公交站台的时间在十一点左右。中间有四小时的时间差。 “他在工地现场待到夜间停工,然后用这段时间在围挡区内完成交接,最后以乘坐公交或其他方式离开。“陆维桢在白板上补了一条从围挡区到公交站台的路线,“公交站台的取信行为是第二层——故意安排在一个有监控的区域让调查人员看到有人取走了信封,但真正的数据在工地内部已经转移走了。公交站的信封可能是空的或者是作废的旧存储介质,用来转移注意力。“ 顾晏站在白板前面看了片刻,然后伸手在围挡区的位置画了一个圈,在圈中间写了一个字:“对。“ 她收回笔之后转身从设备箱里取出一台小型信号分析仪,开机预热。机器的风扇开始低速旋转,噪音被设备箱内部的吸音棉吸收了大半。“如果工地内部有真正的交接点,那它应该配备某种信号设备来协调廖维和取信人之间的时间配合。廖维不能每次都碰运气等取信人出现,他需要在到达围挡区之前确认取信人是否已经就位。“ 陆维桢接过了她的话头:“所以围挡区里面可能有一台简单的信号交换设备——不需要存储功能,只需要在特定时间窗口内发送和接收确认信号。廖维到围挡区之前先发一个短信号,设备收到后回复一个确认码,取信人那边同时收到提示。之后廖维放下东西,取信人稍后来取走。“ 他在白板上画了一个简化的信号流程图。从廖维手机发出一条短消息→围挡区内部的中继设备接收→转发确认码给取信人→两方各自完成自己的操作。整个过程不需要两人同时出现在同一位置,只要有信号设备和足够的时间窗口。 顾晏把信号分析仪的扫描频段设为与物流园中继器相近的频段范围,手动调整了中心频率和带宽参数。“如果工地内部的设备用了和物流园类似的频段,信号分析仪在距离围挡区边界三十米以内可以捕捉到它的待机信号。“她看了一眼操作台上的时间,“现在出发的话,可以赶在施工队上工之前先做一次被动扫描。“ “走。“陆维桢站起来把外套拉链拉好,拿起操作台上的手机和钥匙。走出大厅时他经过重岳骨架身边,用指背碰了一下右膝关节的外壳表面——温度正常,暗金色纹路在灯下平静地亮着。 他和顾晏从员工通道上到地面时,园区内部的晨光带着一层薄薄的雾气。周承岳的车停在通道口外面,引擎已经启动,从散热格栅里冒出的热气在冷空气中凝成淡淡的白雾。他看见两人出来,从车窗里递出一张折叠好的a3打印纸,上面是临时围挡区的施工平面图,图上用红笔标注了配电箱和弱电井的位置。 陆维桢接过图纸快速扫了一遍。围挡区内部共有六个配电箱和三个弱电井,分布在施工区域的四周。其中两个配电箱的位置比较隐蔽,一处靠近施工材料堆场的角落,一处紧贴着围挡区北侧边界。靠近北侧边界那个配电箱和公交站台之间的直线距离最近,符合数据从工地内部转移后的行进方向。 周承岳的车向北驶出龙科院园区,在早高峰的车流中沿着通往航空动力研究所方向的路线平稳行驶。陆维桢坐在后排低着头看那份施工平面图,旁边的信号分析仪已经开机运行,液晶屏上的频段扫描正在向整个城市的一个角落无声地发散出探测信号。 第28章 引线 信号分析仪的屏幕在车辆接近航空动力研究所园区时开始出现波动。顾晏把设备放在膝盖上,一边盯着屏幕的变化一边根据地图坐标做实时校准。扫描频段被设定在物流园中继器同频段的窄带范围内,经过约两分钟的搜频循环后,频谱曲线上出现了一个持续存在的微弱特征峰。 “捕捉到了。“顾晏把屏幕稍微倾斜让陆维桢看清,“特征峰的位置在围墙边界内约十五米,和临时围挡区的北侧边界位置基本吻合。信号强度很低,但持续稳定,符合待机状态的设备工作特征。“ 周承岳在距离围挡区约两百米处把车停在了路边,位置处于一处临时停车带,前方是一排修剪过的灌木丛。他没有熄火,把引擎保持在怠速状态,车窗降了一条缝隙让外部空气进入车内。“施工队换班时段是早上八点到八点半之间,现在是七点四十分,工地应该刚开始上人。你们进去之后如果是被盘问,就说是甲方委托的电气安全检查。“ 陆维桢从车里出来时,晨间的工地入口已经有人影在活动了。临时围挡的铁皮门半开着,里面堆放着钢管、板材和几台小型机械。他看到门内左侧有一顶安全帽挂在钉子上,下面放着一件橙色反光背心,应该是给进入工地的人员准备的。他戴上安全帽,把反光背心套在外套外面,顺着信号分析仪指向的方向穿过材料堆场的间隙向工地北侧移动。 工地内部的布局比图纸上看起来更紧凑。北侧边界是一段临时铁皮围挡,围挡内侧的地面上铺着模板和碎砖块,配电箱位于一摞待用的预制构件后面,位置正好在围挡和材料堆之间的窄缝里。配电箱的外观是标准的施工配电箱,绿色金属外壳,门用一把挂锁锁着。陆维桢走近时注意到锁具的锁梁上有一层薄薄的润滑脂——不是用于防锈的常规保养,更像是为了减少开锁时的摩擦声响而涂的。 他从口袋里取出一把小号螺丝刀和一把钳子,撬开了挂锁的锁梁。锁弹开时几乎没有发出声音。他打开配电箱门,内部除了标准的空气开关和接线端子排之外,在箱体底部靠近背板的位置多了一个手掌大小的黑色盒子,用双面胶固定在一个不遮挡其他接线位置的空隙里。盒体侧面有一根极细的天线引出,沿着箱体内的线槽路径走向箱壁的通风孔处延伸出去。 “找到了。“陆维桢压低声音对身后的顾晏说。他蹲下来用手机拍了几张黑色盒子的照片,然后观察到盒子表面有一枚几乎不可见的微型指示灯,以约每三秒一次的频率缓慢闪烁——和物流园中继器的待机状态指示一致。盒体侧面有一个微型usb接口,接口内部的金属触点表面有多次插拔造成的轻微磨痕。 “usb接口被反复使用过。“陆维桢说,“而且接口周边的塑料外壳上有一小块磨损区域,形状和尺寸与一种微型读卡器吻合。可能有人定期通过usb接口往这台设备里拷贝配置文件或者更新任务参数。“他把那磨损区域的照片拍下来存档,然后继续观察盒子的连接线——只有一根细同轴线从盒体引出,沿着配电箱的线槽通往地下的埋管入口,方向朝向航空动力研究所主试验大楼。 “它的信号收发端接到了地下埋管,然后连回研究所。“陆维桢直起身,“不是独立的无线设备。它是研究所内部那条信号链路的延伸端——从弱电间的转换器引出一路信号,通过地下埋管进入工地配电箱,再由这台盒子做信号中继和低功率覆盖。廖维进入工地之前发出短信号到这台盒子上,盒子把它转发给取信人。“ 顾晏站在配电箱侧面的通道里用信号分析仪再次扫了一遍盒子附近的电磁环境。确认盒子的工作频段和物流园中继器一致后,她把频谱仪的扫描频率做了一次细微的偏移,捕捉到了一段间隔约六秒的窄带脉冲。“盒子除了接收廖维的信号之外还在发另一组周期性脉冲——每隔六秒一次,可能是向远端的接收器发送位置确认。循环周期非常稳定,像是出厂预置的参数。“ 陆维桢把配电箱门重新合上,挂锁扣回原位。他在工地内的材料堆旁边站了一会儿,把几个时间节点在脑子里重新对齐:围挡区施工两周后结束,廖维的交接窗口依赖这个工地内部的隐蔽性,一旦施工队撤离、围挡拆除,这个交接点就会失效。这就意味着他需要在剩下的两周内建立新的交接渠道。而今晚或者未来几天内很可能是这个交接点的最后一次有效使用。 他转身走出工地北侧的临时入口时,顾晏正站在门外的人行道上用手机看着什么。见他出来她把手机侧过来,屏幕上是一张刚收到的消息截图——周承岳从研究所安保系统的后台调出了廖维今天的工作排班。排班表显示他今天下午三点到晚上十点有一个“设备巡检“的任务,任务备注栏里写着“调试台架传感器检查“。 “他把今天的工作结束时间排到了十点。“陆维桢说,“如果今晚是他计划在围挡区做最后一次交接的时间窗口,他在九点到十点之间结束工作,然后到围挡区去放东西。我们可以在他进入围挡区之后截停他,同时让地面组在围挡区外围监视可能出现的取信方向。“ 他把安全帽摘下来放回铁皮门内侧的挂钩上,反光背心叠好放回原处。两人沿着来路往回走,步子平稳没有加快,期间没有和工地内部的人员发生任何接触。回到车旁边的时候,陆维桢把配电箱内盒子的照片翻出来又看了一遍,然后收起手机坐进后排。 信号分析仪在返回途中被他重新打开,又扫了一遍围挡区周边的频谱。盒子仍在运行,周期脉冲稳定输出,频率没有偏移。然后他在频谱曲线的边缘捕捉到了一个几乎不可察觉的微弱变化——盒子的主频旁边出现了一个极窄的副峰,能量比主峰低约二十个分贝,时间间隔不规律。 “这组副峰的出现时间和格式,“顾晏接过设备细看了一遍波形,“看起来像是某种数据写入操作的信号残留。刚才有人在远端向这个盒子发送了一条数据。“她对照了一下时间戳,“发送时间在七点五十八分——我们离开配电箱之后大约十分钟。有人在盒子接收到新的配置参数或者指令。“ 陆维桢把那组副峰保存下来。他望向车窗外不断后退的城市轮廓,远处的航空动力研究所园区在天际线上逐渐变小。那台配电箱里的黑色盒子现在可能正在执行一条新的指令,也许和今晚的交接计划有关。它的副峰频率在频谱图上像一道细微的墨痕,在人声扰动的早间环境中安静地附着在规律的周期脉冲旁边,等待着当天下午到傍晚之间被激活的那个时刻。 第29章 收网 下午三点,陆维桢回到龙科院地下三层的时候,操作台上已经铺开了一张航拍照片——航空动力研究所园区下午时段的卫星图,分辨率足以辨识建筑物的屋顶轮廓和地面车辆的位置。周承岳站在操作台旁边,手里拿着一张叠好的a4纸,上面用红笔标注了三个位置:试验大楼一楼会议室、弱电间的楼层平面图、以及围挡区北侧配电箱所在的具体坐标。这三个点的连线在地图上形成一个不规则的三角形,每个点之间的距离都在步行可达的范围内。 “外围组在围挡区南侧、东侧和北侧建立了三个观察点位,“周承岳把纸展开后平放在图纸旁边,“北侧点位距离配电箱约四十米,视野可以覆盖配电箱周围整个区域。廖维进入围挡区之后如果通过北侧配电箱做交接动作,北侧观察位能完整目视记录整个过程。“ 陆维桢俯身看了一遍地图上的点位分布。北侧观察位选择了围挡区外一栋三层建筑的天台,从那个角度可以俯视配电箱所在的北侧边界。东侧和南侧的观察位分别覆盖了工地入口和施工区域的内部通道,能提供不同的视角来确认廖维的进入路线和移动轨迹。 “今晚如果他进入围挡区的时间段是工作排班结束之后,“陆维桢直起身说,“大概是九点到十点之间。那时候园区内部人员流动已经很少了。他走到围挡区的人行路径不会经过安保岗亭,可以利用园区内部的联廊和通道绕行。但最终要进入工地北侧边界,必须经过围墙和围挡之间的夹道。那条夹道没有监控覆盖,也几乎没有照明。“ 周承岳从夹克内袋里取出一只掌心大小的设备放在桌面上,外壳是黑色磨砂材质,侧面有一个微型镜头和两组传感器。“这是主动式低光成像仪,可以在无环境光的条件下捕捉三十米内人体活动的热信号和轮廓。北侧观察位的人员会携带这台设备锁定配电箱周围的区域。“ 陆维桢看了一眼那台设备的外形,然后收回目光坐到了操作台前。他没有说话,但他在心里把整个时间线从头到尾过了一遍——廖维在晚间进入围挡区、在北侧配电箱前停留、完成数据交接或放置动作。如果今晚是他的最后一次操作,他会比平时更谨慎,可能在移动路径上做额外的迂回或停留。 “廖维的手机信号今天有没有异常波动?“他问。 周承岳翻开手机的加密通讯应用看了一眼,然后抬头说:“有。今天中午十二点左右,他的手机短暂地连接了一个非常规基站节点,切换时间只有不到两秒。这种短时基站切换通常发生在手机移动到某个信号覆盖边缘区域时——但他今天中午应该是在办公室,办公室所在的位置按理说不会有基站切换。“他停了一下,“那个节点的归属运营商和物流园中继器通信所用的运营商相同。“ 陆维桢的手指在桌沿上停住了。中午十二点的基站切换,意味着廖维在办公室期间可能收到了一条通过特定基站发送的短消息或触发信号,信号来源和物流园的通信基础设施同属一套网络。那条消息可能是对他今晚操作的最后确认——在正式行动开始之前,主控端在向他发送一次“仍然有效“的信号。 “他知道今晚是最后一次。“陆维桢说,“主控端已经通知了他。“ 顾晏从大厅东侧走过来,把手中那台升级过天线的便携式频谱仪放在操作台上,天线端多了一组宽频接收模块。“围挡区配电箱那台盒子的周期脉冲信号从中午十二点十分开始发生了变化——脉冲间隔从六秒缩短到了四点五秒左右。这种变化通常意味着设备进入了高活跃度准备状态,准备在较近的时间窗口内接收或转发指令。“ 她调出频谱仪上保存的波形变化记录展示给两人看。脉冲间隔的变化曲线从中午十二点十分开始变密,然后稳定在了新的频率上,没有再变回去。 陆维桢看着那条波形曲线在屏幕上停了一会儿,然后站起身来走向折叠床旁边的储物柜,从里面取出了一件深色软壳外套换上。他把手机、钥匙、工具钳和一副薄手套分别装进了外套的各个口袋里。拉链拉好之后他转过身来,看向周承岳和顾晏。 “他去围挡区的时候,我跟着进去。不需要近距离接触,只需要确认他放置物品的位置和方式。如果他从配电箱中取出了什么东西而不是放置了什么东西,这个区别很关键——取出意味着他在回收旧设备,放置意味着他在投送新的数据。两者对应的后续处理方式完全不同。“ 周承岳看着他沉默了两秒,然后开口说:“你进去之后如果他被惊动,你会成为园区内部唯一一个在围挡区附近没有合法身份的人。外围组会在五十米外,他们过去需要大约十五秒。“ “我知道。“陆维桢说。 晚上九点四十分,陆维桢站在航空动力研究所东侧围墙外的一片行道树阴影中。他沿着围墙外侧的行人道走到了与围挡区北侧边界平行的位置,然后借助一处栽在围墙内侧的树木枝干的支撑,翻过了围栏。落地的位置正好在围挡区的铁皮围栏和主体建筑之间的夹道里,地面覆盖着碎砖和硬化的混凝土渣,脚下踩上去的触感让他每一步都放低了重心,使声响压到最低。 他在夹道中向前移动了几步,贴着围挡的铁皮壁面观察配电箱的方向。透过材料堆和预制构件之间的缝隙,他看到配电箱侧面的地面有一处微小的反光——像是刚被踩过的地方留下的湿润脚印,踩痕的边缘还有一层薄薄的水汽在夜晚的空气中缓慢蒸发。距离他在那里放置物品的时间并不远。 然后他听到夹道另一头传来脚步声。很轻,踩着工地地面碎砖的节奏,步伐均匀,正在沿着材料堆之间的空隙向配电箱方向移动。陆维桢站在原地没有动,把自己贴在围挡铁皮的阴影和材料堆之间的夹角里。一道手电光从材料堆边缘掠过,光线没有扫到他的位置。 廖维出现在配电箱前面。他穿着白天在排班表上看到的深灰色夹克,手里没有提包也没有明显的物品。他在配电箱前面蹲下来,打开了挂锁,箱门打开之后他没有立即操作内部的盒子,而是先侧头朝四周扫视了一圈。手电的光束在他扫视的过程中短暂地划过陆维桢藏身的夹角边缘,但那个角度恰好落在材料堆的阴影最深处,手电的反光被粗糙的预制构件表面散射掉了。 廖维收回视线。他伸手到配电箱内部,用手指在黑色盒子的侧面摸了一下——不是放置物品的动作,而是确认某样东西还在原处的检查动作。然后他关上了配电箱门,重新挂好锁,站起来沿着来路快速离开了。 陆维桢在夹角里保持静止,等他脚步声在材料堆的间隔之间逐渐变小消失,才从阴影中走出来。他蹲到配电箱前面重新打开了挂锁和箱门。手电的光打在盒子侧面的usb接口上——接口周围出现了一圈微小的材料位移痕迹,像是被夹持过或者被触压后的轻微变形。廖维刚才做的不是放置也不是取出,而是确认动作。他在确认盒子仍然固定在其安装位置且没有被更换过。 陆维桢直起身,重新锁上配电箱门。他在工地材料堆的暗影中站了一会儿,视线落在配电箱侧面刚刚被关闭的那扇金属门上。廖维没有在这台盒子上放置任何新的数据介质。他只是来确认盒子仍然在它应该在的位置。那今晚的数据交接可能根本没有发生在他身上——或者,交接的方式已经改变了,不再需要通过物理介质在工地内部完成。 他转身沿着来路返回围墙处,翻出围挡区落到了外侧的夹道地面上。在落地的瞬间,他的手机震动了一下——一条来自顾晏的消息,发送时间在三十秒前:“频谱仪在廖维进入围挡区的同时捕捉到一段短暂的数据流,发送位置从测试大楼一楼会议室方向发出,长度约十兆字节,目的地坐标匹配公交站台侧面的基站id。数据流在五秒内完成传输后信道恢复空闲。“ 数据已经传完了。廖维去工地配电箱确认盒子状态,只是他在最后一步操作之前做的确认检查。真正的数据在今晚早些时候已经通过那间会议室里的终端直接发往公交站台的基站方向。那座公交站台旁边的某个设备已经收到了数据,可能在几分钟内就会被取走。 陆维桢站在围墙外侧的夹道里,夜风从行道树的间隙穿过,吹动外套下摆的边缘。他在原地站了片刻,手机屏幕在黑暗中亮着微光,顾晏的消息上方是周承岳在三分钟前发来的一行字:“公交站台北侧约五十米处有一辆深色轿车停靠,引擎运转,大灯关闭。停车位置和站台广告牌之间视线畅通。“ 第30章 截停 陆维桢从围挡区外侧的夹道沿着围墙快速向北移动。夜风迎面灌进来,他的外套下摆在快速行走中向后翻动。他边移动边在手机上给顾晏回了一条消息:“公交站台附近那辆深色轿车有没有人员上下车动作?“消息发出去大约十几秒后回复弹出,简短:“没有。停车后车门未开启,大灯保持关闭,引擎持续运转。“ 他加快脚步,从围墙外侧的绿化带切向公交站台方向。公交站台所在的位置是研究所园区南侧围墙外的一条支路,路面较窄,两侧种着行道树,夜间车辆少。他贴近路侧的灌木丛边缘停下脚步,透过树冠的间隙观察公交站台周围。站台上方的灯箱亮着白光,下方候车椅上空无一人。站台北侧约五十米处,一辆深色轿车停在路边,车窗全黑,车身在路灯下泛着暗色的哑光漆面。引擎盖上方没有散热蒸腾的热气,说明它停在这里的时间可能比预想的更久。 “天工“系统的光屏在他视野里亮了一行字:“该车辆停放位置与公交站台广告牌之间直线距离约四十七米。如果车内有人员在使用定向接收设备,该距离在设备的典型覆盖范围以内。“ 陆维桢没有从灌木丛后出来。他在那个位置观察了大约一分钟,轿车没有任何动作——没有人员上下车,没有车窗升降,没有灯光变化。但引擎持续运转说明车内有人,并且准备随时启动。 周承岳的消息在这时弹出来:“外围组已从东侧和南侧两个方向接近,距离目标车辆约一百米。你所在位置可以观察到车辆北侧和车尾方向。如果车内人员启动车辆撤离,他有两条路线:沿支路向西进入主干道,或掉头返回东侧的老街区。“ 陆维桢把手机收回口袋。他重新看向那辆深色轿车,视线落在车尾的方向——排气管处有一缕极淡的白色水汽正在夜风中缓缓飘散,说明车辆的发动机已经运行了较长的一段时间,水温正常,处于稳态怠速状态。一个长时间在原地停着等待的人,必然在等待某个特定事件的发生。可能是接收数据,也可能是在确认某条运输线路的通畅状态后继续前进。 顾晏的下一条消息在几十秒后到达:“我已经拿到了公交站台广告牌内部空间的结构信息。广告牌箱体内部有一层检修空间,通过侧面的锁孔可以打开。我刚才远程查询了站台维护记录,该广告牌在两周前有过一次维修记录,维修项目标注为更换照明面板。“ 广告牌的检修空间。数据可能通过无线信道进入了设置在检修空间内的某个接收设备,然后被取信人在晚些时候取走。但公交站台是公共场所,取信人不可能在站台上逗留过长时间而不引起注意,所以取信的动作应该非常短暂——开门、伸手、取出、关门,整个过程只需要不到十秒。 陆维桢在灌木丛边缘蹲得更低了。他看着那辆轿车前方的路面,等待它的前灯亮起或者排气管水汽的形态变化。如果取信人已经取走数据并回到了车上,那车辆很快就会驶离。如果取信人还没有取,车辆会继续停在这里等待一个行动时机。 时间在蹲守中缓慢流过。大约过了七八分钟,公交站台的灯箱忽然从白光切换到了一段短时的不稳定闪烁,持续时间约两秒,然后恢复到了正常的稳定亮光。这个闪烁的持续时间太短了,如果不是因为一直在盯着站台方向,几乎不会被注意到。但陆维桢看到了——光箱的短暂闪烁频率和一般的供电波动不一样,更像是某种电子设备在完成数据写入或读取时的瞬时电流变化引起的电压跌落。 “公交站台灯箱刚发生了一次短时不稳定的闪烁,“他用手机给顾晏发了一条语音,声音压到最低,“可能是在写入数据或者完成一次通信握手。“消息发出后他没有放下手机,而是继续观察着公交站台的方向。灯箱的白光恢复正常后的平静持续了大约又半分钟,然后那辆深色轿车的前灯亮了。车灯亮起的同时,引擎的怠速声升高了一个档,车辆开始向前移动。 轿车起步的速度不快不慢,没有急加速也没有转向灯,以平稳的低速向前驶出停车位置。陆维桢在它经过公交站台前方时利用路边一处电话亭的遮挡侧移了一段距离,视线从轿车的前窗玻璃掠过。驾驶座上坐着一个人影,面部被车内的暗色遮挡着,无法辨认。但他在那个人影的轮廓上注意到了一个细节——驾驶员在通过公交站台前方时右肩略微向左倾斜了一下,像是把手伸向副驾驶座的方向拿东西。那个动作的幅度和频率暗示他刚刚从副驾驶座上取走了某个物品,可能是从站台广告牌取回后放在副驾驶座上的介质或者设备。 “车辆启动了,正在沿支路向主干道方向行驶。“陆维桢给周承岳发了这条消息,然后从灌木丛边缘站起来开始沿路侧的绿化带快速跟踪那辆轿车的移动方向。轿车在一个路口右拐上了主干道,车速开始提升。他停下来看着车尾灯渐渐变小汇入主干道的车流,然后转身穿过人行道走向公交站台。 他在站台广告牌的侧面停下。灯箱侧面的检修口面板锁孔附近有一圈浅浅的擦痕,锁孔内部有新打开的金属光泽。他用手机拍了一下锁孔的照片,然后用一把窄扁的工具插入锁孔,轻轻撬动。面板弹开了。内部空间里露出的并不是常规的照明驱动模块——角落的金属支架上用双面胶固定着一只手掌大小的设备,黑色磨砂外壳,侧面有一根外接天线延伸到灯箱顶部。设备底部的一枚指示灯在柜门打开后从绿色切换到了熄灭状态,像是一种检测到柜门被开启后自动关闭工作状态的防护逻辑。 一只在柜门开启后自动关闭信号的接收器。这意味着如果有人检查这只设备,在它被看到的同时它已经不再发送任何信号。但它的存储部分可能仍然保存着刚刚接收到的数据。陆维桢没有取出那台设备,只是用手机快速拍了两张照片记录位置和型号标识,然后关上面板重新锁好。他把那一小段微弱的记忆保留在自己脑子里——设备型号标签上的数字序列,和他之前见过的一台暗潮设备的外壳标识存在相似性。 他站起来离开公交站台,沿支路原路返回,到了路灯较暗的段落才拿出手机,给周承岳发了一段完整的时间记录:“轿车从公交站台驶离的时间点与灯箱不稳定闪烁的时间点间隔约四分钟。取信动作可能在灯箱闪烁结束之后立即完成,然后车辆启动离开。目前设备仍在广告牌内部,数据可能已经通过无线方式被车辆取走,也可能设备内部存储了一份副本。建议优先分析轿车的行驶路线是否与物流园方向一致。“ 他走在夜间的支路上,脚步声在空旷的人行道上被行道树的阴影吸收。手机屏幕的光在他手中亮着,消息正在发送给周承岳。他向前走了几步,站到了路灯和树影的交界处。灯箱刚才那一瞬间不稳定的闪烁,像敲击在某根绷紧的琴弦上发出的最后一个音符,被夜风带走了,但它的余音还在。 远处的主干道方向已经看不到那辆轿车的尾灯了,只有一长串稀疏的车灯在夜间的道路上游移着向城市的不同方向分散。他沿着支路继续向前走,用手机把刚拍到的设备型号标签照片又看了一遍,照片上那串数字序列在屏幕的光线下排成一行的形状,和他记忆里之前见过的那台设备外壳标识之间的相似感,在夜色的覆盖下逐渐变得更加具体——不只是相似,布局几乎一致,像是同一批产品的不同个体。 第31章 聚合 陆维桢回到龙科院地下三层时,大厅里的灯比平时亮了一个档位。操作台上的工作站在运行着,屏幕分成了四格画面:物流园存储卡的数据目录树、公交站台灯箱内设备的照片放大图、围挡区配电箱盒子的脉冲波形图、以及一张标注了所有节点位置的蓉城电子地图。顾晏站在工作站前面,面前摊开着一本翻到中间页的笔记本,上面用箭头和简写连接着不同位置的信息节点。 她听见脚步声抬头看了他一眼,然后把笔记本朝他的方向转了半圈。“路线已经出来了。轿车从公交站台驶离之后没有上主干道,而是在支路上走了大约六百米之后拐进了一个小区的地下车库。车库只有一个出入口,周组长已经在车库里找到了那辆车,停在角落的长期租用车位上。车上没有人员,后备箱里有一只空着的黑色设备箱,内部衬垫形状和你在公交站台设备上的外壳轮廓匹配。“ 陆维桢走到操作台前,低头看了一眼笔记本上画好的路线图。从公交站台到那个小区车库的距离很近,车开过去只需要不到三分钟。取信人把设备从公交站台带回车上之后,在车库里做了拆卸和转移,然后把设备带离了车辆。车库本身可能只是中转过程中的一个停靠点。 “车库有没有其他车辆在那段时间出入?“他问。 “有。“顾晏把笔记本电脑上的一段监控记录调出来,“在那辆轿车进入车库之后大约六分钟,一辆白色面包车从同一出入口驶出。面包车的行驶方向与轿车来的方向相反,驶向了绕城高速入口方向。“ 陆维桢在笔记本的路线图上又加了一个箭头,从小区车库延伸到绕城高速,标注了“白色面包车“。然后他把物流园存储卡的目录树和公交站台设备的照片放在一起比对。两台设备的外壳标识布局接近,但公交站台设备的型号标签下面多了一行手写体的附加编码,字体细小,颜色和背景近似。他放大那张照片后辨认出了那行附加编码的内容——一组字母和数字的混合序列,以“log-“开头,后面跟着六位数字。 “log-202471“。“天工“系统的光屏自动匹配了这条编码的格式,返回的结果是一个对应的逻辑标识:“该编码与物流园中继器存储卡文件系统中某一目录的命名后缀一致。该目录位于卡上ext_my文件夹下层,存储的是绵阳方向的数据包在蓉城中转后生成的传输日志副本。“ 同一套编码出现在两个不同的设备上。公交站台灯箱内的接收器和物流园配电箱里的中继器,它们在同一个数据归档体系内被标定了不同的逻辑节点编号。 陆维桢在笔记本上把公交站台设备和物流园中继器用一条横线连接起来,在线上方写了“共享命名规则“。然后他在线的下方又加了一条备注:“数据路径:研究所测试台→弱电间转换器→一楼会议室终端→公交站台设备→轿车→车库→白色面包车→绕城高速→目的地未知。“ 他在“目的地未知“旁边画了一个问号。 顾晏转过身来,在键盘上输入了一组查询指令,调取了面包车驶出车库之后进入绕城高速入口的监控截图。截图显示白色面包车在高速入口处没有停车缴费,使用了etc通道通过。etc账户的登记信息被系统自动抓取,返回的车主名字是一个公司名称:一家注册在蓉城的物流运输企业,主营业务是省内短途货运。该公司名下共有六辆营运货车,面包车是其中一辆。 陆维桢盯着那家公司的名字看了一会儿。这家物流公司和东郊那家精密加工企业之间没有直接股权关联,但如果他把自己收集到的信息做一次网络图式的叠加——暗潮在蓉城的节点布局已经覆盖了研究所内部、工地、公交站台、物流园和东郊工厂等不同物理位置。它们之间依靠物流运输企业提供的车辆在不同站点之间循环移动物资和数据。 “这家物流公司的运营区域覆盖了蓉城、绵阳和沿海方向的主要货运线路。“陆维桢说,“它名下的六辆车可以在四川省内自由行驶而不引起注意。如果其中一辆车定期从蓉城接收物资并运往沿海方向,这条线路就是暗潮在蓉城获取到数据之后向境外转运的通道。“ 他回到笔记本电脑前,把那家物流公司的名字输入系统进行检索。“天工“系统在数秒内返回了一份企业信用信息摘要——公司注册于五年前,初始业务范围是普通货物运输。但在大约三个月前,该公司的经营范围进行过一次变更,新增了“仓储服务“和“国际货运代理“两项业务。那两项业务被加入的时间节点恰好和廖维开始从研究所往外传数据的时间点吻合。 “经营范围变更不是巧合。“陆维桢把笔记本屏幕转过来让顾晏也看到,“三个月前,这家公司被扩展成了具有中转和跨境运输能力的复合型物流节点。蓉城收集到的数据通过它的车辆体系集散,一部分可能在当地存储,另一部分经由沿海方向继续向外转运。“ 顾晏站在他身边把那条信息记在了笔记本的空白页上。她记完之后停顿了一下,然后开口说:“公交站台那台设备现在还留在广告牌内部。如果我们在取出它之前先弄清楚它和物流园中继器之间的通信协议是否存在直接匹配关系,那下一步就可以通过它获取到物流公司下一步的运输计划——比如下一次转运安排的车次和时间。“ 陆维桢合上笔记本。他站起来走到白板前,把公交站台设备的位置标注在已有的节点图上,和物流园中继器、围挡区配电箱用不同颜色的线条连接起来。他在三条线交汇的地方打了一个星号标记,然后在星号旁边写了一行字:“协议匹配与否决定下一步行动方向。“ 他转过身来面对操作台方向,顾晏已经坐回工作站前开始调取设备通信协议的对比数据。她的手指在键盘上快速敲击着,屏幕上陆续打开了几组信号的波形对比图,分别来自物流园中继器的通信记录和公交站台设备在安装后初步扫描时捕获的原始信号特征。两组波形在同一个频谱分析的界面上重叠排列时,它们的脉冲间隔、上升沿陡度和载波中心频率三条关键指标以几乎相同的斜率呈现在坐标图上,从视觉上几乎无法区分。 “协议完全匹配。“顾晏把重叠波形的对比结果保存下来,“公交站台设备和物流园中继器使用同一套通信协议和相同的硬件平台。如果我能通过工作站向物流园中继器发送一条指令,让它回传自己存储的数据内容——那它的回传格式刚好可以被公交站台设备完整接收,即使物理设备之间没有直接连线。“ 陆维桢站在白板前面,手中的马克笔的笔帽还没有合上。他在星号旁边又补充了一行字,这次字迹比刚才稍微重了一些:“公交站台设备是物流园中继器的远程终端。中继器通过协议层向公交站台设备推送数据,公交站台设备通过路灯电源供电和无线信道接收,再由取信人定期取走。整套系统不需要联网,不需要人工干预,只靠预设的传输逻辑就能自主运行。“ 他放下马克笔。白板上完整地呈现了暗潮在蓉城数据采集网络的全貌——从研究所内部的光纤分流接口开始,经过弱电间、会议室、围挡区、公交站台、物流园这几个物理中继点,最终由物流公司的车辆体系向沿海方向转运。廖维和围挡区电工属于这个流程中的主动人力环节,负责维持设备状态和放置提取数据。其余的部分全部由自动化设备完成,不需要任何额外人员的参与。 光屏在视野里亮了一行字:“物流园中继器存储卡的常规轮询周期还剩余大约十天。如果商务车在下一次轮询时发现卡被换过,他们对网络状态的安全性判断会重新评估。在此之前,蓉城范围内的剩余节点仍可以继续运行。“ 陆维桢看着白板上的全图,然后转身走回操作台前坐下来,打开笔记本上保存着的围挡区配电箱盒子的脉冲波形记录,在波形图上找到了那台盒子发出的周期性确认信号的时间轴——下一次确认信号将在明天上午七点三十分左右发出。他关上笔记本,把白板上的星号标记又看了一遍。那张图的最后一段连线还缺一个终点标记。 第32章 锚点 早晨七点十五分,陆维桢站在操作台前,面前并排摆着两台笔记本屏幕。左边是物流园中继器存储卡的完整目录树,右边是公交站台设备的协议解析结果。两套系统的底层通信参数被顾晏连夜完成了逐项比对,结果已经汇总成一张对比表格,显示它们的载波频偏、调制方式和数据帧结构完全一致。他在这张表格的末尾加上了一个新的标注:“物流园中继器和公交站台设备共用同一套通信协议栈,且路由表中的上层节点标识指向同一个ip地址段。“ 他把标注栏旁边的问号划掉了。 顾晏从大厅东侧走过来时手里端着一杯新冲的速溶咖啡,她在操作台侧面站定,把咖啡杯放在远离键盘的位置,然后侧过头看了一遍陆维桢新加的那行标注。“上层节点标识对应的ip地址段解析出来了吗?“ “刚完成。“陆维桢调出了另一个窗口,上面显示着一组地理定位结果,“ip地址段归属一家沿海城市的通信服务商。定位精度在市区范围内,但具体到建筑层面还需要结合物理层的信号数据做进一步收敛。“他把窗口向下拉了一段,在底部看到了一行以前没注意到的备注——ip地址段的注册信息里有一条历史记录,显示该地址段在约四个月前曾被用于一条临时申请的跨境数据专线。专线的申请方是一家注册在沿海城市的贸易公司,该公司的主要业务范围标注为“电子元器件进出口“。 那家贸易公司的成立时间大约在六个月前,注册资本刚到门槛。它的注册地址和四个月前申请跨境数据专线的时间窗口之间存在先后顺序:贸易公司先成立,然后两个月后申请了专线,再一个月后蓉城的采集节点开始投入运行。时间线上的逻辑链条是完整的——先建好出口通道,再启动数据采集。 “沿海那条线是预先布好的。“陆维桢说,“蓉城的数据采集网络建成之前,数据出口通道已经准备好了。物流公司的车辆把数据运到沿海城市之后,通过那家贸易公司的跨境专线转运出境。整个链条从出口端倒推着建设起来的。“ 顾晏喝了一口咖啡,放下杯子时她的目光落在了沿海城市那一行的定位坐标上。“那家贸易公司的注册地址离港口不远,大约两公里。如果专线的物理终端也放在那个区域,那附近应该有相应的通信机房或者数据中心。“ 陆维桢把笔记本电脑上的地图软件打开,输入了贸易公司的注册地址,地图上浮现出一片灰色建筑群的轮廓。那片区域靠近港口物流区,周边分布着几座仓储设施和一座小型通信枢纽楼。枢纽楼的立面照片在街景模式下显示为一栋四层灰白色建筑,外墙挂着几家通信运营商的标识牌。其中一块标识牌上的运营商名称与ip地址段的注册服务商一致。 “枢纽楼里有信号节点。“陆维桢在贸易公司坐标和枢纽楼位置之间画了一条短的连线,“物流公司的车辆到达沿海城市之后,从车上取下的数据设备会被送到枢纽楼接入专线,或者直接在枢纽楼内完成数据转存和出境传输。整个过程不需要人员进入港口海关区域,全部在通信服务商的机房里完成。“ 周承岳从大厅入口走进来,手里拿着加密手机。他在操作台侧面停下,把手机屏幕朝陆维桢和顾晏的方向转了转,上面是一张从沿海城市通信枢纽楼外围监控中截取的画面——一辆白色面包车停在枢纽楼卸货区,车身侧面没有标识。画面上的时间戳是今天凌晨一点二十分。 “和蓉城小区车库里那辆白色面包车车型、颜色一致。“周承岳说,“车牌经过处理后无法直接辨认,但车身侧面后窗的黑色贴膜边缘有一处划痕,形状和蓉城监控拍到的面包车贴膜划痕吻合。“ 同一辆车,在蓉城装货后在夜间行驶数百公里抵达沿海枢纽楼。车辆到达后停在了卸货区,然后货物被送进了枢纽楼内部。陆维桢看着那张截图上白色面包车的轮廓,边缘有一圈路灯的微光勾勒出车顶的弧度。沿海城市凌晨的街灯和蓉城不同,偏冷白的色温把面包车的车漆表面照成一种灰蓝色的哑光质感。 “这条线还在运行。“陆维桢把笔记本屏幕合上,“蓉城这边采集的数据通过廖维和公交站台送到车上,再由物流公司体系运到沿海,最后通过专线出境。整个过程是流水线式的,每个环节只负责自己的那一段。拆掉任何一个环节都只能暂时中断流程,但链条本身只要还有人在操作就可以重新建立。“ “那要拆掉链条,得把最底层的接点切断。“顾晏说,“物流公司车辆用于转运,贸易公司专线用于出境,暗潮的人员网络只负责设备维护和定期取货。如果我们同时切断物流公司的车辆调度能力和贸易公司的数据专线两端,链条就被打断了,新链条的重新建立需要时间。“ 陆维桢站起来重新走向白板。他在现有的数据流全图上沿着物流公司→沿海贸易公司的路径画了一条粗线,在粗线的末端画了一个停止标记。他在停止标记旁边写了一行字:“目标:同时中断车辆转运和专线出境,截断数据流向境外。“ 写完之后他停了一下,在停止标记的上方加了一行附加条件:“需在物流园中继器下一次轮询之前完成。否则卡被取走、新链路的调整可能会被提前启动。“ 周承岳站在白板侧面看完了新添加的内容,他的目光在“同时“两个字上停留了片刻。“同时“是一个需要精确时间配合的操作条件——车辆转运和专线出境两端的行动必须同步执行。如果一端先动,另一端得到消息就会提前撤走。 “明天白天之前。“周承岳说,“物流公司调度和贸易公司专线的同时行动需要协调车辆追踪和专线切断两套操作。“ 陆维桢把马克笔放回笔槽里。大厅里的照明在白天的光线中显得均匀而稳定,重岳骨架的轮廓在操作台的侧面投下一道清晰而硬的阴影,右膝关节的暗金色纹路在光线下被照成一道窄窄的亮线。他转身走向重岳骨架,伸手在右膝外壳表面停留了一下,指尖能感觉到金属材质的表面略微偏凉,在空气中维持着与室温接近的热平衡状态。 光屏在视野里亮了一行字,比平时的提示更简短:“物流公司名下六辆营运车辆中有一辆处于非运营状态的备用车。备用车的gps信号显示它昨天下午从蓉城出发,目前位置位于到达沿海城市之前的最后一个服务区附近。如启动截停,建议优先识别该车。“ 陆维桢把视线从光屏上移开。他站在骨架旁边转了个角度,视线刚好能越过顾晏的肩头看到白板上的全图。所有线条在光线下汇聚又展开,上面布满节点间的连线,每个节点上都标注了他亲手写下的说明文字。远处的走廊里传来值班人员换班时走过地面的脚步声,在大厅外面的空间里逐渐走远。墙上的时钟指针指向七点二十分,距离围挡区配电箱盒子的下一次确认信号还有十分钟,物流园中继器存储卡的下一次轮询还有约十天,沿海方向备用车的gps信号还在继续向港口方向移动。 第33章 闭环 七点三十分,围挡区配电箱的盒子准时发出了确认信号。信号波形在频谱仪屏幕上出现了一组规律的脉冲序列,持续约三秒后结束。顾晏在旁边同步记录了信号的完整波形,将它与之前从物流园中继器捕获的通信样本做了对比,确认了信号格式的一致性。 “确认信号已发出,时间窗口和格式都符合预期。“顾晏把波形记录保存下来,“如果廖维今天没有特殊安排,这个信号就是他确认盒子状态正常的方式。“ 陆维桢站在操作台侧面,目光在沿海备用车的gps坐标和车辆行驶方向之间来回切换。备用车的信号显示它已经离开了最后一个服务区,正在向沿海方向行驶。按照当前速度,它将在上午十点左右进入沿海城区的范围。如果这辆备用车上载有从蓉城转运出来的数据设备,那么它的到达时间和物流公司常规的转运周期是吻合的。 周承岳从大厅入口方向走近,手机屏幕亮着,上面是一份刚收到的协调计划草案。“沿海那边的人已经在贸易公司注册地址附近做好了信号监测准备。专线链路如果被切断,他们能在三十秒内确认链路状态变化。物流车队的追踪组也已经锁定了那辆备用车的实时位置。“ “备用车到达沿海城区之后,它优先去的地方是那家贸易公司的注册地址还是枢纽楼?“陆维桢问。 周承岳低头看了一眼手机上的反馈消息,然后抬头说:“目前没有确切的路线规划。但从上一辆白色面包车的行驶记录来看,它在到达沿海城区后先停靠了贸易公司注册地址所在的那条街道,然后才去了枢纽楼。可能是两处地点都需要停留。“ 陆维桢在脑海里把两处地点的时间顺序过了一遍。贸易公司的注册地址和枢纽楼相距约两公里,如果车辆需要在两处分别停留,每次停留时间不会太长——应该只是放下或者取走某样东西。可能贸易公司地址处存放的是旧的数据存储介质,而枢纽楼负责将新数据送出境。备用车到达后,先到贸易公司放下旧的介质,然后到枢纽楼接驳新的传输流程。 “旧介质被替换下来后可能要回收。“陆维桢说,“物流公司不只是单向运送数据,它也在循环使用存储介质。车辆到达沿海后把旧卡取下来放在贸易公司那边,然后带一批新卡回蓉城继续使用。所以备用车到贸易公司地址的停留时间用于回收旧卡,到枢纽楼的停留用于送出新数据。“ 周承岳把这条逻辑快速整理成消息发给了沿海方向。大约两分钟之后他收到了回复,回复内容被精简成一行:“贸易公司地址和枢纽楼两处地点的行动可以同时执行。备用车在贸易公司地址停靠时截停车辆,同时切断专线——两个操作的时间差可以控制在一分钟以内。“ 陆维桢在白板上的“沿海“节点下方添加了一条时间线。他在时间线上标注了备用车预计到达的时间窗口,然后画了两条平行的短箭头,分别指向“车辆截停“和“专线切断“两个操作标记。他在两个标记之间画了一条竖线连接,标注了“同步执行“。 “车辆截停后,车上带回蓉城的旧卡如果被取走,就能进一步确认蓉城和沿海之间的数据流动周期。“他说,“同时专线切断后,贸易公司那边的数据通道就断了,就算备用车上的新卡没被截住,数据也无法通过专线送出。“ 顾晏一直站在操作台侧面没有坐下。她手里的频谱仪还开着,屏幕上持续显示着物流园中继器的信号状态。她看了一眼屏幕然后抬起头来,看向陆维桢的方向:“物流园中继器的轮询周期是常规循环,但它的主频边沿有一组从昨天开始出现的微幅波动。波动的周期和备用车的位置更新频率接近,可能在通过中继器同步备用车的状态信息。“ “中继器在监控车辆状态。“陆维桢转过身来,“物流园中继器不只是接收和转存数据——它还在跟踪物流公司车辆的实时位置。备用车的gps信号可能被中继器同时读取并存储了一份。如果我们截停了备用车,中继器会在下一次心跳信号中检测到车辆位置不再更新,然后触发异常状态。“ 他快速走到操作台前坐下,打开了物流园中继器的远程访问界面。利用之前从物流园中继器存储卡上获取的协议样本,他向中继器的管理端口发送了一条“车辆状态确认“的查询指令。几秒后中继器返回了一个数据包,包里包含了一组gps坐标序列——备用车过去四小时的行驶轨迹,位置更新频率均匀,最后一次更新时间在几分钟前。 “中继器确实在监控车辆位置。“陆维桢把返回的数据包保存下来,“截停备用车的同时需要处理掉中继器里的车辆定位跟踪数据。否则中继器会在备用车停靠后约十五分钟内向主控端发送车辆异常的警报。“ 周承岳立刻接上了这句话:“处理中继器数据需要多少时间?“ “从发送清除指令到数据被覆盖完成,大约需要五到八秒。“陆维桢看了一眼物流园中继器的操作界面,“清除指令的格式和常规数据回传指令相似,只需要把目标字段替换成中继器存储区的缓存地址即可。我可以在备用车截停的同时远程发送清除指令,把车辆跟踪数据从它的缓存中覆盖掉。“ 他低头在键盘上快速编写了一条针对中继器缓存的清除指令,把指令格式和物流园中继器支持的协议版本做了最后一次确认。保存好之后他抬头看了一眼墙上的时钟——八点零七分。 “备用车预计到达沿海城区的时间在十点到十点半之间。“陆维桢说,“距现在还有大约两个小时。这段时间内我需要确认清除指令是否会触发中继器自身的安全告警机制。如果会,就需要在发送清除指令之前做一次协议层的掩盖。“ 顾晏端着频谱仪的探头靠近工作站的天线接口,联机读取了物流园中继器的底层协议状态。她的目光扫过屏幕上展开的协议栈分段图,用一只手在键盘上快速敲击了几行指令,然后松开手让结果自己运行。几秒后,屏幕上的协议栈被折叠成了一行简洁的状态摘要,摘要末尾标着两行小字:“清除指令对中继器主控协议来说属于常规系统维护指令序列的一部分,不会触发单独的安全告警。主控端只有在收不到预期心跳信号时才会启动检查流程,而清除指令本身不改变心跳信号的发送间隔。“ 陆维桢把那行摘要内容记在了笔记本上。他站起来重新面向白板,在“车辆截停“和“专线切断“两个标记旁边各添了一个小字:“清缓存“和“断链路“。四个操作形成一个闭环,在时间线上并列排开。然后用一条线把它们全部框在一起,在线框的末尾写了两个字:“九点五十——行动启动倒计时。“ 他把笔放下,退后一步,看着白板上那个完整的操作计划图。所有节点都在上面了——从蓉城研究所内部的光纤分流口开始,经过弱电间、会议室、围挡区、公交站台、物流园,通过物流公司的车辆体系延伸到沿海城市,再通过贸易公司的专线出境。链条上的每一个点现在都被识别并且对应了具体的切断或清除措施。整条线将在今天上午十点左右被同时打断,从中间和末端两个方向同时施加切断力,使链条无法形成完整的回路。 光屏在他的视野里亮了一行字,字体比以前明亮,边缘带着一丝淡蓝的辉光:“建议在行动开始前再次确认备用车的位置及其是否载有原定从蓉城转运的数据设备。如果备用车只是空车补给,截停行动的意义会降低。“陆维桢没有抬头,他的目光落在白板上的全图上。那条从蓉城延伸出去直到港口的线条,每一个节点都对应着他亲手标注的内容和记录。他盯着那个锚点看了几秒钟,然后视线向下移到了操作台上的海岸线地图上,地图上沿海城市那片灰色建筑群的轮廓在屏幕光线下显得清晰可见,灰色的屋顶连成一排延伸向港口的方向。 第34章 断流 九点四十分,陆维桢最后一次刷新了备用车的gps坐标。信号显示它已经进入沿海城区范围,正在向贸易公司注册地址方向移动。车速从高速状态降到了城市道路限速以下,预计到达时间在九点五十五分左右。他把坐标数据同步发给了周承岳和沿海方向的执行组。 周承岳站在操作台侧面,手机保持通话状态,听筒里传出沿海方向现场的声音——有风噪和远处港口的低频机械轰鸣。他没有说话,只是举着手机站在原位,用目光看了一眼陆维桢的方向。陆维桢微微点了一下头。 九点四十七分,备用车的gps坐标在贸易公司注册地址所在的街道上停滞了。车辆进入了停车状态,位置精度显示它停在了目标建筑正前方。陆维桢的指尖悬在键盘上方,物流园中继器的远程操作界面已经打开,清除指令准备就绪。顾晏站在他侧面,频谱仪屏幕上物流园中继器的心跳信号稳定地维持着预设间隔。 “车辆停稳。“陆维桢说。 周承岳把手机贴近了嘴唇,说了一个字:“动。“ 陆维桢按下了回车键。物流园中继器端的清除指令在不到一秒的时间内通过远程连接发送到了中继器的管理端口。指令执行返回确认几乎在同一瞬间出现在界面上——缓存已被覆盖,车辆跟踪数据从中继器存储区中被彻底擦除。与此同时,沿海方向的专线切断操作同步触发,通信枢纽楼内的链路状态在后续的几秒内切换到了中断模式。 周承岳手中的电话听筒里传出沿海方向现场的简短确认——车辆已截停,车内人员在控制中。然后是一句关于专线的状态更新:“线路已断,链路两端均无信号。“ 三个操作在不到两分钟内全部完成。陆维桢的手指从键盘上抬起来,屏幕上物流园中继器的心跳信号依然以原有的间隔稳定输出。中继器没有察觉到任何异常。从它的视角看,车辆的位置缓存被正常更新覆盖,心跳正常,所有状态都保持着未受干扰的表象。 顾晏从频谱仪屏幕上抬起头来,她的目光在工作站上的物流园中继器状态界面和沿海方向的确认消息之间来回移动了一下,然后收回视线落在陆维桢的方向。她什么也没说,但她的姿态从屏息的状态中放松了一小格。 周承岳挂断了电话。他把手机放回夹克内袋,走到操作台旁边拿起一支笔在白板上的“车辆截停“和“专线切断“两个标记旁各打了一个勾。他又在“清缓存“和“断链路“旁边补了两个勾。四个勾排列整齐,在白板的白底上形成了一行短促的确认符号。 “备用车里面发现了什么东西?“陆维桢问。 周承岳把刚刚从电话里听到的反馈整理了一下:“车内后排座位下方有一只带锁的金属箱,打开后里面是一组数据存储卡,标注日期排列,覆盖了过去几周的采集周期。另外还有一部单独的加密平板电脑,系统处于待机状态,屏幕上显示着物流公司的车辆调度界面。“ 陆维桢在听到“数据存储卡“时已经在心里进行了快速的对应。那些卡上的数据覆盖周期和蓉城采集节点的运作时段吻合,确认了他此前的推断——备用车在蓉城和沿海之间循环运输存储介质。而平板电脑上的车辆调度界面则说明备用车的驾驶员同时负责现场调度确认,他通过那台设备确认沿途各节点的状态。 “平板电脑上的调度界面可能记录了其他节点的位置和状态信息。“陆维桢说,“如果它显示了对蓉城采集节点当前状态的实时反馈,那我们就有了完整的节点列表。“ 周承岳把这条信息转述给了沿海方向的执行组。几分钟后他收到了一组从平板电脑上提取的界面截图。截图显示了一个简洁的调度列表,上面标注了四个位置编号和对应的状态指示。其中三个位置的状态指示灯为绿色,一个为灰色。灰色的位置对应的编号是蓉城物流园的配电箱中继器位置——因为那张卡已经被换成了空白卡,中继器在逻辑上不再处于活跃的发送状态。 陆维桢在手机上调出之前在物流园中继器内部安装的那张空白卡的信号状态,确认它确实被系统识别为离线状态。那个灰色的状态指示灯提供了确切的反馈——主控端的调度界面已经将那个位置标记为待处理状态,但还没有触发进一步的行动。可能因为系统的判定逻辑中存在一个缓冲周期,在这段时间内允许中继器自行恢复。 “白色指示灯出现在调度界面上后,主控端需要多长时间做出响应?“顾晏问。 陆维桢在脑海中估算了一下暗潮系统的常规响应周期。从物流园中继器的异常标记出现到被人工确认和处理,中间通常隔着一个固定的时间窗口,结合之前的设备日志记录分析,那个窗口通常在几天之内,而不是几小时内。 “至少还有几天。“陆维桢说,“但备用车被截停这件事本身会触发更紧急的响应。物流公司会发现车辆没有按计划返回,然后启动备用方案。这之间的时间差可能比中继器异常标记的处理时间更短。“ 他重新打开笔记本上的物流园中继器操作界面,检查了清除指令执行后的状态反馈。中继器仍然在按预设周期输出心跳信号,车辆缓存已经被覆盖。如果主控端在接下来几个小时内有任何查询请求发送到中继器,它返回的车辆状态数据将是空白——这本身就是一个异常信号。 “需要给中继器回传一组假的车辆位置数据。“陆维桢说,“让它继续返回备用车正常行驶的轨迹,直到备用车原本应该在的时间点抵达沿海目的地。这样主控端在查询时看到的是一段完整的行程记录,直到车辆到达终点之后才停止更新。“ 他从车辆gps记录中截取了一段备用车过去几天的标准行驶轨迹,调整了时间戳后写入中继器的缓存。修改完成后,他让系统模拟了一次查询返回的测试,返回结果显示在屏幕上——一段平滑的行驶轨迹,终点和备用车原本的目标一致,所有关键参数和时间窗口的吻合。 “假的轨迹已经写入。“陆维桢合上了笔记本屏幕,“备用车在系统中仍然处于正常行驶状态,直到它按计划抵达沿海目的地。主控端在这段时间内不会收到任何异常通知。“ 他站起来走到白板前,在已经打了四个勾的操作列表下方又加了一行备注:“备用车假轨迹将持续至今日十二时,届时轨迹结束,中继器返回车辆到达状态。主控端如在该时间后查询备用车位置,将看到已到达终点的正常状态——但真正的车和货物已经不在原地了。“ 光屏在视野里亮了一行字,边缘比平时多了一层极浅的淡蓝色:“物理截停和链路切断两个操作均已完成。信息链条自蓉城至沿海方向已中断,两端之间的通信暂时性断绝。主控端在可预测的时间窗口内不会察觉异常。但备用车的失联和专线的中断会分别被各自体系的巡查人员在更长时间周期内发现,届时将触发第二层应急方案。“ 陆维桢看着那行字在视野里停留到自动淡出。白板上所有标记旁边都对应着已确认的操作结果,从蓉城到沿海的完整链条上,每个节点现在都处于被切断或清除的状态。他在链条最末尾的位置画了一个实心圆,把那个圆放在港口方向的标记旁边,然后退后一步,把马克笔的笔帽重新扣好。 远处的走廊里传来电梯门开启的声音,声音在混凝土结构的长廊中经过反射后传进大厅时已经变得很薄。 第35章 回声 沿海方向的消息在上午十一点左右陆续传回。备用车截停后,车上带锁金属箱内的存储卡被逐一编号封存,加密平板电脑的屏幕内容被完整镜像保存。周承岳把平板电脑的镜像文件通过加密信道传回了龙科院地下三层的工作站,陆维桢在那份镜像里找到了物流公司过去六十天的调度记录。车辆出发时间、目的地标记、货物类型编码、以及每个节点操作员确认状态的时间戳,构成了一张完整的时间轴。 他在时间轴上注意到了一个重复出现的模式:每隔大约七天,调度列表上会出现一个目的地标记为“综合仓储-北区“的条目,货物类型编码为“cr-07“,状态确认时间总是固定在傍晚六点到七点之间。这个条目出现的频率和其他节点的轮询周期不完全一致,cr-07的周期是七天,而物流园中继器的轮询周期是约十天。两个时间窗口在调度记录中错开排列,几乎没有重叠。 陆维桢把cr-07的条目单独提取出来,按照时间顺序排列。七天的周期和暗潮系统常规的通信周期格式不匹配,更像是某种不依赖于电子通信的、基于时间窗口的物理交接安排。他对照地图找到了“综合仓储-北区“的位置——蓉城北部一处物流仓储集中区,距离市区约二十公里,与之前暗潮使用的任何地点都不重叠。 “cr-07可能是一套独立运行的备用传输链路。“陆维桢对站在操作台对面的顾晏说,“它和物流园中继器、公交站台设备的运行周期不同步。如果主链路断了,这套七天周期的线路可能还在运行,而且它的目的地标记综合仓储-北区没有出现在其他任何节点的记录中。“ 顾晏侧过头来看了一眼屏幕上排列好的cr-07时间轴。她的目光在几个相邻的时间戳之间来回比对了几次,然后伸手在屏幕上指向了一个时间窗口:“最近一次cr-07的确认时间是在昨天傍晚六点四十分。它的下一次确认时间将在约六天之后——也就是备用车失联被主控端察觉之后才出现。“ 陆维桢在笔记本上记下了六天的窗口。如果主链路的断裂需要几天时间才能被主控端察觉并启动应急方案,而cr-07的物理交接节点将在大约六天后启动,那它的运行窗口将正好落在主控端启动应急调查的时段内。这是一个时间窗口的重叠。 “主控端在调查期间如果启动任何备用传输渠道,“陆维桢说,“cr-07可能是最早被激活的选项之一。它的运行周期不受电子通信影响,只需要人到场做物理交接。如果我们要在主链路断裂后继续阻断暗潮在蓉城的数据外传能力,cr-07这个点需要在六天内被找到和处理掉。“ 周承岳从大厅入口方向走过来,手里拿着加密手机,在走进操作台区域时他开口说了一句:“沿海那家贸易公司的注册地址今天上午已经做了实际核查,办公室处于空置状态。专线切断后通信枢纽楼的外来设备被技术组清走了,确认没有残留装置。“他在操作台边停下,看了一眼屏幕上cr-07的调度记录,然后继续说,“物流公司其他五辆车辆已经全部进入监控范围,没有发现新的异常移动。“ 陆维桢在周承岳的反馈和cr-07的时间轴之间做了一个快速的信息整合。物流公司的其他车辆仍处于正常监控状态,贸易公司注册地址空置,专线中断。蓉城目前的节点中,物流园中继器和公交站台设备已经被他更换了存储卡和做了被动监听部署,围挡区配电箱里的盒子在完成确认信号后应该处于闲置等待状态。但cr-07那条线还在运行,并且它第一次出现的位置“综合仓储-北区“在地图上没有和任何已知暗潮节点重叠。 “需要去一次北区仓储区。“陆维桢说。 周承岳没有多问,他低头在手机上看了一眼导航,然后抬头说了一个时间:“下午两点,车在门口。“ 午饭时间是陆维桢和顾晏在操作台旁边分了两份速热米饭。顾晏把其中一份的加热包拆开,倒入杯中的凉水,等待自热反应的间隙她把cr-07的时间轴再次打开,用笔记本上的地图软件叠加了交通流量数据,计算了从龙科院到北区仓储区的最优行驶路线和可能的观察位置。 “仓储区的布局和之前去过的几个地点都不同。“顾晏说,“它是一大片标准化仓库群,进出通道多,车辆周转快,人员流动量大。在里面放置一个小型的信号设备或者交接点,要比在围挡区工地和公交站台更不容易被发现。“ 陆维桢把米饭吃完,把餐盒收好放进了垃圾袋。他站起来走向储物柜,取出一件没有识别标识的深灰色外套换上。回头时他的目光掠过操作台上那台物流园中继器的远程操作界面,界面上的假轨迹已经运行到了备用车接近沿海终点的位置,距离轨迹结束还有大约四十分钟。 下午一点五十分,陆维桢和顾晏坐进了周承岳开来的深色轿车,向北驶出龙科院园区。途中经过蓉城北部城区的过渡带,两边的建筑密度逐渐降低,从密集的多层住宅过渡到零散的工业厂房和仓储设施。北区仓储区的入口没有围栏和岗亭,只在地面画着引导标线,主通道两侧排列着编号从a到h的八排大型仓库,仓库之间留有宽敞的装卸场地,有几辆叉车和轻型货车在场地间穿行。 周承岳没有直接进入仓储区,他把车停在了距离北侧入口约两百米处的一处加油站空地上。从那个角度可以看到仓储区北侧仓库群的侧面和装卸场地的部分区域。陆维桢在副驾驶座的位置展开一份从物流公司调度记录中复制下来的仓储区平面图,在上面标注了cr-07条目的目的地标记点位置——在仓储区北端的一排编号为g区的仓库中段。 他放下地图透过前挡风玻璃观察g区仓库的方向。g区的建筑外观和其他仓库基本一致,灰色外墙、高卷帘门、屋顶有若干排气口。g区仓库中段的卷帘门处于关闭状态,门外的装卸区地面干净整洁,没有货物堆放的迹象。 他在车里坐了大约十分钟,注意力集中在g区中段的卷帘门和周边区域的细微变化上。十米内没有人员靠近,没有车辆在中段区域长时间停留,卷帘门的底部和地面的接缝处没有新的地面划痕或车轮印。但在g区仓库中段外侧墙面上,有一个尺寸略大于标准的通风百叶窗。百叶窗的叶片间隙内有一小片深色的物体,颜色和仓库外墙的灰色涂层不同。 陆维桢用望远镜对准了那处百叶窗,在放大的视野中看清了那处深色物体的具体形状:一枚手掌大小的电子设备外壳,用磁吸底座固定在百叶窗内侧的金属框架上,外壳表面和百叶窗叶片之间的接触面经过处理,在外墙阴影的覆盖下几乎不反光。 他把望远镜放下,确认了那个位置在平面图上对应的坐标——g区中段卷帘门侧面的百叶窗,距离地面高度约三米,正好和仓库内部一个方便检修人员操作的高度相对应。然后他注意到百叶窗下方的地面上,靠近墙根的位置有一个极小的反光点,像是一粒落在水泥地上的金属碎屑。那个位置在卷帘门的角落和地面接缝处,处于视觉上不易被注意的范围内。但它的存在表明曾有人站在这个位置使用过金属工具,工具与地面接触时留下了碎屑。 北区仓储区这处百叶窗内侧的设备可能是暗潮备用传输链路中的另一个节点。它的安装位置隐蔽,工作状态稳定,而且不与物流园中继器或公交站台设备形成通信交集——它是独立运行的,只在固定的七天周期内被激活一次。那粒地面上的金属碎屑在午后的阳光下,在墙角边缘的位置处反射着微弱的光点。 第36章 静探 金属碎屑在午后的阳光和墙角阴影之间维持着一道细小的亮线。陆维桢收回望远镜,目光在那片区域和车辆周围的参照物之间来回对位了几次,确认了碎屑和卷帘门外侧地面上其他杂物之间的位置关系——碎屑的落点处在卷帘门和百叶窗之间约一步半的距离上,形成了一条不太规则的分布带,像是有人站在卷帘门前用工具操作过百叶窗内侧的设备后,转身离开时工具与地面发生的短暂接触留下的轨迹。 “设备在百叶窗内侧。“他把望远镜放下对周承岳说,“卷帘门前面的地面碎屑分布带表明操作人员在工作时站在卷帘门正前方的位置,正对百叶窗。操作完成后工具与地面接触留下了这批碎屑。“ 周承岳从后视镜里观察了一阵g区仓库中段周围的人员和车辆活动情况。仓储区的日常运作节奏在下午时段保持着一定的稀疏度——偶尔有叉车从h区方向穿行过来,隔几分钟有一辆小型货车沿着主通道驶过,但没有车辆在g区中段区域长时间停留或减速。 “要接近那扇百叶窗做近距离观察,需要选择附近没有车辆和人员经过的时段。“周承岳说,“卷帘门正前方的地面没有任何遮蔽物,从g区两侧的任何角度都可以看到那个位置。如果有人在白天走到卷帘门前进行操作,会被周边至少三个方向的视线覆盖。“ 陆维桢重新打开车辆中控台上叠放的地图,手指在g区北侧和h区之间的通道上划了一条路线。“北侧通道通向g区仓库的背面。g区仓库背面应该有一排送风口或者检修门。如果从背面绕到靠近中段百叶窗的位置,利用仓库墙体和相邻建筑之间的夹角做遮挡,观察角度可以覆盖百叶窗的正侧面而不暴露在卷帘门前的开阔地面上。“ 顾晏从后排侧过身来看了一遍地图上标注的通道宽度。她的手指沿着g区北墙的走向滑过一遍,在地图的角落停下。“仓库背面和h区围墙之间的距离大约四米,中间有一条夹道。夹道地面铺着碎石,走过去会留下脚印和摩擦痕迹,但如果在傍晚之后光线变暗的时候进入,利用储物箱或者堆放在夹道两侧的备用托盘做临时遮蔽,可以被观察到的时间窗口内完成近距离检查而不被仓储区的人员注意到。“ 周承岳低头看了一眼车内的时钟。下午两点二十三分,距离傍晚天黑还有大约三个多小时。他看了一眼陆维桢的方向,后者正在收拢地图的边角准备打开车门。 “等到六点半。“周承岳说,“天色暗下来之后外围的人员活动会明显减少。那之前我们保持在这个位置观察设备周围有无周期性的人员接近迹象。“ 等待的过程在油站空地和仓储区主入口之间的稳定观察位置上持续了几个小时。车内保持低噪音状态,空调压缩机的间歇运行声是唯一有规律存在的声音。陆维桢的视线期间反复落在百叶窗边缘那处暗色的外壳轮廓上,轮廓在下午不同的光照角度下呈现出细微的形态变化——从正面偏左的角度看它比偏右更宽,说明外壳本身具有一定的厚度,可能内部容纳了电池或信号中继模块。 六点过后,天色开始以可感知的速度变暗。仓储区的几盏高杆灯陆续亮起,但g区中段卷帘门正前方的区域没有被直接照亮,光源来自主通道沿线的灯杆,用余光从侧面勾勒出墙面和百叶窗的轮廓。陆维桢确认了覆盖强度的分布之后推开车门,沿着人行道边缘的绿化带切口走到了g区北侧的通道入口处,然后侧身进入仓库背面和围墙之间的夹道。 夹道地面铺着粗碎石的触感在他脚下均匀分布。他沿着夹道向g区中段方向移动,每一步都先探明落脚点再转移重心,石块之间的摩擦声被控制到了近处的极限范围。夹道两侧的墙面离他很近,仓库墙壁的灰色涂料表面在傍晚的光线下反射着深色的哑光,边界清晰。 他在夹道的一个储物托盘堆放点旁边停下,正好位于百叶窗位置向下偏移约两米处的斜对面。从这个角度,百叶窗内侧那台设备的外壳侧面轮廓在他的视野中形成了一道清晰的线条。设备的外壳约有手掌大小,厚度三厘米左右,外壳材料的颜色和百叶窗内侧金属框架的色调接近。外壳侧面伸出一条极细的天线,天线的走向贴着百叶窗内侧的叶片边缘向上延伸,末端藏在叶片的阴影中。 陆维桢从口袋里取出一台微型数字相机,镜头对准百叶窗内部进行了两次长曝光拍摄。拍摄完成后他蹲在托盘的阴影里检查了照片。设备外壳的底部有一串浅色的印字——不是激光蚀刻,而是采用了与外壳颜色不同的印刷工艺,在长曝光成像中显得比周围区域更深。照片放大后那串字的内容呈现为一组数字和字母的混合排列:“west-node-bk-03“。 bk-03。这个命名方式和暗潮系统的标准命名规则不同,没有使用echo-7系列的后缀,采用了更简短的编码格式。west-node前缀对应蓉城西侧区域,bk可能是“备份“或者“中转“的缩写,03表明它是该类别中的第三台设备。 他用相机又补拍了三张不同角度的照片,然后沿着夹道原路撤回。周承岳的车辆还停在加油站空地原位,天色更暗了,车内的轮廓在街道灯光的边缘显得更加收敛。陆维桢回到副驾驶座时,顾晏已经从后排往前探过身来,她接过相机查看了照片。 “west-node-bk-03。“她小声念了一遍那串字符,“命名体系和之前见过的设备不重叠,但前缀中的west-node和物流园存储卡上ext_my目录里的一个底层文件夹命名模式相似。那个文件夹没有被标注在目录树的表层,需要通过文件系统的底层结构才能看到。“ 陆维桢在脑海里回顾了一下物流园存储卡的目录结构。ext_my文件夹的下层确实存在一个没有被系统自动归类的底层文件夹,它的命名规则也是“位置缩写+功能缩写+数字“的格式。那台设备的命名规范和之前见过的暗潮设备都不完全一致,和西部系统传回的数据结构中的底层命名方式之间却存在相似性。 “可能是两套独立的标记体系。“陆维桢说,“echo-7系列是暗潮蓉城主链路的命名规范,但west-node-bk-03使用的是更早期或者不同区域部署的命名规则。如果两套体系都在蓉城范围内运行,说明暗潮在蓉城的部署可能是分阶段或者由不同的执行团队完成的——主链路先建,备用链路晚建,或者反过来。“ 顾晏把相机收回设备箱里。她的视线在夜色中落向g区仓库中段百叶窗的方向,那个位置在仓储区的暗影中几乎看不见了,只有百叶窗外框的一线金属反光在路灯偏角的照射下偶尔闪现。 “如果west-node-bk-03是早期部署的备用节点,“顾晏说,“那它的操作人员可能不是廖维或者围挡区电工那条线的人。使用独立命名规则的备用节点,也许会配备单独的维护人员或接触者。“ 陆维桢的目光越过挡风玻璃落在仓储区g区中段的方向,那扇百叶窗的轮廓已经在逐渐变浓的夜色中融入了仓库外墙的整体暗影。他在座位上向后靠了一下,视线在空中悬停片刻,然后低下来落在相机存储卡的位置。west-node-bk-03这个命名格式在他的脑中继续延伸,和物流园存储卡底层文件夹的命名样本进行了几组横向对比,相似的结构在不同的时间轴上浮动着,在夜色和车内的阴影之间维持着一道细长的连接线。 第37章 裂隙 夜色完全笼罩仓储区之后,高杆灯的照明在g区仓库和h区围墙之间形成了一片明暗交错的区域。陆维桢在车内重新打开相机的照片,把west-node-bk-03的外壳细节放大到可辨识的极限。外壳侧面的印刷字体在长曝光照片中显得边缘锐利,字符间距均匀,印刷工艺平整。他在放大的照片中注意到外壳下缘有一道极其细微的缝隙——比制造公差更大,像是外壳曾被打开过又合拢时没有完全对齐造成的偏移。 “这台设备被人打开过。“他说,“外壳底部的接缝线在照片中显示出一条大约零点几毫米的偏移,不是出厂装配会允许的公差范围。有人检修过它,或者更换过内部的存储卡。“ 顾晏接过相机仔细看了一遍那道偏移的缝隙。她的目光在那道线上停留了片刻,然后开口说:“如果它被打开过,内部可能有可插拔的存储介质,操作方式可能和物流园中继器类似。检修人员在约每隔七天的周期内打开外壳更换或取出存储卡,然后通过仓储区的其他渠道带走。“ 陆维桢在脑海中重新计算了cr-07的七天周期和west-node-bk-03设备外壳被打开过这两个事实之间的对应关系。cr-07的调度记录显示每七天有一次确认操作,而设备外壳被打开过至少一次。两个事实在时间频率上是吻合的。 “这台设备可能是cr-07条目的物理载体。“他说,“物流公司调度记录里的cr-07目的地不是存放或接收数据的位置,而是指代这台设备本身。操作员每七天来一次仓储区,打开设备外壳更换存储介质,把数据从设备内部取走。“他把相机从顾晏手中接回来重新收好,“设备的位置在g区中段百叶窗内侧,不在地面,操作员需要站在卷帘门前、用工具伸入百叶窗叶片之间的间隙来打开或者更换部件。地面上的金属碎屑分布带就是这个操作留下的。“ 周承岳一直没有离开驾驶座。他的视线在不同方向的车外后视镜和仓储区出入口之间均匀分配,保持着对周边环境的持续监控。听到陆维桢的结论之后他问了一句:“如果要确认cr-07的周期仍然有效,需要在下一次操作窗口观察到操作员到达现场的实际过程。根据物流公司调度记录,下一次确认时间在约六天后。“ “六天之内。“陆维桢说,“如果我们想掌握这条备用链路的操作方式和人员特征,最好的机会就是在六天后的操作窗口内观察操作员到达、完成设备操作、离开的全过程。如果在那之前提前接触设备,操作员会察觉到设备状态变化,从而导致这条线路被废弃。“ 他在心里校准了六天后的日期。这个时间窗口足够用来做几件事:确认west-node-bk-03是否在操作窗口期间保持待机状态,通过被动扫描收集设备在空闲时的信号特征,以及为远程监测建立基线。 “先装被动监测装置。“陆维桢说,“在夹道内找一个足够隐蔽的位置,装一套只接收不发送的微型信号记录器,在接下来的六天内捕捉设备周边的射频活动和人员接近噪声。设备本身不动,让操作员在六天后来的时候看到一切如常。“ 顾晏听完之后思索了片刻,没有立刻回应。她的视线落在陆维桢刚收起来的相机外壳上,稍后又移开,转向仓储区g区方向被高杆灯剪影勾勒出的仓库屋顶轮廓。“装被动监测装置需要二次进入夹道。今晚操作完成后,在六天周期内保持监测状态,操作员下次到来时我们的设备会记录下他的到达时间和操作时长。“ “今晚太晚。“周承岳说,“夹道的碎石地面上如果有人走过,天亮后会留下明显的脚印痕迹。操作员如果在六天内因为某种原因提前来检查设备,他会注意到地面上新的痕迹。最佳时间是明天早晨,仓储区车辆进出后地面被重新碾压一次,然后把监测装置装在夹道已有的车辆轨迹之外的位置。“ 陆维桢同意了这个时间安排。他在手机上设置了明天早晨的行动提醒,然后收好相机和记录设备。车辆在没有开灯的情况下沿北侧通道原路驶出仓储区范围,汇入主路后恢复了正常的夜间行车节奏。油站空地上的观察位置在车驶出后的后视镜里逐渐缩成一个小小的亮点,被路灯和远处交通信号灯的光覆盖。 返回龙科院的途中,陆维桢在手机备忘录里记下了六天后操作窗口的推算日期和预计时间窗口。他额外加了一行备注:“如操作员在操作窗口期内提前到达,监测装置应记录提前时长及其是否携带不同工具。“备忘录下方的空行处被他用光标占住,留出了一段尚未填入内容的间隙。 车辆驶过一段城市快速路的桥面时,桥下的铁路线从视野中掠过,一辆货运列车的车厢在路面下方平行行驶了一段时间,车厢顶部反射着桥面灯光,以和轿车接近的速度保持着短时间的并排。然后在某处分道口铁路线转向了另一方向,与快速路分离,车厢上的反射光逐渐变暗收窄汇入远方的夜色之中。 顾晏在后排看了一眼那道远去的列车轮廓。她收回视线时,目光在他的屏幕边缘停留了一下,但没有说话。手机屏幕的光照在他下颚和喉结处的轮廓上,随着车辆驶过路灯下方时明暗交替着。“六天后,操作员会带着新的存储卡来更换。“陆维桢关掉了手机屏幕,“那时候我们会知道他走哪条路过来、用什么工具打开外壳、以及换下来的旧卡被放在哪里带走。“ 周承岳在驾驶座上说了一句:“那这几天需要提前把仓储区周边的出入路径和监控范围摸清楚。操作员来的时候不一定走主入口,可能从北侧围墙或者排水沟进入。“ 车辆在夜色中驶过蓉城东部的桥面,桥下的铁路线已经完全消失在后方视野里了。车载导航上前往龙科院的路线图以浅绿色的线条向前延伸,远处逐渐能看到龙科院北区建筑群的轮廓,那些楼宇的顶部有一排排照明灯亮着。陆维桢坐在后排,手机备忘录上的备注列表在屏幕熄灭后仍然短暂地留在他视网膜上,六天后那个操作窗口的日期在时间的衬托下单独凸出来。 第38章 埋线 第二天清晨六点半,龙科院北区员工通道的铁门在薄雾中打开。陆维桢穿一件洗旧了的深蓝色工装外套,背一只扁平的工具包,沿着园区绿化带的边缘向停车场方向走去。顾晏提前十分钟已经在车旁边等着了,手里拎着一只灰色手提箱,箱体侧面没有标识。她没有说什么多余的话,拉开后排车门坐了进去,手提箱放在她和座位之间的空隙里。 车辆沿北向道路再次驶向仓储区时,晨间的城市交通刚刚开始进入早高峰的波段,但越往北走车流越稀疏。七点左右到达仓储区,夜间出港的一批货车已经离开了场地,装卸场地上残留的轮胎印和叉车痕迹形成了一层密集覆盖的地面纹理。陆维桢注意到g区中段卷帘门前的地面昨晚被夜间车辆碾压过多次,碎屑分布带的位置仍然可辨,但周围出现的新轮胎印覆盖了部分边缘区域。 周承岳把车停在了昨天相同的位置。陆维桢和顾晏从加油站空地北侧绕过仓储区的入口,从h区围墙和铁丝网之间的窄道进入g区背面夹道入口。夹道内的碎石地面昨晚没有被车辆经过,但夜间的露水在碎石表面留下了一层均匀湿润的颜色,从视觉上遮掩了部分表面特征。陆维桢沿着墙根方向移动,在昨天确定的观察位置停下来,从工具包里取出一只掌心大小的密封盒,盒体为深灰色,表面覆着一层和仓库外墙涂料相近的哑光涂层。盒体底部装有三组不同指向的微型传感器和一枚纽扣电池,侧面有一根可收纳的微型天线,展开后仅三厘米长。 “信号记录器,只接收不发射。“陆维桢把密封盒固定在紧挨夹道墙根的一个金属检修架背面,用三颗强力磁铁固定,“传感器的覆盖范围以设备为中心半径约十米,可以捕捉到百叶窗内侧设备的通信信号和人员靠近时的低频声响。“ 顾晏蹲在检修架侧面,用手持式小型频谱仪扫描了一遍记录器安装位置周边的背景噪声,确认没有干扰信号会堵塞记录器的接收通道。她合上频谱仪时目光扫过地面,在检修架底部的碎石缝隙之间停留了片刻——一小片干燥的碎土颜色和周围的湿润碎石不同,形状呈不规则的薄片状。 “昨晚有人来过。“顾晏用极低的声音说。她指着那片碎土的位置,“碎土表面的干燥程度和周边被露水浸湿的碎石不一致,说明它是在露水形成之后才落到地面的。时间可能在今天凌晨。“ 陆维桢蹲下来凑近那片碎土。它的边缘轮廓不像是从鞋底自然脱落的,更接近某种物体被放置或移动时蹭落的附作物。他用手套边缘轻轻拨了一下碎土的边缘,土片裂开,露出下面一层颜色更浅的粉末状物质——细度均匀,像是从某种纸质信封或者包装材料上刮下来的表面涂层,浅灰,边缘整齐,在同一处被夹道内的风集中堆积起来。 “有人站在这个位置停留过。“陆维桢说,声音压到比环境音还低,“而且停留的时候手里拿着某种纸面或者包装物,包装物的涂层在接触墙面或者地面时刮落了一些细微碎屑。“ 他把那片碎土连同底下的浅灰色粉末收入一只微型样品管中封存。样品管放入工具包内层后,他重新检查了记录器的固定状态和天线方向。检修架背面的位置在百叶窗侧向约三米处,距地面约半米,记录器被遮盖在金属架下方投射的阴影中,从仓库正前方走过来的人除非弯腰侧头看向检修架底部,否则不会看到这个密封盒的存在。 两人沿夹道原路撤回。返回车辆过程中顾晏把装在灰色手提箱里的备用记录器重新锁好,顺手把陆维桢手中的样品管接过去放进了手提箱侧袋。周承岳在车辆启动后开口问了一句,声音在晨间的车载安静中几乎没被空调风噪声盖住:“凌晨有人到过夹道?“ “来过。“陆维桢说,“停留时间和方式未知,但留下的碎土表面和露水的关系可以压缩判断范围:如果是在露水形成前来的,碎土本身也会被露水浸湿。它表面干燥,边缘利落,说明是在露水形成之后、我们到达之前这个时间段内来的。大约在今天凌晨四点到六点之间。“ 周承岳没有追问。车辆沿着去时的路线平稳驶回龙科院,车窗外的晨光已经从薄雾的灰白色逐渐转成明亮的淡金色。回到地下三层之后陆维桢在操作台前坐下,把样品管取出放在灯下观察。碎土底层的那层浅灰色粉末在聚光灯下呈现均匀的颗粒状结构,用手指隔着管壁轻压,感觉到颗粒之间的细密摩擦力,质地比土壤细腻,与书本纸张或档案袋封面的表面涂层的触感相似。 “载体是纸或纸质包装物。“陆维桢说,“凌晨有人带着纸质物品靠近了夹道内的检修架位置,停留了一段时间,纸品在移动中与墙面或地面接触,刮落了表层涂层碎屑。“ 顾晏把样品管在操作台上放好,转身走到工作站前开始处理从记录器安装前同步采集到的一组环境背景数据。她在键盘上操作了大约两分钟,然后停下,侧头看向陆维桢的方向:“记录器安装位置的射频背景基线已经存好了,按周期循环记录模式运行。如果操作员在下次窗口前有任何提前接近动作,记录器会先于现场人员到达获取声音和信号信息。“ 陆维桢在操作台前停了一会儿,样品管内部那层细密的粉末在灯光下呈现出微微泛着哑光的色调。他用自己的手机拍了一张样品管的微距照片作为记录,然后站起身走到白板前,在cr-07条目旁边写下了“g区中段→百叶窗内侧→west-node-bk-03“,在这行字下方又写了两行:“凌晨四至六时有人携带纸质物接近检修架位置“和“首次接近时间距下次操作窗口约五天半“。 他在最下面一行字的下方留了一段空白。这段空白里填着的可能不只是一个标记或者时间点,也可能是从样品管中提取的碎土分析结果——如果那层细密的灰白粉末来自于某种特定类型的档案或打印纸,它的来源范围会缩小到一个具体的办公区域。他在那段空白处暂时留空了,看着白板上的整幅图从左侧的蓉城节点延伸出去直到右侧的末端,所有的线条在灯光的照射下保持清晰,末端的交汇点处有一段尚未落笔的延伸。 第39章 纸迹 样品管在操作台灯光下继续放置了大约二十分钟后,陆维桢开始进行对碎土和浅灰色粉末的逐层物理分离。他用一把细镊子把较大的土粒从粉末中筛选出去,将剩余的粉末集中在一张白纸的中央区域,形成一小堆约半个指甲盖大小的样品堆。粉末在聚光下呈现出多角度的细小颗粒反射,有一些微粒的边缘带有轻微的弯曲弧度,像是曾贴合在某种弯曲表面后被剥离下来的涂层的边缘部分。 顾晏从工作站前站起来走到操作台侧面,弯腰看了一会儿样品堆的细节,然后从抽屉里取出一台小型放大摄影仪,把镜头对准了粉末堆。放大后的图像显示出了粉末颗粒的微观纹理——细密的交叉纤维排列,表面覆盖着一层均匀的涂层,涂层厚度极薄,在侧光照射下呈现出轻微的哑光反光。纤维的排列方向不完全均匀,纤维与纤维之间的间隙等宽,没有自然材料会出现的断裂或不规则交叠。 “不是自然纤维。“陆维桢把视线从放大图像上移开,“纤维排列的规律性太高,间隙均匀,断裂面整齐。是工业化制造的纸或者特种纸板,机械打浆后经过压光处理。表面涂层覆盖了纤维层整个外表面,涂层材料的成分偏无机质,像是某种用于电子元件或精密设备包装的防静电纸。“ 顾晏把放大图像的角度调整了一下,让侧光从另一个方向打在纤维断面上。截面处涂层的厚度约为纤维层的十分之一左右,均匀覆盖在表层纤维的上方,与基层纤维之间结合紧密,分层边缘清晰。“防静电纸常见于精密仪器和电子元件的包装运输,“她说,“它的颜色偏灰白,表面光滑,内部纤维密度高。一些军品或者航空零件的包装也会用这种纸。普通办公纸张的生产标准和防静电纸完全不同。“ “航空零件。“陆维桢把这几个字在脑海中重复了一遍。航空动力研究所的测试台面板、叶片测试参数记录、材料供应商数据接口——防静电纸在那些场合中的存在背景和样品管中粉末的物理特征之间存在重叠的线索:航空零件包装使用的防静电纸和样品管中提取到的粉末类型一致。 他把放大照片保存下来,然后把样品堆轻轻拢回样品管内,封好盖子放回操作台的指定位置。周承岳从大厅入口方向走进来,他走近之后看了一眼操作台上的样品管和放大仪的屏幕,在陆维桢旁边停了一下,然后开口说了一句:“分析结果出来了?“ “防静电纸,用于航空零件或精密设备包装。“陆维桢说,“凌晨带着这种纸品接近g区夹道检修架位置的人,手里的东西可能是航空动力研究所或者相关供应商之间的某种纸质文件或包装物。从粉末的刮落位置来看,那个人当时正在阅读或者整理纸品,动作幅度不大,但停留时间足够长,使涂层碎屑在墙根处累积。“ 周承岳没有追问纸品来源的细节。他看了一眼自己手中加密手机的屏幕,上面是一条新消息,他看完之后抬头,视线从操作台上移动到陆维桢的方向:“仓储区管理处今天上午在做例行安全检查,g区中段附近没有异常发现,巡逻人员没有靠近百叶窗。“ “我们在夹道里装的记录器也不会被常规巡逻注意到。“陆维桢说,“它固定在一个检修架背面,从通道正面走过去的视野正好被金属架遮挡。除非有人蹲下来检查架底,否则不会发现它的存在。“ 他转身走回操作台前重新坐下,在备忘录里补充了关于防静电纸的分析结果。在记录的最后一行,他写下了一个待确认的问题:“防静电纸来源与廖维或其所在部门的办公物资申领记录是否存在交集。“他把这个问题单独标记为待查,然后翻到了备忘录中关于六天操作窗口的页面,此时距离操作窗口还有约五天。他在这段时间的倒数数字下方画了一条细横线,在横线末端停留了一下,然后合上了笔记本。 顾晏把样品管放入了储存柜的一个密封抽屉中。她在回身关上抽屉的时候,手指在抽屉把手上额外停留了一瞬,然后松开手退后了一步。她的动作幅度很小,但陆维桢注意到了那个停顿,侧过头看了她一眼。她没有回应那个目光,只是走回工作站前坐下,打开了一组新调取的仓储区平面图,开始标注g区中段周围约五十米范围内的所有设施点——排水井、通风管道口、消防栓位置、以及附近的弱电井。每一个点都被她以不同颜色的标记符在地图图层上做了分层处理。 陆维桢从操作台前站起来走向白板,他在白板左侧已有的蓉城节点全图旁边拉开了一片空白区域,用马克笔在空白区域的上方写了一行标题:“备用链路cr-07/west-node-bk-03——待补充信息“。他在标题下方的空间里留出了足够的空白行,用来记录操作员在窗口期内出现时的特征、路径方向、携带物品类型、操作持续时间,以及换下来的旧存储卡被带走的方式。 他在写到最后一行时笔尖在纸面上停顿了一下,然后继续写完了那行字,在末尾画了一个没有闭合的括号。白板上的新区域暂时只有标题和排列整齐的空白行,那些空行之间留出的间距现在还是空的,在灯光的照射下贴着白板的表面排成一行行整齐的等宽间距,像一排还没有填入任何内容的码位。 他退后半步放下了马克笔。他的视线从那些空行上移过,然后转过身来看了一眼大厅里的墙壁,沿着墙面排列的照明灯在浅色墙面上映出一排规则的光斑。走廊深处的电梯运行声从远到近传来,被门外的空间削弱成一道短促的金属摩擦音,在门缝的边缘短暂地维持了片刻的音量,然后被隔音材料吸收掉,剩下大厅里平稳的通风管道送风声持续覆盖着整个空间。 第40章 前窗 记录器安装后的第三天,陆维桢在凌晨五点二十分被加密通讯应用的提示音震醒。他从折叠床边缘直起身,操作台上的工作站屏幕已经亮起,上面弹出了一条来自仓储区记录器的自动回传提醒——设备在凌晨四点零七分捕捉到一段持续约四分钟的低频振动信号。信号特征和人员走动时的脚步声、操作工具时的接触声均不同,更接近某种持续性的机械运转音,频率恒定,振幅均匀,来源方向指向g区仓库内部。 他走到操作台前坐下,打开了记录器回传的完整音频波形文件。波形在中段有一段明显的高幅持续性振动,持续约四分钟,中间没有中断或波动。他切换到频率分析模式,那组振动的基频落在了室内通风设备运转的频段内——但g区仓库在夜间关闭了主通风系统,只有应急排气扇在低功率维持循环。应急排气扇的运转频率不会达到这个幅值。 “有人凌晨打开了g区仓库内部的通风系统。“顾晏从员工通道方向走进大厅,外套已经穿好,头发被晨间的风略微吹乱了边缘。她走到操作台前看着波形文件,在频谱图上标示出了基频和泛频的分布,“通风系统的主风机在夜间被启动过,运行了大约四分钟。通风管道可能连接着设备安装位置所在的那段墙体内部空间。“ “操作员不需要等到七天周期。“陆维桢把波形文件保存好,“他在周期之间还做过中间检查,在仓库内部操作了通风系统,可能在不需要打开百叶窗的情况下就能通过管道系统接触设备。百叶窗上的外壳只是一个外部接口,设备本身的主体可能延伸进了仓库内部的管道空间。“ 他站起身走到白板前,在g区仓库中段的平面图上画了一条短横线连接百叶窗和仓库内部通风管道系统的走向。“如果设备主体通过通风管道延伸到了仓库内部,那它在仓库内部可能还有一个操作端口。操作员可以在仓库内部完成存储卡的更换或者数据读取,不需要暴露在室外的卷帘门前。“ 顾晏跟着他走到白板旁边,在仓库平面图的内部区域画了一个方形框,标注在通风管道主线路与百叶窗位置之间的交汇点上。“这个交汇点如果存在,它所在的位置在仓库内部的机电夹层或者吊顶空间里。操作员进入仓库内部比在室外卷帘门前操作更容易隐蔽——他只要在非营业时段通过仓库的侧门进入,走到机电夹层下方,然后打开吊顶板进入操作位置。“ 陆维桢在脑中模拟了一遍这条路径。北区仓储区的仓库在非营业时段上锁,侧门可能装有普通挂锁或者电子门禁,但仓储区的管理强度低于敏感科研单位。如果操作员持有仓库的备用钥匙或者能复制门禁卡,进入仓库内部的时间窗口是充裕的。 他转身走向通讯终端,给周承岳发了一条简短的消息,询问g区仓库在最近一个月的维修报修记录和内部人员进出登记。周承岳在几分钟后回复了一份经过筛选的电子文档——记录显示g区仓库在过去一个月内有三次报修,报修内容均为“通风系统检修“,每次报修的时间都在上午,持续时间不超过两小时。 三次报修,时间分别分布在最近一个月的前中后三个时段。这些报修记录和仓储区常规的设施维护频率相似,但如果结合凌晨通风系统被启动过这个事实,报修记录的实际用途可能就是为在设备位置上进行操作提供合法的进出理由。 “操作员利用报修作为掩护进入仓库内部。“陆维桢说,“每一次报修对应一次在设备位置上的操作。最近一次报修在四天前——也就是cr-07记录中的上一次确认时间附近。下一次报修如果按同样的间隔出现,应该在三到四天之后,恰好和操作窗口吻合。“ 他把报修记录时间线标注在白板上,三条时间线平行排列。每个报修日的上午时段都被他用方框圈了出来,他分析方框之间的间隔之后注意到每次报修间隔的波动幅度——第一次和第二次之间间隔十二天,第二次和第三次之间间隔十天。间隔并不完全均匀。 “时间间隔在收窄。“顾晏说,“第一次到第二次间隔十二天,第二次到第三次间隔十天。如果这个收窄趋势继续,下一次报修可能会在八到九天之后,而不是七到八天。操作员可能正在缩短周期,可能是为了加快数据周转速度,也可能是响应了主控端的调度调整指令。“ 陆维桢在报修时间线上方加了一个箭头,标注着“周期变化“四个字。如果操作周期在主动缩短,那就意味着主控端在沿海专线中断后可能已经开始调整蓉城节点的运行策略了。备用链路本来用于应急,现在主链路断了,备用链路的运行频率可能被调高来补偿主链路的数据传输空缺。 “记录器下一步需要捕捉的不仅仅是人员接近信号。“陆维桢说,“它需要捕捉到仓库内部通风系统启动的声音特征,以及内部操作口打开时的机械摩擦音。如果下一次操作在仓库内部进行,百叶窗外侧的设备不会被动,我们装在外面的记录器可能只能捕捉到声音背景变化,而无法直接记录操作内容。“ 顾晏走回工作站前调出了记录器传感器的灵敏度设置界面,在低频声波接收通道上调整了一组增益参数,把对低频机械振动的感知阈值降低了约六个分贝,使记录器可以更敏感地捕捉到通风管道系统和建筑结构传导的微弱振动。“低频增益调整后,g区仓库内部的风机启动信号和操作口的金属开合声都可以被墙体和地面结构传导到记录器位置。虽然不能穿过墙体直接录音,但结构传导的振动信号足以标识操作的发生时间和时长。“ 陆维桢在报修记录和操作员夜间活动的时间线之间又连了一条虚线。三组报修记录和三组确认时间之间的对应关系已经足够清晰了,结合记录器捕获的凌晨通风系统启动信号,基本可以判定操作员在仓库内部的维护工作不是只在报修日的上午进行,在凌晨的非营业时段也有过进出。 他的视线在那条虚线上停留了一段时间,然后移到了白板最右侧的空白区域。那条虚线的走向如果继续延伸,会和g区仓库与仓储区北侧围墙之间的路径在空间上交叉一次。交叉点的位置在北侧围墙的某一段,附近有一片没有被仓库灯光覆盖的阴影区域,那片区域的地面硬度可能足以支持人员进出而不留下明显痕迹。 他把叉号标注位置用红笔在平面图的对应坐标上描了一个小圈。圈内的区域现在还没有详细的物理信息,但根据操作员多次进出g区仓库的规律,北侧围墙那段阴影区很可能有一个不经过主入口的进出通道。他放下笔,退后一步看着白板上新补上的那几道连线,地图上未标注的区域在圈出的范围内保持空白,等着被下一次发现的信息填充。 第41章 北墙 记录器回传数据的持续分析在下午时段产生了一个新的发现。顾晏在处理仓储区记录器的低频声波通道时,将凌晨四点零七分那组振动信号与前一天同时段的数据做了叠加对比,发现在振动信号出现之前约三分钟,低频通道曾经捕捉到一个极短的瞬态冲击信号,持续不到一秒,频率集中在金属与硬质材料接触的范围内。瞬态冲击之后,通风系统启动,中间间隔时间足够一个人从围墙位置走到仓库侧门。 陆维桢在下午两点左右对照着仓储区的卫星地图重新校准了北侧围墙阴影区域的范围。那段围墙的走向和g区仓库北墙之间确实存在一处位置偏移——围墙在此处向内凹进了一段,形成了一块大约两米深、四米宽的凹陷空间。凹陷空间的外侧被一排密集的灌木和一棵树冠较大的梧桐遮挡,从卫星图上看,那片区域被植被覆盖形成了一片暗斑。 “北墙凹陷处可能是进入点。“陆维桢在平面图上标出了凹陷区域的精确坐标,“围墙在凹陷处的高度可能降低过,或者有一段被替换成了较矮的铁栅栏。灌木丛和梧桐树冠提供了视觉遮蔽,操作员从围墙外进入凹陷处然后翻越或者穿过围墙,直接到达仓库北墙墙根。北墙墙根距离室内机电夹层的位置是整排仓库中最近的一段。“ 周承岳看了一眼时间,下午两点二十分。他没有多话,只是从座椅上站起来拿起了车钥匙。车辆在下午的阳光下沿着北向道路再次驶向仓储区,这一次没有停在加油站空地,而是沿着仓储区北侧外围的一条土路缓慢行驶到接近围墙凹陷处的位置。周承岳把车停在一处灌木丛与农田排水渠之间的遮挡位置,从这个角度透过梧桐树冠的间隙可以看到围墙凹陷处的外侧。 围墙的墙体在那段凹陷处的表面涂抹了与周边相同的浅灰色涂料,但在围墙顶部的金属栏杆段,有一段栏杆的漆面颜色比周边略浅——像是更换过,或者经过重新焊接,焊接处新刷的防锈漆未经足够长时间的风化氧化,颜色存在可察觉的差异。梧桐树的树冠顶端覆盖在凹陷处上方,在地面上投下一大片斑驳的阴影,墙根处的杂草长势高于围墙其他地段,有些草茎的倒伏方向呈一致的倾斜状,像是被人的衣物边缘反复拂过后的定向。 陆维桢坐在副驾驶座通过车窗观察了大约五分钟。围墙凹陷处的杂草茎叶被定向压弯的角度表明有人曾反复从同一个方向穿过草丛,压痕的深度和宽度与一个人的躯体通过时留下的痕迹接近。 “穿过次数不少。“他说,“杂草的倒伏方向一致,压痕已经形成了固定的通道,不是临时路径。操作员每次进出都走同一道路线,保持了相当长时间。围墙顶部的栏杆更换过,换了之后重新喷漆,时间不会太久。“ 周承岳发动车辆缓慢驶离,沿着土路绕了一圈从另一方向返回主路。途中经过北墙凹陷处外围时,陆维桢观察到围墙根部的泥土表面有一处被覆盖过的痕迹——一块尺寸与落叶堆一致的石板,表面落着干枯树叶,但石板和周围地面之间有一道极细的缝隙,缝隙边缘的土壤比周边更松散。 “石板盖住了什么东西。“他说。 回到龙科院之后,陆维桢在白板上把北墙凹陷处的位置和g区仓库中段的设备位置用一条直线连接起来。线路的走向穿过梧桐树冠和建筑北墙之间的空隙,绕过仓库外墙的转角延伸到百叶窗所在的墙段。如果操作员按照这条路线行进,从北墙外进入凹陷处到抵达仓库侧门入口需要大约两到三分钟。凌晨四点零七分之前约三分钟出现的瞬态冲击信号正好落在了这个时间窗口内。 “明天早晨再去一次。“陆维桢说,“在操作员可能出现的相同时间段,沿着他的路径走一遍,确认实际通过时间和路径上的关键节点。如果能在路径中段发现装设了同样型号的被动监测设备,就说明操作员自己也在监控这条路径的进出情况。“ 他把这条行动计划加在了备忘录的“下一项“条目中,紧跟在仓储区北墙凹陷处的发现之后。写完他停了一下,在条目的末尾补了一行备注:“如路径中段有监测设备,其型号和频段可能与物流园中继器系统不同,需准备相应的扫频工具。“ 顾晏从工作站前抬起头来。她在纸上记下了扫频工具和频段列表的交接时间,没有抬头看他。她的笔在纸上顿了一下,然后继续写完了那行字。记录器的回传系统会持续扫描并缓存来自仓储区北墙凹陷处的环境背景信号,数据日志按照每两小时的间隔打包回传,等待下一组波形数据进入记录器的存储区。他的目光在时间和路径节点之间来回移动,确认了这两者之间的对应关系。石板和灌木丛间的空隙在围墙根部的阴影里继续安静地保持着,等待着下一次被掀开的时刻。 第42章 循迹 凌晨三点五十分,车停在距北墙凹陷处约一百五十米的土路拐角。陆维桢从副驾驶座下来时,风从农田方向吹过来,带着湿泥和植物根茎的气味。他把一只小型扫频仪别在腰带上,没开任何照明,靠着前一天观察记下的参照物方向,穿过一片被露水打湿的短草坪,向梧桐树冠的暗影区接近。 他在距离围墙凹陷处约十米的位置放缓了步伐,改为每走两步停顿一下、确认周围的声音和光线分布再继续移动。凹陷处外围的灌木丛轮廓在无月光的夜间模糊成了一片深色的连续面,只有围墙顶端与天空交界处保留着一条微亮的边界线。他在那片连续面的边缘停下脚步,蹲在草丛中观察了大约两分钟,确认凹陷处的植被分布和石板覆盖的位置与他白天记忆中的细节一致。 围墙上方的栏杆浅色漆面在微弱的天光下隐约可辨,凹陷处内墙根的石板表面落着几片干枯梧桐叶。他走近后用手指沿着石板边缘摸了一圈,石板和地面之间的缝隙宽度可容纳工具探入,石板本身不厚,重量适中,可以被单手翻起。他掀开石板的一侧,下方露出的土壤表面比周围地面低了大约十厘米,形成了一个浅坑,坑底的土质被反复踩踏后压得非常密实,表面有几组鞋印叠加在一起。鞋印的纹路宽窄均匀,呈现出多次经过同一地点后形成的固定轨迹。 陆维桢没有翻动石板另一侧。他把石板放回原位,贴着凹陷处的内墙面向仓库方向移动。仓库北墙的墙面在近处呈现出灰色的抹灰纹理,有几处管道穿墙孔洞用密封胶填塞着,密封胶表面平整,无近期被重新开凿的痕迹。他沿着墙面到达了仓库侧门的位置——一扇涂成深灰色的铁门,门框和墙壁之间的密封条完整,门锁是一把普通的弹子锁。锁芯周围没有明显的撬动痕迹,操作员很可能持有钥匙。 他从侧门位置返回凹陷处,从原路退出了围墙范围。回到车辆旁边时扫频仪上没有记录到任何异常信号或触发,这附近没有额外的监测设备。 “路线通畅,没有加装监控。“陆维桢上车后把扫频仪摘下放在座椅上,“石板下的鞋印叠加层数很多,操作员使用频率高,每次经过都踩在同一个落点上。通过时间估算在三点五十分到四点十分之间的三分钟内。“ 周承岳没有熄火,引擎怠速声在安静的土路上形成一层持续的低频背景。他在黑暗中保持着观察姿态,两只手搭在方向盘上,目光落在梧桐树冠方向。陆维桢坐在旁边重新过了一遍路径上的细节。从围墙凹陷处到仓库侧门只需要经过一段约二十米的北墙墙根路径,没有遮挡物,但那段路径处在仓库墙体投下的阴影带里,从远处看几乎完全融入了墙体本身的暗色轮廓。 “他在路径上不需要额外遮蔽。“陆维桢说,“围墙凹陷处进入后,沿着墙根走到仓库侧门。墙根的阴影带覆盖整段路径,从任何方向观察都不会看到移动的人影。只需要注意脚下不要踩到碎石或者枯枝。“ 他停了一下。从墙根阴影带经过仓库侧门到机电夹层下方的位置之间,还有一段室内路径没有走过。如果操作员每次都在仓库内部通过通风系统的报修记录来接触设备主体,那么仓库侧门进入后他需要穿过一段堆放物资的过道区域才能到达机电夹层位置。这就有可能在过道区域留下其他的痕迹。 “需要知道仓库内部过道的布置方式。“陆维桢说,“侧门到机电夹层之间是否经过货架区、是否有监控摄像头覆盖、以及过道地面是什么材质。这些信息决定了操作员进入仓库内部的行动时间窗口宽度。明天调仓库内部的平面布局图,核对过道与机电夹层之间的路线。“ 他的目光从天窗上方变暗的树影轮廓上收回来,落回到车内的记录页上。从围墙凹陷处到仓库侧门的路径已经被扫过,没有发现额外的安全装置或人员活动痕迹。下一步是操作员进入仓库侧门之后的路线——那条路线位于仓库内部,和外部路径的物理条件完全不同。仓库侧门外的路径在路灯和树影之间保持着安静的状态,没有新的声音或震动传入周围的空气中。夜间的风从远处吹来,穿过梧桐树的树叶,在围墙的凹陷处上方形成了一圈微弱的声响循环。 第43章 内径 仓储区g区仓库的内部平面图在第二天上午通过规划部门的存档系统调取到了。图纸的电子版被加载到工作站的屏幕上时,仓库内部的柱距、通道宽度、机电夹层的通风管线和检修井位置以标准化的线条清晰地呈现在图层上。陆维桢站在屏幕前把图纸的分辨率调到最高,从侧门入口开始沿着墙体标注的走道方向一路移动到仓库中段区域。 图纸显示g区仓库内部的结构分为三个主要分区:南侧的货物存储区、中央的装卸区以及北侧的设备夹层区。侧门位于北墙东段,进入后经过一段约六米长的过道连接到设备夹层区的外侧走廊。走廊北侧排列着三间机电小室,分别对应通风系统、配电和弱电管线。机电小室的门在图纸上没有标注锁具类型,但在门框上有一个标注“检修通道“的标记,指向其中一间小室内部的管线走向与百叶窗位置所在的墙体之间存在的垂直连接。 “设备位置在通风机电小室内部。“陆维桢的手指沿着图纸上机电小室的轮廓画了一圈,“机电小室的墙体厚度标注为二十四厘米,通风管道从机电小室的顶部横向穿过,方向与百叶窗所在的墙体相交。west-node-bk-03的外壳固定在百叶窗内侧,但设备主体可能从机电小室内部通过管道延伸到外墙处。操作员在机电小室内部就能完成整台设备的维护和介质更换,不需要打开外墙的百叶窗。“ 顾晏从旁边移了一步,在图纸上标注了机电小室到侧门之间的净距和过道宽度。过道宽约两米,两侧墙面由混凝土构成,地面材质标注为环氧地坪,没有铺设地毯或吸音材料。这种硬质地面在人员走动时会产生清晰可辨的脚步声,脚步声会在过道的垂直墙面之间形成多次反射,在仓库夜间安静的环境中的可听距离会超过十米。 “操作员进入机电小室后,他的脚步声会被过道的反射效应传出到仓库内部。“顾晏说,“如果他是在无人时段操作,那脚步声本身不会引起注意。但如果仓库内有其他人员留守,声音可能暴露他的存在。“ 陆维桢把图纸的窗口缩小,在另一侧打开了仓储区的值班排班记录和夜间巡逻安排。巡逻安排在图纸上以时间轴形式排列,显示每天夜间九点后有一名值班人员在全园区范围流动巡检,巡逻路线的周期约九十分钟。g区仓库的北侧在巡逻路线上的曝光窗口每次持续约五分钟。操作员的进入时间如果落在两次巡逻之间的间隔内,他可以在仓库内部完成操作而不被人员经过。 “时间窗口匹配。“陆维桢在巡逻时间轴和操作员行动时间线之间画了一条平行对应线,“凌晨四点左右是夜间巡逻已经完成最后一遍、早班值守尚未到岗之间大约两小时的交接空档期。操作员利用这个窗口进出。仓库内部没有监控覆盖,过道的脚步声在夜间会被部分吸收或者被远处通风设备的低频噪音覆盖,进一步降低暴露概率。“ 他重新翻了一遍图纸上的机电小室细节,在通风管线与外墙交汇的位置找到了一个用虚线标注的检修面板——大约五十厘米见方,位于机电小室内侧的墙面上,面板周围标注了螺栓孔位和密封条型号。面板正对着通风管线的垂直转向节点,被打开后可以通过管道空间直接接触外墙百叶窗内侧的设备外壳位置。 “机电小室的检修面板是进入设备位置的关键点。“陆维桢在白板上画了一个简化的位置示意图,“操作员进入机电小室,打开检修面板,穿过一段通风管道空间到达外墙设备处,完成介质更换,然后原路退出。整个过程不需要接触仓库主存储区,也不需要打开外墙百叶窗。“ 白板上的示意图加上这个新节点后,从北墙凹陷处开始的完整操作路径终于闭合了:围墙凹陷处→沿墙根阴影带→仓库侧门→过道→机电小室→检修面板→通风管道空间→外墙设备位置。这条完整的内部路径与外部观察到的设备位置和操作时间节点之间存在严密的对应关系,没有任何步骤需要暴露在仓库主空间中。 周承岳在看完路径示意图后没有立刻发表意见。他的目光在白板和图纸之间来回比对了几次,然后开口问了一句:“机电小室的门如果从外部上锁,操作员的钥匙来源需要追溯。仓储区管理处的备用钥匙存放在哪个位置、由哪些人经手,需要确认是否有记录显示钥匙曾被外借或复制过。“ 陆维桢在笔记中添加了一条新的待办项。他重新打开图纸查看了机电小室的门锁类型标注——标注显示为普通弹子锁,而非电子门禁。弹子锁的钥匙容易被复制,且管理处对弹子锁钥匙的借出和回收记录通常较粗糙,可能存在管理空白。 “如果钥匙出处无法追溯,“陆维桢说,“那操作员可能持有未经登记的副本。这种情况下,内部路径的进入权限属于硬件漏洞,不依赖管理处的人员配合。操作员只需要获得一把钥匙样品就能自行复制。“ 他收起图纸的电子窗口,在仓库平面图的图纸图层上添加了一组标注:从围墙凹陷处到机电小室入口的完整路径被连成一条连续的线,在终点处用一个小方块表示检修面板的位置。这条线现在出现在地图图层的最上层,仓库实景的整个结构特征都在图层的堆叠中被完整覆盖了,机电小室内部的虚线检修面板被推到了最上层,位于所有标注线的末端,轮廓比周边的结构线更突出一些。所有线条的末端都汇集到同一个位置,在那片窄小的方形区域内收束成一条线。 第44章 夜勘 围墙凹陷处的碎石在靴底发出短暂的滚动声之后恢复了静止。陆维桢在石板侧面蹲下来,从工具袋里取出那枚改造过的扫频仪,重新调了一遍仓储区的信号背景曲线。凌晨的电磁环境比白天干净得多,市区和园区内部的设备信号已经进入了低活跃度的夜间模式,只有附近的基站和电子围栏系统在稳定运行。扫频仪屏幕上的波峰保持在静默状态的正常区间内,没有意外的新增信号出现。 他从工具袋里取出那枚便携式低频噪声记录仪,固定在石板内壁侧面与地面接缝的夹层中。记录仪的外壳轮廓在石板放回原位后完全被覆盖住,从外部看不到任何安装痕迹。固定完成后他沿着北墙墙根的阴影带向西段方向走了一遍,确认在路灯覆盖范围内的每一个位置都没有能直接看到墙根阴影带的观察点。 凌晨四点零二分,他站在距离仓库侧门约三米的位置进行了一次低光摄影。侧门的门框在长曝光下完整显示出了门缝的贴合状态和合页的安装方式——合页是普通外装式,可以用通用工具拆卸合页轴心后使整扇门在不破坏锁具的情况下被取下来。他在合页轴心顶端发现了一小片金属反光,像是经过了打磨,不是出厂时的毛坯表面。那几枚合页的轴心顶端在长曝光下呈现出不同的反光特征,其中一只的反光亮度略高于另外两只,表明那一只的顶部表面被打磨得更平整。可能是为了降低合页拆卸和重装时的摩擦力而做过的局部调整。 陆维桢把相机收起来,沿着墙根的阴影带原路退回围墙凹陷处。他掀开石板把记录仪的电池盒重新拧紧了一次,然后放下石板把表面的落叶散布均匀,退出了凹陷范围。 回到车辆内部的时间是凌晨四点二十一分。顾晏在副驾驶座的位置仍然保持着观察姿态,她手里的笔记本上画着侧门合页的简图和轴心反光的标注。她在陆维桢上车后把笔记本转向他的方向,用笔尖点了一下合页简图上那只反光较高的合页轴心的位置:“如果操作员定期拆卸侧门合页进出,那他的操作工具中可能包括一只专门用于快速拔装合页轴心的组合工具。通过现场测量合页的间隙尺寸,可以推断工具的类型和操作方式。“ 陆维桢把车门轻轻合拢。车辆在夜色中沿着土路缓慢驶离,田间道路表面碎石松动,但车速保持得很低,把轮胎滚动的声音控制在自然风噪的范围内。驶入主干道之后他看向窗外,蓉城北部的工业区正从灯光稀疏的夜间状态缓慢过渡到凌晨的备用照明模式。他低头在笔记本上写下了侧门合页型号和轴心打磨特征,在标注旁边加了几个关键词,合上了笔记本。 回到龙科院地下三层后他没有开主灯,只开了操作台上的局部照明。他在操作台前把凌晨拍到的侧门照片上传到工作站,放大了合页轴心顶端那一小片反光的区域。打磨痕迹的走向和深度在放大显示中呈现出连续、平直的纹路,是手持研磨工具进行过的细微调整。磨合面的宽度和合页轴心本身的直径之间存在一个紧凑的尺寸关系,其精度与标准加工工艺不符,表面处理方式属于后期改造。操作员对侧门的这组合页做过精细处理,使其可以在数秒内完成拆卸和重装,无噪音、无受力形变。 陆维桢在照片旁边添加了一行注释:“合页轴心顶端经过研磨处理,配合度精确。拆卸侧门可在不使用任何工具的情况下完成,耗时约三秒。“ 顾晏把侧门照片和合页轴心特写图同步备份到了仓储区的加密文件夹中。她在文件命名栏填入了时间和地点信息,然后在备注栏里补充了一句:下次进入窗口预测在约四天后,满月后三天,夜晚光线条件中等。她把笔记本电脑合上,显示屏的余光在桌面上停留了一会儿才完全熄灭。 陆维桢站在操作台和白板之间的位置,视线落在白板末端那处尚未闭合的空白处。合页的打磨痕迹指向一个精确的操作习惯——操作员为侧门做过改造,使进入过程更快、更安静、不留痕迹。这个做法和他之前多次经过墙根阴影带时都会刻意落在同一个踩点位置上的习惯是同一类行为特征:可重复、低成本、低风险。他把这个习惯性动作在白板的对应位置记了下来,然后站到工作站前,等待仓储区凌晨的巡逻记录被回传到系统里,供第二天分析。 第45章 标位 天亮之后,陆维桢把凌晨拍到的侧门合页照片和北墙凹陷处的石板结构整理成了一张标注图,标出了合页轴心的打磨方向、石板与地面之间的缝隙宽度、以及墙根阴影带在凌晨不同时段的光线衰减估算值。他在标注图的右下角注明了一个新的观察点:机电小室内部检修面板的安装方向与侧门轴线之间的偏角约为十五度,操作员在进入机电小室后需要用右手打开检修面板的螺栓。 顾晏站在白板侧面,在机电小室的平面图标注上补了右手开合的备注。 下午时段,周承岳从仓储区管理处调取了g区仓库机电小室的报修登记表。登记表显示在过去三个月内,机电小室的巡检记录共八次,其中四次标注了“通风系统检查“,三次标注为“电气线路检测“,一次空白。八次巡检均安排在上午十点到十一点之间,签字人同一姓名,职务为“设施维护员“。陆维桢核对了报修登记表上的签字时间和人员姓名,与凌晨记录到的侧门合页状况进行了对照,合页轴心的打磨痕迹与仓储区维修工具的磨损特征接近,但维护员本人配备的工具类型在备案中没有包括带精密研磨功能的电动工具。 “八次巡检中有四次标注通风系统检查,时间集中在过去两个月内。“陆维桢把签字人姓名单独写在了白板角落的一个方框里,“他白天做合规报修登记,凌晨做实际的设备操作。白天的报修记录为他进入机电小室提供了合规理由,凌晨的操作才是真正的介质更换时段。“ 顾晏从工作站的电子档案中调取了那名维护员的入职信息和考勤记录。入职时间在六个月前,考勤记录显示他的排班多为白班,极少加班,深夜时段考勤机没有记录。他白天正常上班、正常打卡,在上午的巡检时段内进入g区仓库机电小室完成报修流程,然后回到办公室继续处理常规维护单据。但在没有考勤记录的凌晨时段,他沿着北墙路径进入仓库侧门,通过机电小室的检修面板完成数据介质的交换。 “他白天和凌晨的路径完全分开。“陆维桢说,“白天的报修路径经过主通道,会经过值班岗亭和园区监控视野,有合法记录可查。凌晨路径绕开了所有监控点,不留电子记录。两条路径在不同时段为他提供了进入同一目标位置的不同合法性掩护。“ 陆维桢把白板上操作员路径的草图重新梳理了一遍。两条路径在机电小室汇合,在白板上形成了一个v字形交汇。从机电小室出发,白天路径向北侧偏转,进入仓储区的主通道区域;凌晨路径向南侧偏转,经由侧门和墙根阴影带通向围墙凹陷处。他在v字形的下端画了一个实心圆点,标注为“检修面板“。 “如果他要进入检修面板的操作位置,白天和凌晨的路径在机电小室内部的落点是一致的。“陆维桢转身面向白板的方向说,“无论从哪条路径来,操作位置始终固定在检修面板前。那么检修面板本身的状态能否反映出他更换介质的具体频率和操作时长——面板内侧螺栓的锁紧力矩变化?“ 顾晏从工作站前抬起头来。“操作员多次打开检修面板,面板的固定螺栓会累积锁紧力矩的变化。每一次开启和重新拧紧都会在螺栓头和垫片接触面上留下对应的摩擦痕迹,累积次数可推算。如果能在不触发报警的前提下测量其中一枚螺栓的当前力矩值,再结合已知的最近一次操作时间,就能推算出操作员在这个检修面板上累计的打开次数。“ “明天凌晨。“陆维桢说,“在操作员下次窗口前确认面板螺栓的当前力矩值。之后等操作员完成下一次操作,再测一次,两次之间的差值就是本次操作中面板被打开所用的力矩变化量。如果差值保持不变,说明他的操作手法固定。“他的视线在白板上的v字形路线图上停留了一下,然后移向了工作站屏幕上g区仓库机电小室的内部结构图。 白板上用不同颜色的线条标注着不同路径,v字形的两条分支在机电小室的位置汇合成一个完整的回路。最下方的圆点画在v字形的末端,在圆点的周围,白板表面的光滑质地反着光,轮廓的边缘经过照明灯的斜射投在了墙面的浅色表面上。 第46章 测隙 凌晨三点十一分,陆维桢第二次穿过g区北墙根部的阴影带。这次的路线比前几次更精确,每一步都落在了之前踩实的那条轨迹上,鞋底与地面接触时几乎没有产生新的摩擦声。到达仓库侧门后,他没有直接处理门锁,而是用测隙规探入合页轴心与支撑座之间的缝隙,读取了间隙宽度。数据比上次的记录宽了大约零点一毫米,说明轴心经过又一次拆卸和重新安装后,间隙配合产生了积累性的微量松弛。 他从侧门侧面的维修通道绕到了仓库主外墙与设备夹层之间的狭窄空间里,打开了一只小型手持式力矩测量仪的电源。测量仪的探头能精确检测螺栓头与垫片之间的接触面摩擦力,通过多次测量同一枚螺栓的扭紧力矩变化来推算操作频率。他把探头对准了机电小室检修面板外露的螺栓头,抵住螺栓头顶端,让测量仪的传感器与螺栓头表面贴合了大约十秒后,读数稳定在了一个预设的范围内。他调整了探头的角度重新测量了一次,测量结果之间的差异在正常波动范围内,取均值后作为本次的基线记录。 他把测量仪收回工具袋,在原地站定了几秒,确认机电小室内部没有异常声响或光线变化后,沿着原路退出。经过北墙凹陷处时他检查了记录仪的外壳位置,石板表面的覆盖状态与前一天一致,没有新增的移动痕迹。到达车辆停放处的时间是凌晨三点四十分,比预计提前了约四分钟。 顾晏在车辆内部把力矩测量仪的记录数据导入工作站,生成了第一组基线数据。她用电子表格整理了螺栓的当前力矩值、侧门合页间隙宽度、以及检修面板螺栓的光学影像,将其标记为“初始状态参考点“。她在备注栏写下了本次测量的时间戳和环境温度。 车辆返程途中,陆维桢在副驾驶座把侧门合页间隙宽度的数据和之前记录的旧数值进行了对比,差值在零点一毫米左右。零点一毫米的松动,对于普通门体来说几乎可以忽略,但对于一扇被人在深夜反复拆卸过的门来说,它是累积使用的痕迹。操作员已经多次使用这种方法进入仓库内部,每次拆卸都微幅扩大了轴心和支撑座之间的接触间隙。 回到地下三层后他把力矩测量仪的数据线和计算机接口连接好,然后把原始数据转存到了仓库节点文件夹中,创建了一个新的子文件夹来保存力矩测量仪的全部记录。操作台的主屏幕上显示着一张实时更新的节点状态图,图上g区仓库机电小室对应的图标旁边新增了一个测量状态的标记符号,表明该位置的物理访问路径已经完成了初始数据采集。 光屏上的状态图标记随着他的视线移动而更新了对应的细节显示,机电小室的灰se区域内部,检修面板的螺栓位置标了一个微小的测量标记符号,侧门的合页处则用另一组不同的标记同时显示着时间轴信息。这些标记按照颜色和形状分层排列在屏幕上的示意图中,合页间隙测量结果和力矩测量数据被各自独立存储在对应的子文件夹内,在屏幕上对应的区域用同一组指标线连接着。 顾晏在做完数据同步后从工作站前站起来,走到操作台侧面把力矩测量仪的探头重新进行了零位校准,然后放回了工具袋的相应隔层里。她直起身时看了一眼屏幕,机电小室的灰se区域内部,那枚螺栓的测量标记符号与侧门合页的时间轴信息互相独立存在于同一屏幕区间内,两组数据之间保持着各自完整的显示区域。 第47章 叠痕 基线数据的分析在下午两点左右有了结果。陆维桢把力矩测量仪记录的螺栓数据与侧门合页间隙宽度的变化做了一次交叉对照,两组数据曲线在时间轴上的分布没有完全同步。合页间隙的扩张速率在最近两次测量之间保持均匀,没有出现突变;但力矩数据在相同的时段内出现了一次波动——操作员对检修面板螺栓施加的锁紧力矩比基准值低了大约百分之八。 他重新调出了报修登记表上的签字记录,把波动发生的时间段和八次巡检中的第七次进行了叠加。第七次巡检记录在报修登记表上标注为“电气线路检测“,签字日期在当天下午。如果操作员在凌晨完成了设备的实际介质更换,那么下午的报修巡检可能只是用于覆盖凌晨活动,让他自己在记录上出现在g区仓库这一区域——白天的记录和凌晨的实际操作在时间上是分离的。 顾晏把力矩波动曲线和报修时间线做成了同一张图层叠图,叠加图上的数据点依次与对应的报修记录排列在一起。第七次巡检之后的力矩值曲线出现了一个低点,然后在第八次巡检之前恢复到接近基准值的水平。恢复过程表明操作员在某个时间点重新调整了螺栓的锁紧度,可能是为了确保面板在下次操作前保持正常的密封性。 “他在修正自己的痕迹。“陆维桢说,“每次操作后隔一段时间他都会回来一次,把螺栓的锁紧力矩调回标准范围。这样即使有其他人定期检查机电小室的维护状态,看到的也是正常的紧固数值。“ 他在笔记本上单独记下了这个发现,在旁边加了一条时间线标注——操作员每次操作后约四十八小时回来一次做锁紧力矩修正。这条附加的时间线和cr-07的七天主周期不同,属于他个人的维护习惯。如果把这条时间线和主周期叠加在一起,暗潮在仓储区的节点运作就呈现出两层节奏:七天一次的数据介质更换,加上操作员每次更换后约两天回来做一次工具痕迹复位。 “下次操作窗口预计在约四天后。“陆维桢说,“如果要完整观察到他的操作流程,我们需要在他做完介质更换之后继续观察约四十八小时,看他是否按惯例回来做螺栓力矩修正。“ 他站到白板前,把这条新发现的时间线添加到了操作员的行为模式图中,用虚线标注在七天主周期下方。两条时间线在图中保持平行,操作员在完成介质更换后的第四十八小时左右会回来做一次快速调整,然后在主周期的下一轮开始前再次回到仓库位置完成新一轮介质更换。 周承岳在下午三点左右从外边回来,带来了一条来自沿海方向的消息。白色面包车截停后从车上缴获的那组数据存储卡已经完成了初步内容提取,其中一部分文件的元数据创建者字段指向了蓉城航空动力研究所的一个内部账号,账号名称对应一间名为“材料测试数据室“的办公终端,位于测试台所在楼层。那台终端在近期的工作日白天时段保持着规律的登录记录,所有登录者在系统内的操作日志都停留在正常的数据读取和归档范围内。 “测试台那台终端被用作了数据转存的前端。“陆维桢说,“廖维在测试台面板上安装分流接口后,数据通过光纤进入弱电系统,从那里有两个出口——一个去公交站台方向,另一个可能在终端所在的位置做本地存储,然后以正常的工作流程从终端外发数据,这样在系统日志中显示的是一个合规的操作记录。数据从测试台上产生后,已经被自动复制到了至少两个独立的目标出口上。“ 他重新打开物流园存储卡的目录树,在ext_my文件夹的下层目录中找到了一个与那台终端账号名称格式一致的文件索引标记。标记对应的是一个在终端本地生成的输出文件序列,文件创建时间戳和测试台的运行节拍完全同步,生成后的文件在几秒到几分钟内被转存到外部存储介质中。整个过程不需要任何人工干预。 “廖维的职责范围包括日常的数据维护工作。“陆维桢说,“他在白天通过合规的流程操作终端,把数据转存到正常的归档路径中。夜间和凌晨的物理介质更换则是另一条完全独立的渠道,通过公交站台设备和仓储区设备完成。他在同一天内同时运行着两条输出链路:一条合规,一条隐蔽。两条链路共享同一个数据源。“ 他把这个发现加在了白板上已经闭合的v字形路径图的顶部,在标题下新增了一行备注。两条链路共享同源意味着如果合规链路被截断或审计,廖维可以完全依托隐蔽链路继续运行。只要他的物理访问权限还在,数据就能持续流到仓储区的设备上,即使合规终端上的所有操作都被实时监控,也不会影响第二条链路的工作。 “所以截断合规链路只能挡住一半。“陆维桢在白板的空白处画了一个新的分支图,“只要物流园存储卡和仓储区设备还在运行,数据仍然可以绕开合规路径流向沿海方向。现在合规链路在面包车截停时已经断了,但隐蔽链路的部分仍然在运行。“ 陆维桢转身走向工作站,调出了仓储区记录器的实时状态界面。界面上显示记录器的存储区尚未被新的数据写入,说明自他安装记录器以来没有人靠近过g区仓库中段的设备位置。下次写入预测窗口在几天后。他的目光落在那条时间轴上等待写入的数据块标记上,标记的位置在时间轴末端偏左的位置,还没有被填入数据,在显示屏边缘保留着一段大约一个字符长度的空白区域。 他保持站姿看着那个空白区域,视线没有移开屏幕。操作台旁边的工作站电源指示灯持续亮着稳定绿色,环绕在屏幕边框四周的内框边缘形成一圈均匀的间歇性亮纹。 第48章 芯影 第四天凌晨的记录器数据回传中,出现了一段不属于常规通风系统运行的声音。波形显示在凌晨两点十七分,有一组持续约十二秒的低频振动传导到了记录器安装位置,频率和振幅与普通人员走动或开关门等动作不同,更接近某种金属结构受力后的弹性释放声。声音的频率以特定的节奏重复了两次,每次持续约六秒,两次之间的间隔时间在波形图上形成了一个间距均匀的双脉冲。 陆维桢把那段波形从记录器的存储区完整提取出来,用频域分析工具剥离了背景噪音后,两个脉冲的波形轮廓呈现出明确的对称性。对称中心的位置对应一个约零点五秒的静默间隔,像是同一件金属件被施加了两次方向相反的扭矩,第一次受力后弹性复位,第二次受力后锁定在另一个位置。 “他在测试检修面板的锁紧机构。“陆维桢对站在操作台侧面的顾晏说,“两次施加相反方向的扭矩,第一次可能是打开面板,第二次是关上并重新锁紧。中间零点五秒的静默间隔是他更换介质或者操作设备的时间窗口。“ 顾晏没有回答。她走到工作站前,把记录器原始数据的波形文件和自己预先存储的背景基线做了差异叠加。叠加后的波形图中,双脉冲信号从背景噪底中清晰地分离出来,两个脉冲的幅度几乎完全相等,结束后的波形回到基线水平。她标记了两脉冲末端的时间点,将它与操作员之前的行为模式时间线做了对比,发现凌晨两点十七分不在之前记录的任何行为窗口内。它在七天的主周期和四十八小时的力矩修正周期之间都没有匹配的位置,属于一组全新的时间节点。 陆维桢在操作台前坐下来,把记录器安装后的全部数据按时间顺序重新排列了一遍。他注意到在波形出现之前约半小时,记录器的低频通道曾经捕捉到一次微弱的瞬态冲击,位于检修面板所在墙体结构的方向。冲击出现的时刻距离双脉冲出现大约三十三分钟,当时周边的环境声音处在常规的夜间值班噪声水平内,瞬态冲击的幅度低到被通道的背景基线几乎完全包裹,滤去基线后只在波形的上沿凸出一段微弱的振幅尖峰。 他调出了冲击出现时段的仓储区外围交通流量记录——该时段内没有重型车辆经过附近道路,气压和风速也没有出现剧烈变化。墙体结构方向的瞬态冲击像是人为造成的,来自仓库内部或紧邻外墙的位置。瞬态冲击之后经过三十三分钟,双脉冲出现。如果两次事件属于同一序列,操作员可能在三十三分钟前进入了机电小室,然后利用这段时间等待或准备了某些条件,最后在检修面板前完成了两次扭矩操作。 “他今晚来过。“陆维桢说,“三十三分钟前他从某个入口进入了机电小室区域,然后经过大约半小时的准备或等待,在检修面板前完成了两次操作。操作结束后离开,双脉冲结束之后没有捕捉到返回的脚步声或开关门声。“ 他在记录器的时间轴上标记了这段序列的起始点和结束点,在白板的仓储区路径图上画了一条经过侧门和过道的短连线,连线的末端停在机电小室图标的位置,然后在图标旁边打了一个圆圈,表明本次操作发生在和上次不同的时段。 “他在测试新的操作时间窗口。“顾晏说,“提前进入仓库,在安静的凌晨时段做了一次确认或校准,然后才操作检修面板。双脉冲的时间窗口在凌晨两点十七分,比主操作窗口的常规时段提前了大约两小时。他在调整自己的进场时间,使周期规律更加分散,降低被预测的可能性。“ 陆维桢把这段新的操作时间记录添加到了cr-07的时间轴旁边。cr-07的主周期仍然在七天一次,但它的操作窗口出现了分化,可能对应不同的操作类型或者不同的数据取送方向。这种分化在单一操作模式下不常见,它意味着机电小室内部的设备可能支持不同的操作入口或不同的介质接口类型。 他把目光从波形图上移开,转向工作站的存储卡目录树。在物流园中继器的原始数据目录的底层,有一个之前没打开过的隐藏配置文件,以压缩包格式存储,文件名的后缀是一组压缩格式标记。他用系统内置的解压工具打开后,得到了一组以数字顺序排列的配置文件副本,文件名中出现了g区和机电小室的关键字组合。其中一份配置文件的命名规则和存储卡目录树中,west-node-bk-03设备的命名格式相似。两套命名规则属于相同的根目录,并在系统的同一层级文件夹下排列,由同一套文件系统的底层逻辑管理,共用同一组子目录参数。也就是说,west-node-bk-03设备本身属于物流园中继器所辖的节点体系,只是它的表面命名代码和主设备不同。 他在工作站的标签系统中把west-node-bk-03和物流园中继器之间的关联建立为同属一个节点群的从属关系。同属一个节点群意味着仓储区设备和物流园中继器之间的数据流可能通过软件层面的映射实现单向或双向的连接,而不需要外部的物理链路支持。 操作台侧面的顾晏把这段新关联在她的记录表上补充了一个标签。标签的内容和主目录的命名标记一致,附注栏写着从属于物流园中继器节点体系,但操作时间窗口与主节点不同,可能存在独立的调度指令系统。 陆维桢关闭了配置文件压缩包的窗口。屏幕上恢复了记录器实时数据的显示界面,界面上最新一段波形已经超过了双脉冲信号的结束位置,继续保持着背景噪音基线的常态运行。新的波形在一段时间内以固定的节奏持续输出,当前的持续输出状态尚未到达结束位置。 第49章 层叠 物流园中继器底层文件夹的新关联确认之后,陆维桢关闭了配置文件窗口,但他没有立刻移开视线。屏幕上残留着操作员行为模式图的最下层,里面有一段之前被忽略的数据位标记,格式与普通的系统日志字段不同。他把那段数据位单独提取出来,发现它属于一种未在物流园存储卡的其他位置出现过的存档标记。 “操作员使用的不是单一工具。“陆维桢说,“检修面板被打开了两次,两次之间的间隔时间只有零点几秒,但施加的扭矩方向相反。打开和关闭不是用同一只手完成的,他用左手开、右手关。他的工具箱里至少有两把独立调校过的扭矩扳手。“ 顾晏从工作站侧面抬头看了他一眼,目光落在屏幕上那段数据位的末端位置。“如果他用两只手分别操作了打开和关闭,那他在面板开启的状态下使用双手同时操作设备介质的可能性也很高。双手操作意味着他不需要在更换介质的过程中做额外的调整动作,一只手拿旧卡,一只手插新卡,中间不需要辅助工具或固定支架。“ 陆维桢站了起来走向白板。他在操作员行为模式图的下方补了一行新的记录:检修面板每次操作持续约六秒,开和关各占一半时间,零点五秒静默间隔用于介质更换。他在下方空白处又补了一行:“操作员用左右手交替执行任务,双手动**调、节奏均匀,经过重复训练。“ 他退后一步看着白板上的整幅图。从左上角的航空动力研究所测试台开始,到右下角的沿海港口方向,中间经过七个主要节点,每个节点都用不同颜色的标注线和文字说明标记了对应的操作信息。测试台分流口、公交站台设备、物流园中继器、围挡区盒子、g区仓库设备、沿海贸易公司专线、备用车截停点。每个节点都标注了各自的地理坐标和确认的操作周期。 白板的右下角,沿海港口的标记旁边,目前仍是空白的延伸线末端,等待被填入新的内容。他在那片空白处暂时没做标记,把视线移回了操作员左手换右手的那段记录上。双手操作模式的节奏表明操作员对这台设备的物理结构非常熟悉,不是临时接触过一两次的新手。他在仓储区内的操作频次可能比记录器捕捉到的高出许多,或者他在g区之外的仓库里还负责维护其他的设备。如果操作员的行动范围不局限于g区仓库机电小室这一个点,那北区仓储区内还有至少一处未被发现的备用节点入口。 “明天白天再调一次仓储区的维修记录。“陆维桢说,“把g区之外的其他仓库机电小室的报修登记表也调出来,看有没有与g区机电小室时间线接近的排查记录。如果操作员在同一时段内出现在两处不同的报修位置,那就有可能把g区的入口范围拓展到相邻的仓库区域。“ 顾晏已经在工作站上打开了仓储区的报修管理系统界面。她在查询栏中根据陆维桢的要求输入了一组过去一个月内所有仓库报修记录的关键词,筛选结果在一段时间的运行后出现在界面上,覆盖了h区和f区的机电小室。其中h区机电小室在十五天前记录了一次“通风管道检测“,签字人和g区的维护员不是同一人。 “不同签字人,但笔记笔迹相似。“顾晏把两条记录的签字栏放在同一屏里做对比,“h区和g区的签字人的姓名写法不同,但连笔习惯和收笔角度相同。可能是同一人用不同名字做的记录。“ 陆维桢走过来俯身看屏幕上的签名对比。h区报修记录的签字名字与g区的名字确实是两个不同的汉字组合,但最后一笔的收尾角度几乎完全一致。一个人签名时的手腕习惯不容易被短时间改变,即使换了名字的字形结构,收笔的走向和力度仍会保持统一。 “他同时在h区和g区做设备维护。“陆维桢直起身,“两个点之间的间距约两百米,步行三分钟内可到达。他可以在一次进入操作中覆盖两个位置,先到g区检修面板完成介质更换,然后经过仓库之间的通道进入h区执行另一套操作。“ 他在白板上h区仓库的位置画了一个新点,用一条短实线连接到了g区仓库的节点上,在连接线上标注了“步行三分钟“的字样。新节点的出现使原来的七个主要节点扩展为八个,g区和h区之间的距离在图中被压缩成了一条短实线。 操作台工作站上的时间显示下午三点二十分。仓储区的报修管理系统界面上,h区机电小室的报修记录列表中还有一项备注,备注时间显示在两天后。备注字段的内容简述为“常规功能复检“。他从显示屏上收回视线,目光经过重岳骨架的轮廓上方时微顿了一下,没有停下来。他回到操作台前坐下,翻看物流园中继器存储卡的其余文件夹,想找找有没有遗漏的结构节点标注。屏幕微光落在他指节上方,沿着手指边缘投下一小段亮弧,弧形边缘的边界平稳地贴附在键盘上方的空处。 第50章 双点 h区机电小室的报修记录在两天后还有一个“常规功能复检“的备注。陆维桢把那条备注从仓储区的报修管理系统界面中单独截取出来,存入了h区仓库的设备文件中,然后在文件的标题栏标注了“待观测“三个字。h区仓库的位置在g区东北侧约两百米处,中间隔着一排办公附楼和一条内部通道,从g区侧门到h区侧门的步行时间大约三分钟。如果操作员在同一时段内覆盖两个点,他需要在g区完成操作后迅速转移到h区,并在h区完成第二套操作后原路退出。 “需要确认h区侧门的路径特征是否和g区一致。“陆维桢说,“如果h区同样存在侧门和墙根通道,操作员就能在同一次进入中完成两个节点的维护。如果h区的入口条件不同,他可能需要在不同的夜间时段分别进入g区和h区。“ 周承岳把h区的建筑平面图调到了屏幕上。h区仓库的北墙布局和g区类似,但北墙外没有围墙凹陷处,取而代之的是一段通向相邻停车场的台阶。台阶两侧有混凝土挡墙和金属扶手,在夜间能提供阴影覆盖。侧门的位置在台阶上方,比地面高出一层,进入门洞之后是一条检修通道,通道末端连向机电小室。 “h区侧门和g区侧门的结构不同,但同样具备隐蔽性。“陆维桢说,“台阶两侧的挡墙和金属扶手能为人员接近提供遮蔽,侧门位置略高于地面,从外部视野更不容易看到门缝处的操作细节。如果操作员在夜间进入h区,他会比在g区更容易保持隐蔽。“ 他的目光从建筑平面图的电子版上移到工作站的另一侧屏幕上——记录器的实时状态界面显示低频通道没有新的振动信号,风机的背景噪音频率高于测量仪通常能够连续记录的阈值。记录器处于常规待机状态,每隔一段时间进行定期自检,自检进程在后台运行,屏幕上没有任何变化。 “h区的机电小室是否有和g区相同的通风管道结构?“陆维桢转向白板方向,在h区仓库的新增节点旁边加了一个问号。 顾晏从仓储区的机电图纸目录中调取了h区机电小室的管路走向图。图纸显示h区的通风管道布局与g区相似,但在检修面板的位置和方向上存在差异——h区的检修面板位于机电小室的北侧墙面,而g区位于西侧墙面。面板位置的差异意味着操作员在h区操作时面朝的方向与g区不同,他的操作手势和工具摆放习惯可能有相应的调整。 “北侧墙面。“陆维桢重复了一遍这个位置描述,“面朝北操作时,他的右手更靠近门口方向。如果门在他左侧一米处,他操作完面板后不需要转身就可以直接离开。这个布局比g区的操作位置更紧凑,进出时间可以更短。“ 他在h区节点的备注栏里写下了“面朝北,右手靠门,进出紧凑“这几个词。操作员如果在同一次进入中覆盖g区和h区两个节点,他在g区完成介质更换后经过内部通道到达h区,在h区完成第二套操作,然后从h区的侧门或台阶通道离开。整个路线形成一个单向闭合环路,不需要沿原路返回g区。 “如果他在同一次进入中覆盖了g区和h区两个节点,“陆维桢说,“那h区的操作窗口应该在g区操作窗口之后约十分钟内。g区操作需要约六秒,转移时间约三分钟,h区操作再需要约六秒。总耗时约四分钟。“ 他把这个时间估算写在了h区节点的备注栏下方,留出了一条通向h区侧门位置的虚线,指向h区侧门在图纸上对应的出口方向。白板上现在排列着八个主要节点,其中三个节点——公交站台设备、物流园中继器和g区/h区机电小室——组成了一个小的三角区域,操作员在夜间通过物理路径在这三点之间循环运行。 周承岳走到白板前看了看那条新的虚线,没有说话。他侧过身来时手里的加密手机亮了一下,屏幕显示一条来自沿海方向的简短消息。他看完后把手机放回了夹克内袋,抬头对陆维桢说了一句:“沿海方向确认备用车上缴获的加密平板电脑中保存有一组北区仓储区的电子门禁系统访问记录。记录显示h区侧门在近一个月内有多次非工作时段开启的电子数据印记。“ “操作员从侧门进入,但是用电子门禁卡开的锁。“陆维桢说,“不是弹子锁。h区侧门的门禁系统记录了他的进出时间,门禁系统日志可能保存了每一次进入的具体时长。如果能获取这些日志,就能确认操作员在h区的操作窗口是否与g区的操作时间匹配。“ 周承岳拿起手机拨了一个短号,跟对方说了两句话后挂断。大约过了十分钟,一条经过安全筛查后的h区侧门门禁日志数据包传到了工作站的临时目录下。陆维桢解开数据包,筛选出了非工作时段内的开门记录,从近一个月的日志中提取出六条夜间开门记录。他把六条记录按时间顺序排列,与g区记录器中捕捉到的双脉冲信号的时间做对比。其中有四条记录的时间与g区双脉冲信号的时间窗口相差在十分钟以内,另外两条的间隔较大。 “四条吻合,两条不吻合。“陆维桢说,“吻合的四次说明操作员在同一次进入中覆盖了g区和h区。不吻合的两次可能包含其他原因,比如他单独去过h区做力矩修正,或者h区有另一套独立操作计划。“ 他在白板上的g区和h区之间画了四条短横线,分别对应四次吻合的操作记录。四条横线的长度和间距在空间中各自独立排列,在远处的视线中从白板的左侧到右侧依次延伸。他的笔在第四根横线的末端位置停顿了一下,笔尖在白板表面形成了一个短促的接触点,然后被抬起来离开了板面。 第51章 间隙 笔尖离开板面之后,陆维桢把马克笔放回笔槽里,但没有立刻转身。他站在白板前面看着那四条短横线和两条留空的间隙,视线在间隙与横线末端之间反复切换。四条吻合记录的间隔时间均匀分布在近一个月内,与g区记录器的双脉冲信号时间窗口基本一致。但剩下的两条不吻合记录单独存在,它们与任何已知信号或报修记录都没有交叉点。 “那两条不吻合的记录打开h区侧门的时间,有人进去了。“陆维桢说,“但g区没有对应的操作信号。操作员在那两次单独进入了h区,没有访问g区机电小室。他去h区做了g区不需要的操作,可能是针对h区设备本身,也可能是为了从h区取出某些介质而不经过g区。“ 他重新打开h区侧门门禁日志,把两条不吻合记录各自对应的时间点坐标和间隔距离提取出来,放到工作站的屏幕上与物流园中继器的数据回传周期做了一轮时间轴叠加。其中一条记录的时间点与物流园中继器的某次数据输出窗口的起点偏差约十二分钟,落在常规传输窗口的时间范围内;另一条记录的时间点和物流园中继器的传输周期没有交叉,但与一次机场货运航班起降时刻接近。 “第一条不吻合记录和物流园中继器的输出窗口有偏差,偏差在可接受的时间差范围内。第二次不吻合记录的位置在h区机电小室的操作位置上,操作员可能在h区进行了一次与物流园中继器数据输出不相关的操作,直接从h区向外部传送了数据。“ 他打开仓储区的监控平面图,在h区北侧台阶下方靠近停车场的方向,有一处排水管道从地面以下经过,管道盖板与周边水泥地面之间的间隙与g区墙根处的尺码相似。排水管道与围墙下沿之间有一条排水沟,沟体表面覆盖着可启闭的铸铁格栅。排水沟的走向从停车场方向穿过绿化带,在围墙与台阶之间有一处被挡墙遮挡的部分。那一段被挡墙遮挡的排水沟正对h区侧门的下方,格栅表面的尘土分布不均匀,边缘有被掀起过的痕迹。 陆维桢用手机拍了那张监控平面图,把排水沟的位置标注在h区节点的下方,在标注旁写了一行备注:“排水沟格栅边缘有被掀起的痕迹。可沿排水沟从围墙外进入h区侧门下方,不需要经过台阶正面,完全避开停车场照明。“ 他收起手机,重新回到白板前。操作员在g区和h区之间有两套不同的进入方式——g区通过北墙凹陷处的石板,h区通过排水沟。两条路径互不重叠,在仓储区的夜间路径图中形成两个独立的掩体结构。它们在同一个人的操作序列中交替使用,并不相互依赖,各自对应不同的数据需求或设备功能。 “他同时在管理两个独立的物理入口和两个独立的设备位置。“陆维桢说,“g区的设备负责常规介质更换,h区的设备可能负责数据的二次输出或应急回传。如果g区的设备被截断,h区的设备仍然可以通过排水沟路径继续工作。“ 顾晏站在白板侧面盯着那两条不吻合的记录看了片刻,然后她拿起一支蓝笔在两条记录的旁边分别画了两个小圈,在第一个圈里写了一个“r“字,第二个圈里写了一个“x“字。r对应数据回传,x对应应急输出。她写完后退了一步,没有解释这两个标记的含义,只是安静地站在白板前面。 陆维桢看着那两个标记在板上停留了一会儿。r和x的区别在他脑中逐步展开,r对应的是物流园中继器的传输通道,x对应的是独立的外部输出,两条通道在h区设备中并存,可能使用不同的介质或不同的传输协议。h区设备在g区设备的常规数据流之外,保持着另一套独立的对外通信能力。 “如果h区设备具备独立的对外通信能力,“陆维桢说,“那它在关闭g区设备之后还能继续向外输出数据。操作员同一次进入中同时覆盖g区和h区时,他把常规数据放进g区,把重要数据放进h区。即使g区的介质被截获,h区设备仍然保留着从数据流中分离出来的那部分信息。“ 他的目光从白板移到工作站的屏幕上,h区排水沟的监控平面图仍然开着,地图上那条从停车场通向侧门的虚线标记沿着沟体表面向下延伸。操作员如果每次通过排水沟进入h区,他可以完全避免被人从台阶正面看到,在围墙和挡墙之间完成从地面到侧门的全部移动过程,全程在阴影和地面标高以下进行,不会在地面监控画面中留下任何可辨的移动轨迹。 第52章 沟道 凌晨两点十一分,陆维桢第二次沿排水沟方向接近了h区北侧台阶下方的位置。他趴在地面上,用夜视模式观察格栅表面的痕迹分布。排水沟的格栅离地面大约三十厘米深,沟壁两侧的水泥表面覆盖着青苔和细泥,沟底有一层浅水,水流极缓,水面反射着远处路灯的微光。格栅表面的尘土比上次观察时少了一部分,格栅四角的固定螺栓有新拧动的痕迹,螺栓头的十字槽内的灰尘被擦掉了大半,露出底部的金属光泽。 他沿着排水沟的方向缓步移动,在格栅与挡墙交接的位置停了下来。挡墙底部有一条被水泥抹平的接缝,接缝中间有一块长条形的盖板,盖板表面涂了和挡墙同色的涂层,但涂层的分界线和周边的颜色存在细微差异。他用手指压了压盖板的边缘,盖板略微向下沉了一线,又弹回了原位。盖板下面有空间,不是实心填筑。 他掀开盖板的一角,下方露出了一段约一米深的竖井,井壁有预埋的金属脚踏,直达h区侧门下方的地面标高。竖井内部干燥,没有积水,井底的土壤表面有被踩实的痕迹,鞋印和g区石板下方的鞋印纹路一致。 他从竖井原路返回,把盖板和格栅恢复到了初始状态。回到车辆内部后,他在笔记本上画了一张排水沟到竖井再到h区侧门的垂直剖面图,标注了从地面到侧门之间的垂直距离和中间的各个结构层。剖面图底部还画了一段通向围墙外部的虚线——排水沟的延伸方向经过绿化带下方后通向围墙外部的市政排水系统,如果操作员从那个方向进入,他可以在不靠近停车场台阶的情况下,穿过市政排水系统的检修井进入仓储区。 “排水沟连接市政排水系统。“陆维桢合上笔记本,“操作员可能从围墙外的检修井进入排水沟,沿沟道到达挡墙底部的盖板,进入竖井后到达h区侧门下方的位置。全程都在地面以下行进,地面上看不到任何移动痕迹。h区设备的进出完全不需要接触地面监控或门禁系统,排水沟本身提供了完整的隐蔽通道。“ 顾晏副驾驶座侧过身来,用手电筒照亮笔记本上的剖面图看了一眼。她的视线在“市政排水系统“几个字上停了一下,然后放下手电筒,说了一句话,音量和车辆内部的安静环境保持一致:“排水沟如果连接市政排水系统,那操作员从围墙外进入仓储区的范围就不限于h区。他可以沿排水系统到达g区和h区之间的任意位置。“ 陆维桢坐在副驾驶座上,用手指在笔记本的剖面图上顺着排水沟的走向划了一条线。线的末端落到了g区北墙凹陷处附近的位置。如果仓储区北侧围墙下方的排水系统管网是连通的,操作员可以从围墙外的某处检修井进入排水系统,在地下移动一段距离后选择在g区凹陷处或h区台阶下方任一点出来,不需要在地面上经过任何一处监控视野。 “两条路径在地面以下连通。“陆维桢说,“地面上的g区石板和h区格栅都是出口,它们共享同一套地下管道系统。操作员在地面下可以自由选择从哪个出口上来。这样他每次进入时都不是固定的路线,即使其中一处出口被人盯上了,他也可以走另一处。“ 他把笔记本合上放回工具袋里。车辆启动后在沿着土路缓慢行驶的过程中,路面两侧的夜雾在车灯光束的照射下凝结成一层微弱的白色光幕。大约行驶了四十分钟后,车辆到达了龙科院北门入口,门禁的自动识别系统扫描了车牌后抬起了栏杆。车沿着园区内部道路驶向地下通道入口的过程中,顾晏靠着座椅靠背的方向低声说了一句话:“排水系统的管网图纸如果能在白天调出来,就可以确认围墙外最近的检修井位置和它的覆盖范围。“ 陆维桢没有说话。他的视线落在车辆前方地下通道入口的照明灯上,灯光在车子的运动过程中连续穿过金属隔离栏的缝隙。车进入地下通道之后,两侧墙壁上的密封条依次从车窗旁边经过,车内的光线从外部的路灯切换成了通道内的灰色调,在车窗边缘留下了一段段间距相等的暗色光段,每一段的起始与结束都在同一个线形范围内。 第53章 管网 上午的市政排水系统管网图纸通过周承岳的协调渠道到达了工作站。图纸是电子扫描版,分辨率足以看清楚管道走向和检修井位置的标注。陆维桢把图纸在屏幕上打开,将仓储区g区和h区的建筑轮廓叠加在管网图上,管道系统在g区北墙凹陷处和h区排水沟位置各有一处检修井。两处检修井之间的管道走向几乎是直线,中间没有任何转折,距离约两百米。 “检修井的位置刚好对应g区凹陷处和h区排水沟。“陆维桢在图上用不同颜色的标记标出两处检修井,“操作员从围墙外的某处进入管网后,可以在检修井内部自由选择从g区或h区出口上来。两座检修井内部的连通是开放式的,不需要通过地面路径转移。“ 顾晏在工作站旁边把管网图纸和仓储区的地面平面图做了精确校准,让两个图层上的检修井位置完全对齐。对齐后的图上,从围墙外最近的一处市政检修井到g区检修井之间的管道长度约六十米,管道直径在线标注为八十厘米,足够人员匍匐通行。 “围墙外最近的检修井在仓储区北围墙外约四十米处,位于一片绿化带中间。“顾晏把坐标数据输入导航地图,显示了检修井在绿化带中的位置——被一片密集的灌木丛覆盖,从路边看不到井盖的存在。 陆维桢在操作台前坐了一段时间,期间没有主动说话。他的视线保持在管网图纸和仓储区地面平面图的叠加图层上,两处检修井之间那条几乎笔直的管道线在屏幕微光下显得很清晰,沿着屏幕表面延伸,没有中断。他做了一番思想准备,然后在工作台前换了个姿势,把图纸保存为一份本地副本,调整了图层叠加的透明度,使管网走向和仓储区建筑轮廓的关系看得更清楚。他的手指在键盘上停了一段时间,然后按下了保存键,关闭了图纸窗口。 周承岳在午间时段从楼上下来,手里拿着一只密封好的透明袋,袋内装着一小块泥土样和一组用精密镊子夹出的纤维状残留物。他把袋子放在操作台上,朝陆维桢的方向推了一下:“排水沟盖板下方的竖井底部采集到的,井底的泥样中含有少量非本地土壤成分,颗粒粒径和颜色与仓储区周边土壤不同。纤维状残留物经过现场显微镜观察,偏向人造织物的纤维断面。“ 陆维桢打开密封袋把样品取出来放在一张白纸上,用手持放大镜观察那截纤维的断面形状。断面呈现规则的圆形,边缘光滑,没有天然纤维的毛刺或不规则截面。他在白纸上拨动了一下那截纤维的方向,使其与光线的角度发生变化,纤维表面的反光均匀,没有褪色或变色,是一种高密度的合成材料。 “工作服的纤维。“陆维桢把放大镜放回桌上,“仓储区维护人员的工装和操作员穿的可能是同一种面料。他在竖井底部留下的纤维是从工装上蹭下来的。竖井口和盖板之间的缝隙非常窄,每次经过时工装边缘都会和井壁发生摩擦,经过多次摩擦后,纤维脱落沉积在井底。“ 他把纤维样品装回密封袋里放到操作台侧面的储存盒内。储存盒内已经有几件从不同位置采集的物证,每一件都贴有标签和采集日期,它们在储存盒内部按照时间顺序排列,组成了一组从最近到较早的序列。陆维桢的视线扫过这些标签时,目光在最靠近盒底的一件上停了一下,然后移开了。 “下午再去一次排水沟。“他说,“把竖井底部到侧门之间的那段空间走一遍,确认操作员从竖井出来后是直接进入侧门,还是在侧门下方做了停留或操作。如果竖井出口附近有设备固定架或者检修平台,就说明他在竖井内也有操作位置,不只是通过。“ 顾晏从工作站前站起来,从储物柜里取出两只小型照明灯和一台便携式摄像记录仪。她检查了设备电量后把镜头擦拭干净,装入工具袋中。下午的车辆准备就绪后,两人从地下三层出发,沿北向道路再次驶向仓储区。 午间的北区街道行人和车辆较少。车辆在距离h区北侧排水沟约七十米处停下,陆维桢和顾晏步行穿过绿化带接近排水沟的格栅位置。白天光线充足,格栅表面的痕迹比夜视条件下更清楚——格栅边缘有两处螺栓头被拧动过,但表面的颜色没有露出金属底色,被一层薄灰覆盖着,使它的外观在白天看起来与周边螺栓没有明显区别。 陆维桢掀开格栅,侧身进入排水沟。白天的沟底水浅,光线从格栅缝隙透下来形成一组规则的条形光斑。他沿着沟底走到挡墙底部盖板位置,用工具撬开盖板,竖井内部在白天看起来比夜晚更窄,井壁的金属脚踏上有几处磨损痕迹,磨损位置的间距与一个成年人每次向上攀爬时的步幅一致。他继续向上攀爬了两级后到达竖井顶部,侧门的高度正好与他肩部平齐,他伸手触碰到了门框的底部边缘——门框下方有一块手掌大小的金属固定板,固定板的边缘被打磨成圆弧状,以避免磨损衣物或工具。 “竖井出口有固定板。“陆维桢在井下用低音量的声音说,“操作员从竖井出来后可以先站在固定板上调整姿势,然后再打开侧门。固定板的位置和门框之间的高度差刚好让他能在不弯腰的情况下伸手接触到门锁位置。“ 他原路退出了竖井和排水沟,在出口处把格栅放回原位。顾晏在格栅旁用便携摄像记录仪连续拍摄了多角度的现场画面——格栅螺栓、竖井盖板、井壁脚踏、金属固定板,以及侧门下缘与门框之间的间隙距离。 返回龙科院的路上,陆维桢在副驾驶座把拍摄画面回放了一遍。固定板的弧面边缘在镜头下表现得清晰而完整,完整无缺损。他用手机的截图功能保存了一张固定板的局部放大图,在图中圈出了其边缘的形状特征,然后收起了手机。车辆沿着北向道路平稳行驶,路旁的梧桐树冠在午后阳光下投下断续的阴影,透过车窗在副驾驶座的中控台面上快速掠过。 第54章 定板 车辆驶过一段直行道时,陆维桢再次调出了固定板的局部放大图。屏幕上的金属板边缘在午后的光线中呈现出完整的曲线轮廓,弧面边缘与板体平面之间过渡平滑,没有加工缺陷或变形。他从这张照片的特定角度观察,注意到固定板下沿靠近侧门门框的位置有一处颜色变浅的斑点——表面涂层的颜色在那里比周边浅了一级,像是被某种液体反复浸湿过又干燥后留下的痕迹。 他把那张照片放大到满屏,在斑点位置的像素网格上区分出了斑点的具体形状——边缘不规则,近似圆形,直径约两厘米。斑点内部没有明显的颗粒或纹理,颜色均匀地比周边浅出一个梯度,像是固定板安装后曾有一段较长时间处于某种液体浸泡状态,液体沿着板面流下后在该处积聚并蒸发,残留物在表面形成了一层极薄的浅色沉积。 “固定板表面有一处液体残留斑点。“陆维桢把手机屏幕向侧方倾斜了一下,让坐在副驾驶座的顾晏能看清。顾晏侧头看了一眼,没有接话,但她从工具袋里取出一只取样棉签递了过来,然后把手机还回给了陆维桢。 车辆在龙科院北门入口处减速通过。回到地下三层后,陆维桢在操作台前把固定板照片的局部放大图与仓储区排水沟盖板的材质光泽做了对比,两者的表面处理工艺一致,颜色相近。斑点位置的沉积物在放大后呈现为一种均匀的浅色薄膜,覆盖在固定板的金属表面,与周边的涂层融合在一起,只在颜色深浅上有细微的梯度差异。薄膜的边界在放大画面中清晰可见。 “液体沉积物可能是防锈油,也可能是定期维护时涂覆的某种保护剂。“陆维桢直起身把手机放下,“如果固定板边缘的弧面打磨是为了防止勾住衣物,那沉积物可能是同一维护习惯的一部分。操作员在自己使用的每一处接触点都做了类似的表面处理,减少操作时的摩擦和噪音。“ 顾晏从工作站的侧面抽屉里取出一张仓储区的固定资产登记表,翻到了h区侧门及附属设施的页面。固定资产登记表记录着侧门及其配件的安装时间和材质等级。侧门的安装时间和竖井盖板的安装时间在同一天。固定板的型号在表格上列为“定制件“,没有标准型号代码,属于现场加工安装的非标配件。固定板的加工单号列在备注栏里,开单人姓名书写潦草,但姓氏可辨。 “固定板是非标件。“顾晏把登记表上的备注栏用指尖压平在桌面上,“加工单的开单人姓廖。同一姓氏和航空动力研究所数据采集工程师廖维的姓氏相同。“ 陆维桢看了备注栏一眼,没有立刻回应。廖这个姓氏在蓉城不是极其常见的,但也不是唯一的,一张非标固定板的加工单不能作为直接证据。但他记住了这个备注栏的位置,在心里把它和廖维这个名字并排放置,间隔一段不宽的距离。 “固定板可能是由与仓储区有合作关系的加工单位制作的,加工单上姓廖的负责人可能是某一级的技术员。“陆维桢说,“但如果姓廖的负责人在航空动力研究所有对应的职位记录,那就有可能在两个单位之间找到职业同期的交集。“ 顾晏把备注栏的内容拍照存档,然后关上了固定资产登记表。她在关上表页前用手指在加工单号和备注栏之间画了一条线,没有做其他标注。她直起身走向工作站,把固定板的加工单号输入到内部系统的供应商数据库中执行检索,系统在索引过程中返回了一条匹配记录——加工单号对应的供货商名单与航空动力研究所某次设备采购的合同附件中的一页相符,供货商在附件的签章栏签了字。 “供货商名单重合。“顾晏在屏幕上把重合部分用深色高亮标记出来,“固定板的加工方和航空动力研究所的采购合同签章方是同一家单位。“ 陆维桢的目光从屏幕上移开,落在操作台侧面的样品盒上。他走过去把固定板照片的局部放大图重新打开了一次,在斑点位置的影像中确认了那层薄膜仍然保持着原来的形状和颜色。斑点所在的固定板表面与周边的涂层在光照下显出位置关系。他的手指在键盘上方悬停了一会儿,没有按下任何键,屏幕上显示的画面持续亮着。 第55章 配重 屏幕上的画面持续亮着。陆维桢的手指在键盘上方保持了静止的状态大约十几秒,然后落下,按下了截图保存的快捷键。固定板局部放大图的文件被添加了一个新的标签,标签内容指向了航空动力研究所的采购合同签章记录。他把两个文件窗口并排排列在同一个显示器上,左边是固定板表面的斑点影像,右边是合同附件的签章页。签章页上的供货商名称和加工单上的单位名称在文字结构上相同,只是打印格式略有差异。 “供货商签字是同一家。“他直起身,转向顾晏的方向,“固定板的加工方给航空动力研究所做过设备附件供货,也给仓储区提供过非标配件。这家供货商的业务覆盖范围同时包括研究机构和仓储物流设施。“ 顾晏从工作站前站起来,走到操作台侧面重新打开了固定资产登记表的页面。她的手指在页面的滚动条上向下移动了一段距离,页面底部有一栏以前没有注意到的附注——附注内容是关于固定板的材质说明,标注为“不锈钢基材表面涂覆防锈层,涂层厚度约零点三毫米“。涂层的描述和固定板表面那层薄膜的颜色吻合。 “固定板表面涂覆了防锈层。“陆维桢说,“防锈层的涂覆工艺需要专用设备。普通加工单位不会配备这种设备,供货商可能是专门从事特殊表面处理的公司。航空动力研究所采购合同附件中可能包含同一家表面处理服务商的记录。“ 顾晏在系统内检索了航空动力研究所合同附件的配套服务商名单。名单上有一家注册在蓉城的表面处理公司,业务范围包括精密零件的防锈涂层加工和金属表面钝化处理。这家公司的注册地址与固定板加工单上的供货商地址相邻,只隔了一条街。 “相邻地址。“顾晏在屏幕上把两家公司的注册地址标记出来,“地址相邻意味着存在关联。两家公司可能在同一个园区内,共用同一套生产设备或者技术图纸。“ 陆维桢把固定板加工单上的供货商地址和表面处理公司的注册地址放在同一张地图上,两点之间的直线距离约一百二十米。园区的位置在蓉城南郊的一处工业集中区,卫星图上可以看到两栋相邻的厂房,楼顶的通风管道走向一致,可能是同一栋建筑的附属部分。 “如果两家公司实际上属于同一个运营实体,“陆维桢说,“那固定板的加工和表面处理就是在同一处完成的。操作员只需要联系其中一个窗口,就能获得经过表面处理的成品件。“ 他的目光在屏幕上的地址标记之间来回移动了几次,然后他转而看向白板上航空动力研究所和仓储区之间的那条连线。连线的中间位置有一个空点,正好对应南郊工业集中区的坐标。他把那个空点填上了供货商的名称和表面处理公司的名称,在两者之间画了一条短横线。 “供货商为航空动力研究所和仓储区之间的设备流提供了物理接口。“陆维桢在白板上标注完成后说,“测试台面板上的分流接口可能是通过航空动力研究所的采购渠道从这家供货商处获取的配件组合的。廖维作为研究所内部人员,可以通过正常的采购流程拿到这些配件而不需要额外的授权。而仓储区固定板的加工单也通过相同的供货商渠道完成,两个方向上的配件流经同一家公司流向不同的安装地点。“ 周承岳在下午晚些时候从楼上下来,手里拿着加密手机。他在操作台边停了一下,开口说了一句话:“固定板加工单的签收人是廖维。签收时间在五天前,签收地址是航空动力研究所的材料仓库。但加工单上登记的交付地址是仓储区管理处,签收人一栏的姓名被改成了维护员的名字。“ “加工单被改过。“陆维桢说,“原始签收人廖维在加工单从供货商返回后,把签收人姓名改成了仓储区维护员的名字,使加工单在仓储区的记录系统中显示为设施维护人员接收的常规配件。这样即使有人查阅仓储区的配件签收记录,也会看到表面上是维护员本人签收了这批配件。“ 他从操作台前站起来,走到白板前把新增的供货商节点和航空动力研究所、仓储区之间的连接线重新描了一遍。完整链条现在呈现为一条从研究所分流接口开始,经过供货商到达g区和h区设备位置,然后通过物流园中继器向外延伸的路径。每个节点在链条上的位置都是固定的,各自承担着特定的功能:源头,制造,安装,运营,传输。五个功能被分别放在物理上独立的几家公司内部,彼此之间没有交叉持股或公开的人员共联。 “功能分区让追踪更难。“陆维桢说,“表面上它们互不相关,但通过加工单和采购记录可以判断它们在实际操作中形成了同一条供应链。廖维站在研究所内部,通过正常的工作渠道从供货商那里获取了分流接口和固定板的配件。“ 他在白板上的研究所和供货商之间画了一个小圆点,圆点内部写了一个“v“字,代表这是廖维在链条中的接入位置。操作员的其他行为,包括安装、维护、介质更换,构成了完整流程中的其他部分。链条上的每个功能都在各自的范围内独立完成,但数据通过它们不间断地流动,从研究所测试台流向仓储区的设备位置,然后再经过物流体系向外扩散。 陆维桢放下马克笔,退后一步看着白板上刚刚完善过的全图。完整链条上的每一个节点现在已经标注了名称、位置和功能,它们之间的连线以不同颜色排列,在图上形成了一系列层次分明的结构。他的视线从一个节点移到下一个节点,沿着连线的方向逐段检查了一遍,使完整图景的呈现更完整。他把马克笔放回笔槽,笔身在笔槽底部发出一声短促的接触响,然后停住了。 第56章 合钳 白板上的完整链条完成后,陆维桢没有继续添加新标记。他在白板前面站了大约两分钟,把图上所有节点的位置和连接线重新过了一遍,确认没有遗漏任何一条路径或一个节点。链条从左上角延伸到右下角,沿途经过八个主要位置,每个位置都标注了已知的操作周期和功能描述。 他转过身走回操作台前坐下,拉开左侧的抽屉取出了一部未开封的加密平板电脑。他把平板电脑放在桌面上,撕开封条按下电源键,屏幕亮起后进入了系统初始化界面。在初始化过程中,他输入了一组预先设定好的网络参数,连接到了龙科院的内部数据通道。系统完成配置后,桌面图标显示了一组常用的通讯和绘图工具,以及一个用于连接仓储区记录器数据接口的专用程序。 他在专用程序中输入了g区记录器的访问地址,调出了最近二十四小时的数据波形。波形图上没有出现新的异常脉冲或振动信号,操作员在上一次操作之后还没有返回g区做力矩修正。上一次双脉冲信号的时间点在约三天前,操作员通常会在操作后约四十八小时回到机电小室修正螺栓力矩。如果按这个规律推算,他应该已经在昨天夜间来过g区,但记录器没有捕捉到相应的信号。 “操作员没有按惯例回来做力矩修正。“陆维桢把波形图和时间轴对齐后说,“他跳过了修正周期。可能因为h区还有一条独立通道,他通过排水沟进入h区完成了力矩修正,绕过了g区记录器。h区侧门没有安装记录器,他的操作不会留下信号记录。“ 顾晏从工作站前站起身,走到储物柜前取出一只小型信号接收器和一组备用电池。她把接收器放在操作台边,连接好电源后做了一次自检,指示灯由红转绿,显示设备运行正常。“h区侧门如果需要布设额外的记录器,今天下午可以完成安装。h区排水沟的格栅位置比g区更隐蔽,装一个低频信号记录器在竖井内壁上,可以覆盖h区机电小室的操作声音和振动信号。“ 陆维桢没有立即接话。他的视线落在g区记录器的波形图末端,在时间轴的最后一段,波形曲线保持平稳,没有出现任何高于背景噪声的波动。他在心里排了一下操作员跳过力矩修正的可能原因——如果操作员知道g区被安装了外部监测设备,或者他察觉到g区设备的状态有所变化,他就不会再回到g区做常规维护。而如果他不回g区,他就只能通过h区的独立通道继续运行设备。 “操作员可能已经察觉到g区设备的变化了。“陆维桢说,“他跳过了力矩修正,说明他在某方面认为回到g区机电小室不安全,或者他已经通过其他手段确认了g区设备的运行状态不需要修正。“ 顾晏把信号接收器的天线展开到可用长度,用测试探针扫了一遍桌面周围的射频背景后关闭了接收器电源。“如果操作员认为g区不安全,他可能会在未来几次操作中将全部活动转移到h区。排水沟路径和竖井通道支持他在h区独立完成设备操作和维护,不需要再接触g区的任何地面设施。“ 陆维桢在操作台前坐了一会儿。他在工作台上把操作员跳过力矩修正和h区独立通道这两个事实串联起来,在脑中对操作员的后续行动路径做了几种可能方向的模拟。其中一条路径显示操作员可能会在下次操作窗口前对h区设备做一次额外检查,确保h区设备能在g区被放弃的情况下支撑数据流。 “下次操作窗口在两天后。“陆维桢说,“操作员如果放弃g区,他在两天后的窗口内会只使用h区排水沟路径和竖井通道进入h区机电小室完成介质更换。如果我们在他到达h区机电小室前确认h区设备的内部状态,就可以确认他对g区的设备状态是否采取了其他处理措施。“ 他在操作台的加密平板电脑上新建了一个记录,输入了“h区排水沟路径预布设“的标题。标题下的正文分行列出了需要的设备和预计时间:信号接收器,固定在竖井内壁;声音记录器,用磁吸底座固定在侧门内侧门框上;额外的一枚摄像头,需要在排水沟格栅侧面找一处不会被水淹没的高位固定位置安装。 陆维桢把摄像头的那一行单列为一项计划,在末尾标注了“防水处理“四个字。然后他合上了平板电脑的屏幕保护壳,把设备放在操作台侧面的充电底座上,起身从墙边拿起了工具箱。 “下午布设,“他说,“争取在明天凌晨之前完成。“ 第57章 高台 下午的排水沟布设比预期顺利。陆维桢把信号接收器固定在竖井内壁预埋管线的一处金属支架上,接收器的天线方向调整到朝向机电小室的位置。顾晏在侧门内侧门框上安装了声音记录器,用两根磁吸底座固定,使记录器与门框之间没有直接接触。摄像头被安装在排水沟格栅侧面的高位处,用防水胶带和扎带固定在一段垂直的排水管外侧,镜头朝向竖井盖板的方向。 布设完成后,陆维桢在排水沟出口处做了最后一次检查。格栅边缘的螺栓头保持原状,侧门门框与墙壁的接缝贴合良好,竖井盖板表面的尘土被重新均匀覆盖过。他从工具袋里取出清洁布,把竖井内壁的脚踏和固定板表面残留的指纹擦拭干净,然后把清洁布卷起来收进工具袋的密封袋中。 回到车辆内部后,顾晏在平板电脑上打开了新安装的三个设备的信号状态界面。接收器和声音记录器的自检指示灯均为绿色,摄像头的图像预览显示为竖井盖板关闭后的暗色画面,画面中央有一小片从格栅缝隙透入的微光,将井壁的轮廓勾勒成一个圆形。 “三个设备都在线。“顾晏把平板电脑放在中控台上,“竖井内的接收器能覆盖h区机电小室的低频操作声,侧门上的声音记录器可以捕捉人员接近和开关门的声音,摄像头能拍到盖板被开启时的高度和角度。“ 陆维桢坐在副驾驶座上,把手套从手指上逐一脱下。他看了一眼h区排水沟方向,格栅表面覆盖着枯叶和尘土,从外部看不出任何被开启过的痕迹。他在车辆从仓储区北侧离开之前,确认了排水沟格栅的位置在行道树树冠的阴影范围内,午后的阳光正被枝叶遮挡,格栅处在暗处。 车辆回到龙科院地下三层时,记录器的实时数据流已经开始往存储系统回传。陆维桢在操作台前打开了摄像头预览,画面从暗色切换成了傍晚的自然光衰减模式,竖井盖板的轮廓在画面中逐渐模糊,边缘的缝隙被光线填充,仍然保持着完整的闭合状态。声音记录器的波形图上偶尔出现一些微弱的峰值,来自远处的车辆和通风系统的噪音,被设备内部算法过滤后保持了稳定的输出状态。 傍晚七点左右,周承岳从楼上下到地下三层,把一份从航空动力研究所传回的最新资料放在了操作台边缘。资料是一页内部工时记录表,在表格的底部有一行手工填写的加班申请记录——申请人的姓名与廖维一致,申请的加班时段是当天夜间九点到十二点,但申请表格上没有带班负责人签字。 “一份没有签字的加班单。“陆维桢拿起工时记录表看了一遍,“如果加班申请没有被批准,他在系统内就没有合法的晚间工作记录。但他把这份表格填好留在了研究所,表明他当晚有进入研究所的计划——即使加班申请没有批准,他可能仍然会去,只是不作为正式加班记录。如果他在当晚有数据传输计划,他可以通过测试台终端远程操作来完成数据传输,而不需要本人出现在研究所。“ 周承岳没有多说什么,他把加班单的内容扫描了一份后,原件收回夹克内袋中。他转身走到设备架旁边查看了一下三个新装设备的信号界面,然后保持了沉默状态。他的目光在信号状态界面上停了几秒钟。 陆维桢打开工作站上的航空动力研究所内部布局图,把测试台终端所在的楼层和弱电间的相对位置重新标注了一遍。廖维的加班申请如果未被批准,但他仍然计划在当夜到达研究所,那他就需要一种不通过正常门禁系统进入的方法。弱电间的检修通道和吊顶夹层可能是他实现这条路径的可行选择,终端设备本身可以网络访问,不需要终端上操作,但物理上要连接到系统,就必须进入机房或所在空间去打开访问权限。 “晚上去一次研究所。“陆维桢说,声音平稳,“确认终端在加班申请时段内是否被网络访问过。如果它有外部访问记录,廖维就不需要出现在现场。如果它没有外部访问记录,那他本人就可能在现场操作。“ 他走到白板前面,在研究所测试台节点和弱电间之间画了一条弧线。弧线的末端没有连接任何其他节点,单独停在白板右侧的空白区域。他看了一眼那条弧线,把笔放下了,没有继续画下去。弧线在白板的表面占住了位置,末端指向的空白区域在经过照明灯照射后留下了一小片颜色略深的区域。 第58章 夜登 晚上九点二十分,陆维桢从研究所东侧围墙和附属楼之间的夹缝中侧身进入弱电间外侧的设备平台。平台上排列着三台空调外机,机组的运行声在狭窄空间里形成持续的低频掩蔽,减弱了他移动时衣物与墙面的摩擦声。他蹲在空调外机之间的间隙中,用长柄工具打开弱电间的外侧检修窗。检修窗是向内开的,打开后露出了弱电间内部的部分管线布局和应急照明灯的绿色微光。 他侧身从检修窗口进入弱电间,落地位置在一组配线架旁边。落地时没有产生明显的声响。他站在原地静默了几秒钟,使自己的呼吸和周边设备的运行噪音同步,然后沿着机柜之间的空隙向测试台终端所在的方向移动。终端所在的位置在走廊另一端,中间隔着两道消防门和一条设备通道。他用一种近似的走动频率在这些通道之间穿梭,在最后一道消防门前蹲了下来,通过门缝观察了终端房间内部的光线分布——房间内只有显示器待机状态下的微弱背光,日光灯关闭,没有人员活动。 他推开消防门,进入房间后打开终端屏幕。屏幕亮起后显示的锁屏界面和正常的终端登录界面一致,但右上角有一条未读系统通知的标记。他点击了通知图标,弹出了系统在最近一段时间的登录记录日志。日志顶部显示当天白天有六次成功登录,全部来自同一位用户名的账号。当天夜间没有新的登录记录,最后一条日志的登出时间停留在下午五点四十八分。 他点击了登录记录的详细视图,查看每一条记录的接入ip和终端标识。白天六次登录的ip地址一致,全部指向研究所内部网络的固定地址段。夜间没有新的接入记录,系统日志也显示登录成功之后的时段内没有异常的数据传输活动。这条信息可能说明终端没有被动过,但程序本身的数据流可能是自动运行的,不需要通过登录终端界面来完成。 他在终端系统的任务管理器中检查了后台进程列表,发现了一个常规操作界面上不应出现的程序——进程名称被随机打乱成了六个数字字母组合,没有关联任何软件供应商的签名信息。进程占用的内存量很小,没有持续的cpu使用峰值,处于低功耗待机状态。他记录了进程的完整路径和参数列表,然后关闭了任务管理器窗口。 在系统日志中,他找到了该进程对应的创建时间,位于一个月前。创建时间点与廖维在航空动力研究所的某次设备维护记录的起始时间点接近。他把这个时间点的数据保存在本地的临时存储区里,然后退出登录界面,把终端屏幕恢复到了待机状态。退出时终端屏幕的亮度自动降低,在光线变化过程中,屏幕上短暂的亮度跃升现象可能会引起室外的注意,但此刻室外没有任何人员活动的迹象。 他在退出房间之前做了一次门把手检查,确认门把手的角度和位置与进入时没有差异。在关上消防门之后,他通过原路返回了弱电间外侧的设备平台。空调外机的运行声继续在平台区域持续响着,在退出平台时发出持续的低频轰鸣,经过一段时间的排放后恢复了原有位置。他在回到设备平台的外沿时,顺手用一块干布擦拭了自己在检修窗口边框和空调外机表面留下的指印,然后把干布收进了工具袋的外袋中。 车辆停在研究所园区东侧约两百米处的一处公共停车场内,顾晏在副驾驶座上坐着,平板电脑上的三个设备信号界面显示为正常状态。陆维桢上车后把终端后台进程的路径和参数列表从本地临时存储区复制到了工作站的共享文件夹中,然后在副驾驶座上坐下来,用笔记本电脑连接到远程服务器,把进程路径在系统内做了一次初步搜索。搜索结果没有直接匹配的已知程序名称,但进程参数列表中的某一项指向了一个字符串形式的密钥标记,长度和格式与某型数据加密协议的密钥结构一致。 他看了那条密钥标记几秒钟,然后关闭了窗口。引擎启动后,车辆沿园区东侧的道路驶离。在路过主入口时,他看到门禁岗亭的值班人员在灯光下翻着一本工作日志。园区内部的实验楼群在夜色中亮着少量照明灯光,廖维的加班单,即使未被批准,也能让他以技术人员的身份进入园区。而当他进入园区之后,在弱电间和测试台终端所在的空间内进行任何操作时,门禁系统不会再记录第二次、第三次的通知标记,因为在系统看来,同一张卡在同一次进入园区后的后续移动都属于身份合法的覆盖范围。 第59章 解钥 车辆在返回龙科院的途中经过了蓉城东部的快速路立交桥。陆维桢在副驾驶座重新打开了笔记本,把终端后台进程的参数列表导入解密分析工具,以密钥标记为起点做了一次字符结构匹配。密钥标记由大小写字母和数字混合组成,长度十六位,在输入的文本中呈现为一段固定长度的字符串。解码工具在运行过程中将密钥标记与系统内已知的加密协议模板做了交叉比对,比对结果显示与该密钥匹配的协议模板类型为某型非对称加密协议。 “终端后台进程的数据传输使用了非对称加密。“陆维桢看着屏幕上的比对结果说,“密钥结构匹配的是供应商提供的一种现场加密协议。进程本身是从外部写入终端系统的,写入方式可能通过物理介质或者远程管理端口,而不是通过常规软件推送渠道。“ 顾晏在后排微微前倾,看了一眼屏幕上的协议类型标注。“非对称加密需要配对使用的公钥和私钥。终端内的进程包含了公钥,私钥则保存在数据的接收端。如果接收端是物流园中继器或者仓储区的设备,那公钥和私钥之间的配对关系就能确认测试台终端和仓储区设备之间确实存在加密通信。“ 车辆驶入龙科院地下通道时,信号切换导致加密分析工具进行了暂时的重新连接。陆维桢在重新连接的间隙里把密钥标记与之前从物流园中继器存储卡中提取的配置文件的加密头做了手动对比,发现两者在密钥格式和长度上完全一致。他打开存储卡目录树,将提取出的密钥模板与终端后台进程的密钥标记并行排列,两组字符在文本长度和文本形态上均一致。 “测试台终端和物流园中继器使用同一套密钥体系。“陆维桢关闭了比对窗口,“终端产生的数据在发出前被公钥加密,物流园中继器收到后用配对私钥解密后存储。如果仓储区设备也使用这套密钥体系,那整个链条从研究所测试台到仓储区存储设备之间的所有加密通信都受同一套密钥系统的保护。“ 车辆停稳后,陆维桢合上笔记本下车。在进入员工通道之前,他停下来把刚才在车上看到的密钥标记与物流园中继器存储卡配置文件加密头的对比结果在工作站的加密分析软件里做了一次完整的自动比对。自动比对的结果与他在车上的对比一致,两组密钥结构完全吻合。他在结果页面的底部留了一段空白行,然后关闭了页面的窗口。 “研究所测试台终端、物流园中继器、以及仓储区机电小室内的设备如果共用同一套密钥体系,“陆维桢说,“那操作员在h区和g区执行的介质更换操作和数据维护都属于这套加密网络内部的常规工作流程。同一套密钥覆盖了数据从产生到存储的所有环节。“ 他重新在笔记本上打开了终端后台进程的参数列表,在列表的末尾有一行注释字段,注释内容为一段较短的字符序列,格式和密钥标记本身不同,更像是对密钥对应关系的说明。他复制了那段注释字符,输入到加密分析工具的查找栏中执行检索,在物流园中继器存储卡的另一份配置文件中找到了完全相同的一段字符序列。两份文件之间的这个共同点进一步确定了测试台终端进程与物流园中继器配置文件之间的关系属于同一套系统的组成部分。 “它们之间的关联比之前判断的更直接。“陆维桢说,“终端进程和存储卡配置文件共享同一段注释字符,说明它们是在同一次系统部署时生成的,或者是在统一的时间段内被配置成互相匹配的状态。部署时间可能在廖维加入航空动力研究所之前,或者在分流接口安装过程中同步完成。“ 顾晏站在操作台侧面,听完后沉默了一下。她在工作站的文件夹中找到了物流园中继器配置文件的原始创建时间戳,与终端后台进程的系统日志创建时间进行了交叉比对。两端的时间戳在同一个自然日内,前后相差约三小时,创建者字段输入的名称相同,属于同一个账户的身份标记。 “两端在同一天配置完成。“顾晏说,“时间相差三小时,配置操作由同一账户完成。账户权限级别高于一般用户,可能是系统管理员或者有特殊权限的技术人员。“ 陆维桢在操作台前坐下。他打开白板的电子版备份,把终端进程和物流园中继器配置文件之间的关联添加到了白板的链条图中,在研究所节点和物流园节点之间画了一条新的虚线,标注了“密钥/注释共享“字样。虚线的走向与主数据流路径基本平行,但连接的是两个节点之间由密钥体系形成的逻辑通道,它的功能是在不产生物理通信的情况下使两个位置通过加密协议保持同步可通,在数据路径完全中断时仍能保证系统的逻辑连通性。 “密钥共享意味着即使物理链路被切断,只要任何一端还有密钥片段留存,系统就可以在已知密钥的框架内建立新的配置或数据传输方式。“ 陆维桢在白板上的虚线末端画了一个箭头,指向h区设备的图标。箭头落在h区设备的图标上方,距离图标边缘约一指宽。他放下笔后,那根虚线在白板表面保持了它的颜色和位置,从研究所节点的位置平行延伸到h区设备图标的上方,在它与图标之间保留了一小段间隔。 第60章 窗临 箭头停留在h区设备图标上方约一指宽的位置,没有继续移动。陆维桢把笔帽扣好,放在笔槽旁边,退后一步重新审视白板上的整幅图。密钥共享那条虚线的走向和主数据流路径平行,从研究所节点延伸到h区设备上方,在线条末端和图标之间保留了那段窄小的间隔。 “操作员下次窗口是在明天还是后天?“顾晏的声音从操作台方向传来,语气平静。 “后天。“陆维桢说,“如果主周期没有偏移,他在后天凌晨会再次进入h区机电小室完成介质更换。但今天的记录和密钥关联已经表明h区设备可能不只是备用通道——它自身就具备独立的加密通信能力,可以通过共享密钥直接与研究所终端建立数据连接。即使g区设备被完全放弃,h区设备也能单独运行整套传输流程。“ 他在操作台前坐下来,打开了仓储区记录器的实时信号界面。g区记录器的波形图保持平稳,没有异常。h区竖井内的接收器和侧门声音记录器都处于待机状态,摄像头的预览画面显示为盖板关闭后的暗色微光,与昨天一致。 “g区的记录器已经接近一个星期没有捕捉到操作员的活动信号了。“陆维桢滑动时间轴从头到尾看了一遍,“他上次进入g区机电小室的时间在八天前,之后没有返回。跳过力矩修正、不返回g区检查设备状态,他在逐步退出g区的操作范围,把全部活动集中在h区。“ 顾晏从工作站前站起来,走到设备架旁边检查了一遍h区三个新装设备的电池余量。信号接收器和声音记录器的电池状态显示为电量充足,摄像头的画面稳定,电池余量约七成。她合上设备架的柜门,回头对陆维桢说了一句:“h区设备的电池至少还能支撑到后天凌晨操作窗口结束。覆盖一次完整的操作周期没有技术问题。“ 陆维桢在工作站上调出了h区侧门附近的环境监控画面——一段从远处拍摄的连续录像,覆盖了昨晚十一点到今天凌晨五点的时间段。画面上的停车场和台阶区域一直处于低照明状态,没有人员出现或靠近排水沟格栅。凌晨三点左右出现过一只猫从台阶上经过,没有其他动态。 “操作员可能在窗口到来之前额外做一次环境评估。“陆维桢说,“确认h区排水沟和竖井的状态正常,然后等窗口正式开启时再进行介质更换。他之前跳过g区力矩修正,可能是感觉到g区外部环境有变化。如果他在窗口前对h区做了环境评估而没有发现问题,他就会按计划在后天凌晨完成操作。“ 他把那段环境监控录像保存到本地,文件命名包含日期和时间范围,方便后期对比查询。在文件保存的同时,他在加密平板电脑上打开了一个新的记录页面,把后天的操作窗口时间标注为“预期凌晨两点至四点之间,窗口宽度约两小时“,然后在下方添加了一行备注:“操作员可能在窗口前三十六小时内对h区做一次环境评估,时间窗口无法精确预测。“ 顾晏走到了白板旁边,在虚线末端和h区设备图标之间那段空白的窄小间隔上添加了一个浅灰色的短线标记。她放下笔时没有多看自己画的那个标记,转过身回到了工作站前面,重新打开h区竖井内声音记录器的实时波形界面,屏幕上波形图正在循环扫描当前环境的声学背景,确认后天的操作窗口到来时能够捕捉到任何异常或规律性信号。 陆维桢在操作台前坐了一会儿,看了一眼工作站的时钟。距离后天凌晨的操作窗口还有大约三十多个小时。h区设备的新装信号接收器和声音记录器已经就位,摄像头覆盖了盖板和竖井上方的视角。g区记录器继续运行,但它在操作员的退出周期内不太可能捕捉到新的活动信号。他在备忘录里把g区记录器的状态标为“待机监控“,并在待机监控的备注栏里填写了“操作员未返回“的记录。 他起身走向白板,在虚线末端的灰色短线标记旁边又加了一行小字:“h区设备——操作员下次窗口预期时间约为后天凌晨,届时将与现有传感器共同组成完整的监听网络,覆盖竖井到机电小室之间的全部路径。“他放下笔时,指尖短暂地停留在灰色短线标记的表面,然后移开了。 第61章 测深 记录器在第二天凌晨两点十九分捕捉到了h区排水沟格栅方向的一组短促金属接触声。声音出现在摄像头的画面边缘,盖板下方的格栅固定螺栓被触动后发出了由轻到重再回归的短促声音。声音波形持续时间约零点八秒,峰值清晰,没有其他信号的遮蔽干扰。波形峰值出现之后,竖井盖板在画面中保持关闭状态,没有升起或偏移。 陆维桢在操作台前看着波形图,把零点八秒的波形用标注工具框选出来,放大到可见音频范围。波形在峰值过后大约三秒又出现了一次同等幅值的接触声,然后恢复到安静的背景噪音。两次接触声的间隔和g区记录器捕捉到的锁芯测试声类似,但时间更短,强度更低。 “他在确认排水沟格栅的锁紧状态。“陆维桢在记录文件里做了标注,“不是打开,只是测试格栅是否仍然固定在原位、是否被人动过。“ 顾晏已经站在操作台侧面,在声音记录器的波形文件上叠加了摄像头画面中的同时间段影像。影像显示格栅在整个时间段内没有出现可测量的位移,盖板保持平整,与地面之间的接缝在画面中保持着原有的宽度和阴影。她在影像的时间轴上做了一个标记,对应两次接触声的出现时刻,然后将标记与波形图对齐,确认了两种信号发生在同一时间窗口内。 “他在做环境评估。“顾晏说,“确认g区不可用之后,他在正式操作窗口到来之前对h区做了同样的安全检查。时间比预期提前了大约二十四小时。“ 陆维桢把摄像头的录像回放到了格栅接触声出现之前约十分钟的画面。画面中停车场台阶区域的照明没有变化,排水沟方向的植被和阴影分布维持着常态,没有人员靠近的迹象。直到接触声出现前约两秒,格栅正上方的排水沟边缘处出现了一小段阴影加深区域——像是有人在格栅上方弯腰形成的轮廓,维持了约六秒后消失。轮廓的边缘与周围环境的阴影边界结合紧密,在动态画面中几乎无法与普通的夜间亮度变化区分。 “他做了环境评估,确认了格栅状态正常,然后离开了。“陆维桢在时间轴上标出了环境评估的起止时间,记录持续长度约六秒,“操作窗口前三十六小时的环境评估步骤完成了。现在他会在后天凌晨按计划进入h区机电小室。“ 周承岳从大厅入口方向走进来,手里拿着加密手机。他走到操作台旁边,把手机屏幕朝向陆维桢,上面是一段来自航空动力研究所门禁系统的记录摘要。摘要显示廖维的门禁卡在今天凌晨一点五十八分刷开了研究所侧门,进入园区后在弱电间方向的走廊停留了约七分钟,然后在两点零九分离开园区。 “他来研究所了。“陆维桢说,“时间点和他完成环境评估的时间接近。他从研究所侧门进入后去了弱电间,可能是确认终端后台进程的状态,也可能是读取终端存储区内的数据副本。他在弱电间停留了七分钟,然后离开。“ 他把廖维的进入时间和h区环境评估的接触声出现时间做了对照,两者相差约二十一分钟。从航空动力研究所侧门到h区排水沟格栅的位置,驾车需要约二十分钟左右。时间差说明廖维在离开研究所后直接前往了仓储区h区完成了环境评估,然后返回。 “他在同一次外出中覆盖了两个任务。“陆维桢说,“先到研究所确认终端状态,然后到仓储区h区检查设备环境。他走的是同一条路线,只是把两个位置的维护工作合并到了同一次外出的行程中。“ 周承岳收起了手机,站在操作台旁边安静地听完了陆维桢的分析。他没有提问题,也没有补充信息,只是在听完后转身走向了设备架,站在信号接收器的接收天线前,检查了接收器的接收指示灯状态,然后向后退了半步。片刻后他又走回操作台附近,目光在白板方向停留了一瞬。 陆维桢重新打开了终端后台进程的日志记录。在廖维进入研究所的时段内,日志显示终端曾有一次短暂的网络活动——一个数据包在凌晨两点零三分从终端发出,目的地ip地址指向仓储区h区设备的逻辑地址。数据包的大小只有几字节,更像是一次连接测试或状态确认,而不是数据传输。 “终端向h区设备发送了一次连接测试。“陆维桢说,“他在弱电间使用终端向h区设备发送了确认信号,然后离开。h区设备收到了连接测试并正常回应,所以他确认h区设备仍然在线。这是他在正式操作窗口前做的一次预检。接下来他在后天凌晨会实际到达h区机电小室,完成介质更换操作。“ 他把这次连接测试的日志条目单独截图保存,与之前记录的密钥共享关联信息放在同一文件夹中,并按时间顺序排列这些截图,使它们与整个链条的历史时间线对齐。他在文件夹的备注栏中写了一句“操作窗口前预检完成“,然后关闭了文件夹窗口。 操作台侧面的声音记录器实时波形保持在基线状态。h区排水沟格栅位置没有再出现新的接触声或人员活动信号,环境评估之后,所有设备都进入了安静等待的常规状态。l型回形通道末端的设备图标在显示屏上保持着稳定的显示状态,与周围其他图标之间的间距没有变化。 第62章 静候 上午十点,距离预测的操作窗口还有约十六个小时。陆维桢在操作台前把仓储区h区的全部信号数据重新加载了一次,从声音记录器的波形图到摄像头的连续画面,逐段复查了从记录器安装以来覆盖的所有时间片段。摄像头画面在夜晚时段没有捕捉到格栅开启或盖板移动,声音记录器只存储了格栅接触声和环境评估阶段的信号,接收器的频段覆盖范围内没有出现异常传输。 “下一次操作窗口如果按计划进行,应该在后天凌晨两点到四点之间。“陆维桢关闭了复查界面,转向顾晏的方向说,“根据他之前的操作规律,他在窗口到来之前不会再做额外检查。目前的环境评估已经完成,终端连接测试已经完成,他会在窗口期间直接进入h区机电小室。“ 顾晏在工作站前没有抬头。她正在做一组信号接收器的灵敏度校准,把接收器的频率响应曲线调整到与h区机电小室的声学特征匹配,以覆盖机电小室内可能产生的全部操作声音频率。“接收器的校准参数调整完成后,如果操作员在机电小室内使用工具接触面板,声音会被完整捕获,不会因为频率衰减被过滤掉。“ 陆维桢在操作台的侧边抽屉里取出了之前记录过h区排水沟路径和竖井结构的笔记本,翻到记录h区设备布局的那一页,重新确认了竖井到机电小室之间的路径距离和关键转角位置。他在心里把路径走了一遍:排水沟格栅→竖井盖板→攀爬金属脚踏到侧门高度→侧门进入走廊→机电小室门→检修面板。每一段的尺寸和可达性都在他的记忆中,对应的时间窗口宽度也在合理预期范围内。 他重新翻回笔记本的前面几页,阅读了关于g区记录器安装和力矩修正的记录条目。然后他合上笔记本,把它放回了抽屉的原位。 午后气温升高,仓储区h区排水沟格栅附近的环境温度变化可能会对摄像头的焦距产生轻微影响,导致成像平面在温度变化过程中发生微小的偏移。顾晏提前在摄像头的参数设置中添加了温度补偿模式,使画面在温度变化过程中的焦距偏移量保持在可接受的范围内,不影响覆盖范围。她做好调整后关闭了设置界面,屏幕上的摄像头预览画面恢复到了竖井盖板关闭后的暗色微光状态,画面清晰,盖板的轮廓和格栅的阴影之间保持着稳定的明暗对比度。 傍晚时分,周承岳从楼上下来,在操作台旁边停留了一段时间。他看了一眼三个信号接收器的工作状态指示灯,然后转向陆维桢的方向说了一句话:“廖维今天白天正常上班,下午五点打卡下班后离开了研究所。他的门禁卡在离开园区之后没有再次刷开任何一个入口。他今天晚上可能不会外出了。“ 陆维桢在操作台前坐了一会儿,没有立刻回应。如果没有外出安排,他会留在自己的住处,等到凌晨时再出门到仓储区完成操作。他可能在午夜前休息几个小时,然后在预定时间开车前往h区排水沟位置。 晚上的等待过程中,陆维桢在操作台前调出了三个信号接收器的实时波形显示,把它们并排放在屏幕上,形成一组实时监测面板。每隔一段时间他会扫一遍屏幕上的波形曲线上是否有新的峰值变化,检查信号接收器的状态指示和波形图之间的对应关系。波形图在整个前半夜保持平稳,没有出现明显的波动或异常峰值,在背景噪声的标准范围内持续运行,像一条平坦的地平线一样延伸着。 第63章 入井 凌晨一点五十七分,摄像头的画面边缘出现了一次极低亮度的变化——格栅东南角的上方,有一道比背景略深的光影短暂地覆盖了格栅表面,然后恢复了常态。光线的变化没有产生明显的阴影,与周边的植被和道路照明相比不易察觉。陆维桢在波形图上同步检查声音记录器的信号,在画面变化出现的前后约十秒内,声音记录器没有捕捉到脚步声或开关锁的声音。 “格栅上方有光线变化,声音记录器上没有对应的接触声。“他压低声音对顾晏说,“操作员已经到达了,但他可能使用了某种减音措施,在打开格栅前先做了准备。“ 画面在接下来的半分钟内没有进一步变化。然后格栅表面的一片区域出现了短暂的偏移——零点几秒内,格栅的一条边框从原来的位置偏离了约两厘米,然后停住了。偏移量极小,在正常播放速度下几乎无法察觉,但摄像头以较高的帧率捕捉到了这一刻。他操作回放把画面放大,逐帧查看格栅边框的偏移过程:格栅被从下方抬起了一段距离,一个戴着深色手套的手掌轮廓出现在画面底部边缘,接触格栅边框的侧面,施加了持续的力量,然后格栅被完全打开,抬起的角度约为十五度。 格栅打开后,画面显示出一段竖井内壁的侧影,与井口之间的光线对比形成一个浅色的弧度,在竖井内壁的灰色表面上短暂延伸,然后随着人员进入而逐渐被遮挡。竖井盖板在此后保持打开状态,没有人员出现在盖板的边缘附近,盖板开启的位置被以一定的偏移量固定在夹角处。摄像头持续运行,画面在盖板打开后的静默期间继续记录着竖井上方的光线和格栅边缘的轮廓变化。 声音记录器在这段期间捕捉到了微弱的金属接触声——盖板开启时产生的结构性声音,经过竖井壁面的传导后,被记录器以比空气传播声音更早的相位接收到。接触声之后,记录器上出现了几段脚步声,脚步声的幅度均匀、节奏稳定,沿着竖井内壁向下移动,到达竖井底部后在原地停留了约四秒,然后脚步声继续向内移动,方向指向机电小室的位置。 陆维桢把四秒停留的片段单独保存,分析了波形特征。这段波形与普通脚步不同,有一个短促的、频率较高的尾音,像是鞋底在接触到某处金属表面时产生的轻敲声,然后脚步声转换了方向,向小室内部前进。 “他到达了检修面板的位置。“陆维桢说,“在竖井底部站定检查了侧门的状态,然后进入了机电小室。四秒的停留时间说明他确认了侧门状态没有异常,没有发现门框上的声音记录器。“ 顾晏已经把摄像头的画面切换到第二视角——从侧门框上方取景的角度,视野覆盖了机电小室门和前走廊的部分区域。画面中的走廊处于无照明状态,但小室门的下缘有一条细微的亮线从门缝底部透出,像是小室内部的应急指示灯在门缝处的漏光。 “机电小室门从内部透出光线。“顾晏说,“他在到达之前小室内部就有光照。可能是常亮的应急灯,或者他在进入竖井之前通过某种方式启动了室内照明,使他在到达机电小室时门内已经是明亮状态,无须在现场寻找开关。“ 声音记录器上的波形在接下来的十几秒内保持安静。然后出现了一段约五秒的持续轻微振动,像是检修面板螺栓被拧动的声音。振动在波形上呈现出周期性的加载和卸载循环,与金属螺栓在螺纹中旋转时的物理特征一致。旋钮转动的声音持续时间约五秒,中途有一次短暂的停顿,停顿后另一组旋钮声出现,比前一组略短,然后停了下来。 “他在更换介质。“陆维桢说,“打开面板需要约五秒,更换介质的时间在停顿窗口内,然后关闭面板需要约三秒。面板操作完成后,脚步声重新出现,方向远离机电小室,回到竖井方向。“ 脚步声在竖井下方恢复了清晰的节奏,沿着金属脚踏向上攀爬,在到达侧门高度时略微停顿,然后继续向上,直到竖井盖板位置。盖板被放下的声音在摄像头的画面上显示为一次快速的暗色位移,盖板与井口之间的缝隙逐渐关闭,格栅的轮廓在画面中重新回到了关闭状态。格栅的边框与地面重新接触后,边缘的位置和周围环境的光影再次结合成连续的形状。 操作员离开了。从格栅打开到关闭,整个时间窗口共持续了约六分四十秒。陆维桢在记录文件中保存了完整的时间线:格栅打开,竖井进入,机电小室面板操作,竖井返回,格栅关闭。六个时间点被精确标注在波形和视频帧上,形成了一个完整的操作流程记录。他的手指从保存按钮上移开,然后收回了手。 “时间窗口六分四十秒。“他说,“和他在g区的操作时长接近,但在h区增加了竖井攀爬和排水沟穿越的额外时间。净操作时间比g区少了约十五秒,可能是h区设备的介质更换流程比g区更简短。“他关闭了文件窗口,然后重新打开了波形图的实时显示界面,确认格栅边缘和竖井内部目前没有监测到任何新的移动或声音信号。 操作窗口已经关闭。他在操作台前又坐了约三十分钟,等待波形图上可能出现的新信号——但波形图保持安静,没有出现二次信号。操作员完成了操作后已经沿着排水系统原路撤出了仓储区,离开了h区,没有返回g区做力矩修正,没有做额外的环境检查。 陆维桢从操作台前站起来,在走廊的灯光下走到白板旁边。他在h区设备的记录上增加了一条新记录,将凌晨的操作窗口起止时间、净操作时长和操作员从排水沟进出h区的完整路径纳入白板的记录内,补全了h区设备操作流程的最后一个细节,使其与g区的操作记录在时间线上形成对应,不重叠,不冲突,各自占据独立的时段和位置。 第64章 析介 操作员的完整流程被记录之后,陆维桢没有立刻离开白板。他站在新添加的记录前面,把h区操作的六分四十秒与g区记录的六分二十秒做了横向对比。h区多出的二十秒集中在竖井攀爬和排水沟段,机电小室内部的操作时间反而比g区短了约十五秒。如果操作流程本身更简洁,那h区设备内部的结构可能与g区不同——可能面板的开启方式更直接,或者介质固定方式不需要额外的调节步骤。 他回到操作台前,把声音记录器捕获的检修面板螺栓转动声波形重新打开,测量了两次旋转动作之间的间隔时间。g区记录中螺栓旋转的时长约为五秒,h区同样位置的时长为四秒出头,旋钮过程中的停顿也更短。他单独截取了h区波形中螺栓旋转的部分,与g区的对应波形做了逐帧比对,发现h区的螺栓在旋转过程中没有出现g区记录中常见的阶段性停顿。 “h区检修面板使用了不同型号的螺栓。“陆维桢说,“螺栓的螺纹间距更大,或者面板锁定机构采用了快速锁紧设计。操作员在h区只需要更少的旋转圈数就能完成面板的开启和关闭。两种设备使用不同的紧固标准,说明它们可能来自不同的加工批次,或者h区的设备比g区晚安装。“ 顾晏走到他旁边看了一遍波形对比的放大图。她在两段波形的起始点和结束点上做了标记,然后侧头说了一句:“h区的螺栓旋钮过程中没有阶段性停顿,说明面板在开启和关闭时的阻力是均匀的。这种锁紧机构可能是弹簧助力的快速锁扣,不是普通的螺纹紧固件。如果是快速锁扣,螺栓的功能只是辅助限位,主要固定力由弹簧结构提供。“ 陆维桢重新打开了h区机电小室的内部平面图,在检修面板的位置找到了一个以前没注意到的标注——面板边缘画着一条细线,线与面板边界之间约有半厘米的间距,像是表示某种附加的密封结构。他用图纸自带的测量工具测了那条线到面板边界的距离,标注的数值是五毫米,对应于一种常见的标准弹簧助力的结构件。 “h区面板装有弹簧助力锁扣,“陆维桢说,“开合所需时间更短、操作更省力。操作员在h区可以更快地完成介质更换,从而减少在机电小室内的暴露时间。这可能正是他放弃g区、转向h区的原因之一——h区的设备设计更有利于快速操作,暴露窗口更短。“ 周承岳在凌晨四点多从楼上下来。他走到操作台边,把手机屏幕上的一条消息展示给陆维桢看。消息来自外围组,内容是关于仓储区北侧围墙外道路的夜间车流量监测——在凌晨两点十分到两点二十分之间,有一辆深色轿车从围墙北侧的道路上经过,车速略低于限速,没有在附近停车,但经过时的轨迹和排水沟出口位置之间存在轻微的转向滞后。分析人员在返回的路径上与排水沟入口处的交通流量进行了对比,确认操作员的车辆在完成操作后没有经过常规出口离开,而是绕行了仓储区西侧的一条辅路。 “他离开时走了辅路。“陆维桢说,“可能为了避开主路上的夜间监控,或者他想确认有没有尾随车辆。经过围墙北侧路段时车速略慢于限速,他可能在做后视镜观察,确认没有车跟过来后才加速离开。“ 周承岳收起手机,没有多问,但他站在操作台旁边多停留了一段时间,视线在工作站屏幕上的h区设备平面图上缓慢移过一遍。他的目光停在检修面板弹簧锁扣的位置将近半分钟,然后移开,落在墙角的一处设备架上。那处设备架在低功率照明下泛着灰色哑光,从墙边到门框之间留出了一段空间。他的视线在那里短暂停留后离开了那处位置。 陆维桢回到加密平板电脑前,把h区捕获的完整操作记录整理成一份时间轴日志。日志的内容包括:操作员从排水沟到达竖井、竖井内攀爬和侧门进入、机电小室面板操作、返回竖井并关闭盖板的完整过程,每个阶段的精确时间戳和持续时长。日志底部附着声波波形和视频画面的参考索引,链接到原始的记录文件,供需要时查看。他完成整理后关闭了平板电脑的屏幕,然后起身走到设备架前,重新检查了声音记录器的电池状态和存储余量,确认设备在操作窗口期间记录的数据已经全部保存成功。他在设备架前面站了一会儿,然后转身回到了操作台前。 第65章 守界 设备架前,陆维桢站了片刻后伸手按了一下声音记录器的外壳侧面的按钮。指示灯由绿转红又转回绿,完成了一次自检循环。设备存储余量显示为七成,电池余量约八成,继续待机状态下的覆盖余量足够支持至少两个操作周期。他放平了设备架侧边的盖板,退后半步,视线从设备架移开,转向大厅另一侧的白板区域。白板上的数据记录已经保存了操作员的完整流程,用时和路径细节都已标注。 他走回操作台前,打开工作站上仓储区h区机电小室的内部图像。面板弹簧锁扣的标注在图上保持显眼,辅助限位螺栓的固定点在标注中保持原位。他放大图像看了面板边缘的固定结构,然后把图像恢复到原始尺寸,关闭了窗口。 “操作员下次操作周期的开始时间,在七天之后还是更短?“顾晏问道。 陆维桢没有立即回答。他在操作台前重新打开操作员在h区的操作时间轴日志,把这次操作窗口的时间作为基准,向前追溯了之前几次操作窗口的间隔。g区记录的间隔约为七天,h区记录中,本次操作窗口距上次环境评估的间隔不到四十八小时,但与上次主操作窗口的间隔数据不完整,无法判断h区的主周期是否与g区同步。 “h区的主周期尚未确定。“他说,“目前在h区只有一次完整的操作记录,不足以得出其周期范围。g区的主周期是七天,但g区已被操作员弃用,h区可能继承了部分功能,也可能采用不同的周期。“ 他的目光从操作台表面移向工作站屏幕的边缘位置。屏幕上的操作员行为模式图被放置在右侧的其中一个窗口里,在屏幕光线的照射下,窗口边缘的等高线标记与背景图层之间的边界保持清晰。 周承岳的加密手机在此时震动了一次。他接起来,听了一段约半分钟的通话后挂断,转向陆维桢的方向说了一句:“廖维今早打卡上班了,考勤时间比平时晚了四十分钟。“ 操作员在凌晨完成操作后,大约两个多小时后回到研究所,以比平时稍晚的时间打了卡。这意味着他没有因为夜间外出而请假或调班,他用正常的上班覆盖了前一天晚上的操作行程。这种作息安排在他的工作时间表中可能已经成了固定的节奏。 “他昨晚的操作和今天的上班之间只有几个小时的休息时间。“陆维桢说,“下一次操作如果仍按七天周期,他会在同样的日程安排下重复这个过程。但如果h区的主周期比七天短,他的作息节奏会更紧凑。“ 顾晏从设备架方向走回来,手里拿着一台备用记录器,拆开了电池仓的盖板更换了一组新电池。换下的旧电池被她用绝缘胶带贴住触点后放进了回收盒里。记录器被重新盖上盖板,她把它放回设备架的对应隔层,完成了备用设备的电源刷新。 “备用记录器换好了。“她说,“如果主记录器的存储空间在下一个操作周期内用尽,备用设备可以在三分钟内部署到原位。“ 陆维桢在工作台前保持着坐姿,目光停在工作站屏幕上的仓储区平面图中h区机电小室的所在位置。他的手指悬在键盘的上方,在确认过平面图后,他做了一次小幅度的位置调整,使视线和显示器屏幕之间的角度回到与之前一致的状态,然后收回了手。 第66章 转场 陆维桢收回手后,在操作台前又坐了几秒,然后调出了廖维凌晨操作前后约二十四小时的全时段行动记录:离开研究所、到达仓储区外围、完成环境评估后返回住处、次日清晨再次进入研究所。记录中的每个环节都在时间轴上占有一段固定的间距,像一组间距相等的刻度线排列在坐标纸上。他把研究所侧门刷卡时间和h区排水沟格栅接触声出现的时间做了减法,计算出从研究所到h区的移动时间约为二十分钟。 “从研究所侧门到h区排水沟格栅的位置,移动时间约二十分钟。“陆维桢在笔记本上写下了这个数字,“如果他在下次操作窗口到来时仍然遵循相同的行动顺序,他会先到研究所刷开门禁,进入弱电间确认终端状态,然后开车前往仓储区h区。从刷卡到h区操作开始之间有约二十分钟的移动窗口。“ 顾晏没有抬头,但她放下了手中的备用记录器外壳。她在工作台的角落摊开一张蓉城北部城区道路图,用笔画了一条从航空动力研究所到北区仓储区的路线。路线从研究所东门出发,沿主干道向北行驶约四公里后转入支路,再经过一段约两公里的城市道路到达仓储区北侧围墙外。路线上有四个主要交叉口和一处信号灯,平均通过时间在正常交通条件下恰好符合二十分钟的范围。 “二十分钟的路程,途经四个交叉口和一处信号灯。“陆维桢在她的路线图上确认了一下,“其中三个交叉口在夜间时段采用自动感应信号控制,没有固定红绿灯周期。如果他在某个信号灯处遇到红灯而需要等待半分钟到一分钟,剩余路段的行驶时间需要相应缩短。这是他在时间线上可能产生偏差的变量之一。“ 周承岳站在旁边看了一遍那条路线,然后从手机上调出了夜间时段交叉口的信号灯配时方案,把配时周期和延迟范围添加到了路线图上。他收起手机后,目光扫过地图上的交叉口位置,没有进一步询问。陆维桢把路线图折叠后放进了笔记本的夹层中,然后回到操作台前重新坐了下来。 “他的总操作时间一般在六到七分钟之间。“陆维桢翻开新的一页记录,“环境评估不需要等到下一次主操作之前再做,他可能会在那之前已预判了设备的状态,只等正式窗口时直接进入排水沟和机电小室。“ 顾晏拿起备用记录器,重新检查了一次电池仓的触点接触状态,然后把记录器放回了设备架的对应隔层中。她在关上隔层盖板之后仍然站在设备架前面没有离开,她的视线落在操作台上的加密平板电脑屏幕上,屏幕上的记录器状态界面显示为当前的接收强度和存储余量值。她伸手在平板电脑的边缘轻触了一下,屏幕上的显示界面切换到了下一个页面。 陆维桢在白板上的h区设备记录旁边新增了一行时间注解:从研究所侧门刷卡到h区操作开始,移动时间约二十分钟。信号灯变量可能导致正负一分钟偏差。周承岳在走出大厅之前,站在大厅入口的方向回过头来,看了一眼墙上的设备布置图。他的目光在图上停留了两秒左右,然后他转身穿过大厅入口的金属门框,走出了大厅。 陆维桢转向白板的方向,在新添加的移动时间注解旁边画了一条短横线,然后又画了一条平行于它的短横线,两条横线之间的距离约等于相邻标注之间的等距间隔。他放下笔后没有立刻转身,视线在白板表面保持了几秒钟的稳定。然后他走回操作台前坐下,把加密平板电脑调至仓储区记录器的实时状态界面,屏幕上显示当前三个设备的信号强度均为正常范围。 当前时间处于操作窗口周期内的静默阶段,下一操作窗口还需等待下一周。廖维在下次操作周期前的作息规律将在接下来的几天里逐渐形成周期性的轮廓,每次出现在相同的时间窗口内。 第67章 静域 静默期的第三天中午,陆维桢打开仓储区记录器的存储区检查了设备的数据量占用情况。声音记录器在操作窗口之后没有捕获到新的异常信号,摄像头的画面也停留在格栅关闭后的静态场景,随着每日的日照变化,画面中的明暗对比呈周期性循环。三个设备的存储占用率稳步上升,但距离满容量还有一定余量。 他关掉存储监控界面后没有立刻移开视线。屏幕的光线反射落在桌面和键盘之间形成的间隙里,边缘在阴影和光照之间保持着一道细长的过渡带。他沿着那道过渡带的走向看过去,停在一条与桌面边沿平行的方向,然后收回了目光。 下午两点左右,周承岳从楼上下来。他在操作台侧面站定后,把手机放到了桌面上,屏幕朝上,上面显示着一组从航空动力研究所返回的设施巡检日志更新数据。最近的更新条目中有一条关于弱电间配电箱的备注,标注为“散热风机声音异常,已安排检修“。巡检日期是今天上午,备注栏的签署人姓名处写着廖维。 “他今天上午检修了弱电间的散热风机。“陆维桢看完那条备注后说,“如果风机声音确实异常,检修是合规定期维护的一部分。但如果风机运行正常,他可能利用这次检修再次进入了弱电间内部,在不触发额外门禁记录的情况下检查了终端设备的运行状态。“ 周承岳没有接话。他把手机从桌面上收回来,放回了夹克内袋。然后他退后了一步,站在操作台旁边,目光落在工作站屏幕左下角的仓储区记录器数据列表中。 陆维桢把散热风机检修备注从日志中单独摘出,存放在“弱电间访问记录“文件夹中,与之前廖维的几次夜间访问记录放在同一目录下。他在新条目的备注栏中注明:“检修时间在工作日的正常维修时段,合规。不排除附加检查的可能性。“ 傍晚时分,加密平板电脑上弹出了一条提示,显示h区声音记录器在下午四点零七分捕获到一段极短的低频振动信号。陆维桢打开波形图查看,信号持续约一点二秒,频率和振幅与g区记录器之前捕捉到的某次环境背景信号接近。他把这段新信号与g区记录器的历史数据做了特征相似度对比,匹配度在正常范围内,属于环境背景噪音的偶然波动,不是人为操作引起的信号。 “环境背景噪音波动。“他在记录文件中添加了标注,“频率特征与g区历史数据相似,无后续信号。未构成操作迹象。“ 顾晏在当天晚上八点前后再次检查了备用记录器的电池状态。她打开电池仓检查触点时,视线在设备架侧面的电源指示灯上停留了片刻,然后合上了盖板。备用记录器的指示灯显示为绿色,与主记录器的状态一致。 “主记录器存储余量约六成,备用记录器电池满。“她在设备状态日志中更新了数据,“可以继续支持下一个操作周期。“她的手指从状态日志页面的边缘收回,继续输出到设备架旁边的电源扩展槽。 周承岳在十点前后再次下楼,把加密手机屏幕展示给陆维桢看了一眼。屏幕上显示的是外围组对航空动力研究所周边路段昨夜的车流量数据汇总,数据来自三个路口的地磁感应器记录。数据显示廖维住所到研究所的方向夜间有车辆通行,但数量和时段未形成明确的出行规律,不足以单独构成确认外出的依据。 “昨天晚上的交通流量没有异常。“陆维桢把汇总数据看完后说,“他不在操作窗口期之前外出,符合预期行为。操作窗口期到来之前,他会一直保持正常作息,不在夜间外出。“ 周承岳收起手机后走出了大厅。通风系统在夜间模式下的运行声在此时轻微变大,使得大厅内的环境声音保持稳定。 陆维桢在操作台前重新把下一操作窗口期的剩余天数在备忘录中做了记录。他在当前日期后面标注了“距下次操作窗口约四天“的字样,然后用一条横线把记录分隔开,在横线下方的区域留出了用于添加新记录的空白。他把备忘录页面向下滚动了一段距离,露出之前记录的环境评估和连接测试的时间段信息。在两个信息块之间,空出了一行未填写的文本行,位于当前时间点和预期窗口之间的某个位置,两端都没有被其他记录占据。 第68章 晨像 静默期第五天早晨,陆维桢在操作台前打开工作站时注意到h区摄像头的夜间画面中出现了一组新的连续性参数变化——竖井盖板与井口接缝处的阴影线宽度,在凌晨三点到四点的时段内比前后各时段略微增加了一次,持续时间约两小时。他在笔记本上记录下这个变化,但没有立即标记为异常。随后他将声音记录器在相同时段的波形图调出进行交叉验证,该时段的波形图保持平稳,没有对应出现活动信号。 他把摄像头的日夜切换参数调出来检查了一遍:切换阈值设置正确,凌晨时段的画面模式没有错误切换,拍摄参数在当天夜间没有出现异常的自动调整。阴影线宽度的变化稳定地记录在连续多帧画面上,构成了一组过渡平缓的观察轨迹,持续了约两小时后恢复到原来的数值。 “盖板与井口之间的间隙发生了持续性的微小变化。“陆维桢把记录保留在摄像头的文件夹中,“变化出现在凌晨时段的边缘,没有伴随声音信号,可能只是温度变化引起的材料收缩和膨胀。“他在该条记录下方添加了一行注释:“后续周期继续观测,当前无关联异常信号。“ 顾晏随后走到他身后,俯身看了一眼屏幕上的阴影线变化截图。她没有说话,只是从操作台侧面拿了一台备用摄像头,确认了备用摄像头的防水封装和电池余量,重新放回原处,在没有发出其他声音的情况下退到了侧方的工作台边。 周承岳在九点多下楼。他来到操作台前,在手机上打开了一封来自航空动力研究所考勤系统的短消息预览——显示廖维今天的打卡时间比往常提前了约二十分钟,没有请假或调休记录,标记为“正常上班“。考勤记录本身没有异常,但时间偏移在常规的人事数据中构成了一组不常见的数值。他看完后关掉了预览窗口,把手机翻转,屏幕朝下放在桌面上。 “他比平时早到了约二十分钟。“陆维桢说,“如果他的作息节奏在调整,下次操作窗口可能会以不同的方式出现。可能提前,也可能不变。“ 他在笔记本上把廖维的本次打卡时间和之前几次操作窗口前的打卡时间做了排列,发现操作窗口前一两天的打卡记录有时会与基线有偏差——可能来自对操作窗口的周期性预期反应。他把打卡时间偏差单独列为一组参数,用作操作窗口的参考指标之一,但不作为确认操作的确切依据。 中午休息时段,陆维桢再次打开摄像头的夜间画面,把盖板阴影线的变化与g区记录器在上个月的历史数据做了一次关联扫描。两组数据在时间轴上的重合度在自然波动范围内,没有出现超过基线范围的偏差,说明g区记录器在上个月同期也曾出现过类似的变化。他关闭了关联扫描界面,没有把这次扫描结果标注为新的异常标记。 下午,周承岳的加密手机再次显示一条来自外围组的消息。消息内容短,只有一行字:“车辆前次经过排水沟路段。没有停车。“周承岳看完消息后把手机放回了夹克内袋。他站在原地沉默了一下,保持着原先的站姿。然后他低头看了一眼操作台桌面上的设备架,没有进一步询问消息的具体内容。 陆维桢没有抬头。他的目光落在工作站屏幕右下角的实时时钟上,光标在文档中的一行空白段落末尾稳定闪烁,等待下一轮记录开始前保持静止状态。 第69章 余震 光标在文档底部持续闪烁了约四分钟后,陆维桢伸手按了一下回车键,在空白行中输入了“第五日“三个字。他把光标移到行首,按了一次空格键缩进两个字符的距离,在下一行输入了当天的记录内容:“凌晨三点至四时,盖板阴影线出现持续约一小时的宽度变化。波形无对应,排除人为因素。“ 他保存了文档,关闭编辑窗口。桌面上只剩仓储区记录器的实时状态界面,三个设备的信号强度值并列显示在屏幕顶部,数值稳定,没有波动。他在状态界面下方新建了一个文件夹,命名为“h区温度监测“,但没有向其中添加任何内容。 当天下午,顾晏在设备架侧面打开了一台备用加密平板电脑,启动了储存卡分析程序,从物流园中继器存储卡的文件底层提取出一组未在之前的解析中完全展开的数据碎片。碎片被压缩在一个以时间戳命名的子文件夹中,时间的格式标记和航空动力研究所弱电间终端的某种进程日志的时间格式一致。她提取出碎片内容后,将其与h区机电小室设备的面板型号参数做了一次匹配,匹配结果指向了设备的电源管理模块,其中显示在操作窗口结束后约四小时,h区设备的电源管理系统会执行一次自检序列,持续约三秒,然后恢复到待机状态。 “操作窗口结束后约四小时,h区设备自动执行一次电源自检。“顾晏把匹配结果展示在工作站屏幕上,“自检序列的电压波动可能会通过供电线路传导到声音记录器的低频通道,形成一种微弱且短暂的电气噪声。波形图上可能会在操作窗口结束后的四小时左右出现一次无关人员活动的低频信号。“ 陆维桢在笔记本上记下了电源自检的时间偏移量。他在笔记本上画了一条简化的时间线,把操作窗口结束点和自检序列出现点用一条短横线连接起来,标注了约四小时的间隔。这意味着他如果看到h区方向在操作窗口后的清晨时段出现短暂的低频噪声,可以先将其判定为电源自检,暂时不需采取任何措施。他记录完成后合上了笔记本的页面,把笔放回笔记本的固定笔夹中,然后把笔记本放回了抽屉。 周承岳在下午三点左右下楼。他把一份从外围组转来的纸质材料放在操作台桌面上,是一张打印出来的卫星热成像图,拍摄时间在当天凌晨两点四十五分左右。图上显示h区排水沟格栅位置的土壤温度略高于周边约零点三度,温度差异在测量误差范围内,不足以直接判断为人为活动造成的热异常。他在图边沿按了一下,把纸放平在桌面上,然后退后了一步。 “零点三度的温差,在测量误差范围以内。“陆维桢把热成像图看了一遍,“可能只是土壤湿度差异或地表覆盖物不同导致的吸收率变化。但如果操作员在操作窗口前做了环境评估,他可能在那时触碰或检查过排水沟格栅的结构状态,手掌的热量通过接触传导到格栅表面的时间很短。零点三度的温差不足以构成这项推断的确切依据。“ 他把热成像图放回桌面,没有在上面做标记。 傍晚六点过后,加密平板电脑弹出了一条低优先级提示,显示h区声音记录器的低频通道记录到一组持续约两秒的微弱电信号波动,频率和电源自检序列特征一致。出现时间在凌晨四点零七分左右,与操作窗口结束后约四小时的时间窗口吻合。 “电源自检序列在预定时间段内出现。“陆维桢在记录中标注了该次事件,“频率特征与电源管理系统自检一致,非人为活动。“他在记录底部注明:“下一次自检序列预计在约七天后,操作窗口结束后的相同时段。“然后他把平板电脑的提示标记为已读,关闭了屏幕。 晚上八点左右,顾晏在设备架前做了一次主记录器的存储占用复核。声音记录器和摄像头的存储余量约剩五成和六成,备用记录器处于满电状态。她在状态日志中更新了存储余量数据,然后关闭了设备架的柜门。 “存储余量还可以再支持一次完整的操作窗口周期。“她说完后走回工作站前坐了下来,重新打开物流园中继器存储卡中那组被解压的数据碎片界面,向下滚动到了碎片的最后一段内容。碎片的最后几行终端数据记录以一组空值字符作为结束符,在空值字符之后,文件系统层面还嵌入了一段之前未解析出的额外字节。字节长度极短,在未展开的状态下只显示为一串等长的数值序列,被两个分隔符包围,像一条被包裹在文件结构内部的信息片段。 第70章 埋帧 顾晏的手指在触控板上停住了。屏幕上那串数值序列在未展开的状态下只呈现为一组均匀排列的字符,被两个分隔符夹在中间,占据大约两行文本的空间。她没有拖动滚动条,而是从工作站侧面的抽屉里取出一只加密读卡器,把物流园中继器的存储卡从读卡槽中取出,插入读卡器的备用接口,重新读取了文件系统的底层元数据。元数据中显示那段额外字节的偏移量位置落在文件结束标记之后约二十八个字节处,在文件系统的逻辑结构中处于文件数据块和空闲块之间的边界区域。这种位置通常用于嵌入校验和或者附加元数据,但在当前的文件结构中,它独立存在,没有被任何上层目录引用。 “文件末端边界区域有一段没有在目录中注册的数据。“陆维桢走到她旁边俯身看屏幕,“大小约一百二十字节,被两个分隔符标记。如果这是文件系统层级的一部分,它应该与主数据区的某部分有对应关系——可能是一段密钥更新或者调度参数。“ 顾晏用十六进制编辑器打开了该段数据块的原始内容。一百二十字节的内容在编辑器的窗口中显示为三行等长的十六进制数值,每行的长度相等,排列整齐。前两行的数值模式与加密系统中常见的调度参数结构类似,以时间戳格式开头,后面跟随一组标识符。第三行的数值结构不同,长度较短,包含一个固定的字节标记和一组数字,像是某种功能代码或状态标记。 她把时间戳字段的值从十六进制转换为标准时间格式。转换后的结果指向了几天后的一个精确时刻——凌晨两点十一分,与g区之前的操作窗口时间点接近,但比h区上次实际操作的开始时间早了约四分钟。她在心中估算了一下h区上次操作的移动路线和操作时长,四分钟的偏差小于正常波动范围,使两者之间的差别缩小到了难以区分的程度。 “时间戳指向几天后凌晨两点十一分。“顾晏把转换后的时间戳显示在屏幕上,“这可能是h区设备预定的下次操作启动窗口。比g区的常规窗口早了约四分钟,但比h区上次操作早了四分钟,落在误差范围内。“ 陆维桢站在她侧面看完了那组数值的全部内容。他用工作站自带的校验工具扫描了该段数据块的文件完整性,校验和通过,未发现位错误或数据篡改痕迹。数据块在文件系统中处于没有被上级目录索引的状态,因此操作系统在常规读取时不会主动加载它,但它的校验和却通过了完整性检查,说明它是在文件写入时同时生成的,不是后期附加的内容。 “文件生成时同时写入了这段数据,但系统没有为它分配目录索引。“陆维桢直起身,“它在文件结构内部保持着可读状态,但没有被目录系统引用。操作员或者在生成文件时用它来记录操作参数,或者把它作为某种辅助标记留在那里,供以后的检查或对比。“ 他把时间戳记录在了笔记本的下一操作窗口预测栏中,与原预测日期一致,时间偏移四分钟,处于可接受范围内。他把该次发现记录在数据块的分析记录中,注明“未注册数据块,内容为时间戳和标识符组合,时间与预测窗口吻合,建议作为参数保留。“ 顾晏关闭了十六进制编辑器,把存储卡从备用读卡器中取出,放回原处。她在工作站的备注栏中补充了数据块的偏移量和校验和数值,然后关闭了窗口,将屏幕亮度调整回标准模式。数据块的位置从屏幕上消失后,新的内容还没有被调入当前窗口。 周承岳在九点过后再次下楼。他走到操作台侧面,把加密手机放在桌面上,屏幕显示着一组航空动力研究所门禁系统在最近几小时的更新记录。记录显示廖维在当晚下班时仍然刷了门禁卡离开园区,按正常流程完成了当天的考勤。记录中没有出现任何下班后又返回或夜间临时进入的情况。 “他正常下班离开了。“陆维桢看了一遍记录,“距离下次操作窗口还有几天,他在窗口到来之前不会再有额外外出的安排。下次操作窗口到来时,他会按同样顺序刷卡外出,经过弱电间完成预检,然后驱车前往仓储区。“ 周承岳把手机收起来,没有说什么。他站在大厅入口附近看了一眼操作台对面墙上的仓储区平面图,视线在h区排水沟格栅位置短暂停留后移开了,没有在平面图上做任何额外的标记。他在通风管道送风声的一次间隙中转身穿过大厅入口的金属门框,走出了大厅。 陆维桢在操作台前重新打开未注册数据块的截图,与之前记录的g区和h区的操作时间窗口并列排列在屏幕上,列在笔记本的对应行中,供需要时对照。然后他关闭了所有分析窗口,把屏幕亮度调低了一档。 第71章 前窗 窗台上的通风管道延伸至大厅远处的墙壁接缝处。陆维桢在操作台前坐了一段时间,屏幕进入低功耗省电模式后亮度下降,只留下一线微弱的白色光斑覆盖在桌面靠近键盘的区域。他伸手碰了一下触摸板,屏幕恢复到了标准亮度。仓储区记录器的状态界面仍在原处,三个设备的信号强度曲线保持着接近基线水平的平整度。 他打开笔记本翻到“未注册数据块“的记录页,再次核对了十六进制编辑器转换出的时间戳。数字没有变化,仍然固定在几天后凌晨两点十一分的位置,与原预测日期一致,偏差四分钟。他把笔记本合上,放在键盘右侧。 午夜过后,加密平板电脑在静默模式下收到了一条来自外围组的信息——没有提示音,没有震动,只有一个新消息标记显示在屏幕顶部。陆维桢点开消息,内容是关于北区仓储区围墙外侧道路的一辆深色轿车的简短记录。车辆在夜间经过了排水沟路段,经过时速度均匀,没有停车,但通过的时间窗口与h区设备电源自检序列的起始点接近。 他没有立即做出任何标记。他把那则消息放在一个临时的观察记录中,没有在笔记本上做注释。 顾晏在第二天上午重新打开物流园中继器存储卡的底层文件系统做了一次完整扫描,检查是否还有其他未注册的数据块存在于文件结束标记之后的边界区域中。扫描结果显示,除了已发现的位于文件末端之后约二十八个字节处的数据块外,没有其他未注册数据块的记录。存储卡的剩余存储空间内也没有发现隐藏分区或未分配区域的痕迹。 “没有其他未注册的数据块。“陆维桢把扫描结果简要记录了一遍,“该段数据块是唯一出现在边界区域的内容。它的存在可能是系统文件写入时的残余元数据,也可能是操作员有意放置在边界区域内的隐蔽信息。“ 他在笔记中为这段未注册数据块建立了单独的分类条目,并在条目末尾注明“来源节点:物流园中继器存储卡,数据块大小约一百二十字节。建议在执行下一操作窗口前保持为保留状态。“ 午间,他重新打开h区摄像头的画面,查看了盖板阴影线的变化趋势。过去几天的阴影线宽度数据已经累积到了足够形成趋势的程度,从数据分布来看,凌晨时段的阴影线宽度变化率在逐步缩小,向末端的基线靠拢。 “阴影线宽度变化的幅度在逐步缩小。“陆维桢把变化趋势记录在摄像头的文件夹中,“如果这个趋势持续,下次操作窗口到来前的凌晨时段应该不会再出现明显的阴影线变化。“ 周承岳在午后下来过,在三处设备的信号状态显示界面确认了一遍信号强度值后,没有留下新的消息就离开了大厅。他离开时没有携带操作台或设备架上的任何物品,也没有在桌面或墙面上留下新的标记或记录。 当天傍晚,加密平板电脑再次收到外围组的信息。消息显示排水沟路段在傍晚时段没有车辆经过的记录,但路边灌木丛的枝叶在下午时段曾有一次被触动的状态变化——附近没有风,也没有动物经过的痕迹。外围组的工作人员测量了相关枝条的偏转角度后,确认其弯折状态与人为触碰时产生的角度接近。 陆维桢读到“枝叶偏转角度与人为触碰接近“这句话时,没有改变他在屏幕上的观察位置。他在笔记本中为这条记录增加了一行:“可能与环境评估有关,也可能无关。“他用一条横线把它与主记录分隔开,然后在横线下方的空白处留出了用于添加新记录的空白行。 傍晚的天光逐渐转暗,窗外的光线从白色过渡到了偏冷的蓝灰色,然后继续向深色变化,在变暗过程中保持了一段较长的稳定期,然后消失。大厅内的照明灯从日间模式切换到夜间模式,灯光的色温和亮度同步调整到了低照度水平,在墙面上形成一圈平稳的光晕。 陆维桢在夜色完全降临后,在加密平板电脑上打开了当前日期的操作日历。距离预测窗口还有两天,中间隔着一个完整的工作日和一个预备时段,期间操作员不会有额外行动,记录器将继续以待机状态运行,等待窗口开启。他在日历上为下一个窗口所在的那一格添加了一个铅笔标记,然后用横线把标记围了起来,形成一个小方框。 他在合上平板电脑之前,把新添加的日期标记和之前记录中的未注册数据块时间戳放在同一行中,确认它们在日期和时间上匹配后,关闭了操作日历界面。窗外的夜色已经完全降下,天光在窗户玻璃上的最后一次反射痕迹也消失在了玻璃面的深处。 第72章 验隙 夜色完全降下后,大厅的照明维持在夜间模式的低照度水平。窗玻璃上最后一点天光消失后,玻璃面恢复到普通的深色反射状态。陆维榕的目光从窗面移回平板电脑屏幕,把操作日历上的铅笔标记又描粗了一圈。他用手指在方框的外沿处划了一道短横线,然后锁屏,把平板电脑放回了桌面。 顾晏在设备架前完成了备用记录器的又一次电量确认后,沉默着走回工作站坐下。她在键盘上输入了一行指令,调出h区声音记录器在当天傍晚时段的完整波形图,从六点到九点之间的数据被加载到屏幕上,波形在约七点二十分出现了一次持续不到一秒的低幅波动,幅度接近基线噪声上限,但没有超过阈值。她检查了波形旁边的频率读数后,把光标停在了该段波形的起始位置,没有继续移动。 “傍晚七点二十分有一次接近阈值的波动。“顾晏开口说,“没有超过判定阈值。来自排水沟方向的可能性低,更像是地下管线系统的结构噪音。“ 陆维桢说了一句:“记录,不标记。“ 顾晏在日志中记录了该次波动的参数,没有添加标记。她关闭了波形窗口,屏幕恢复到设备状态总览界面。 大厅内的通风系统在运行一段时间后自动切换了一次工作模式,送风声的频率变化在持续运行期间没有对大厅内的环境造成明显影响。切换过程大约持续了不到十秒,然后返回到了先前的频率范围。 第二天上午,陆维桢在操作台前从抽屉里取出那本笔记本,翻到了“未注册数据块“所在的页面,重新读了十六进制数值的第三行内容。第三行长度较短,包含一个字节标记和一组数字,在初次读取时没有做进一步识别。他把那行数值单独截取出来,在脑海中默念了一遍那串由字母和数字混合排列的字符,发现排列格式与之前从物流园中继器存储卡其他位置提取出的某种功能代码相似。他从笔记本中翻到记录该功能代码的页面,将两组字符并排放在同一页中,让两列字符之间的间隔宽度保持在与页面上其他数据行一致的标准内。 “两组功能代码的结构一致。“他说,“可能代表同一种指令类型或状态编码。未注册数据块中的代码数值与之前记录的代码不同,但长度和格式相同,属于同一套编码体系。“ 他在该行的下方添加了一条注释,注明与之前功能代码的关联。 午间,顾晏从设备架上取下声音记录器,更换了一组电池,把换下的电池放进了回收盒中。她记录下更换时间,确认新的电池状态条显示为满格,然后把记录器放回了原位。 下午时段,加密平板电脑收到了一条短消息。消息来自外围组,内容是关于排水沟路段路灯的维护记录:路段上的一盏路灯从当天下午一点开始进入关闭状态。路灯的维护记录显示该路段的照明灯在维修计划中,预计当天下午恢复,未说明具体原因。 “维修在当天下午完成。“陆维桢说,“路灯关闭的时段在白天,与操作窗口期的作业时段不重叠。可能只是常规维护,也可能是在为操作窗口期的低光照条件做准备——如果路灯恢复正常,操作员在操作窗口经过时的可见度可能会提高。“ 他把路灯维护记录添加到了当天的观察日志中,在结尾处留了一行空白用于后续补充。 傍晚时分,他在白板前驻足,在“下一操作窗口“旁边补上了未注册数据块中的完整时间戳,并在此前预测日期旁边添上了四分钟的偏差值,使两者在日期上并排排列。补完后,他放下笔,退后半步看了看白板上两行时间记录之间的间距——约等于相邻标注之间的等距间隔。他回到操作台前坐下,没有关闭平板电脑的屏幕,让它保持亮屏状态待在自己前方。屏幕上的实时状态界面显示三个设备的信号强度和存储余量数值分别为满格和七成、五成、六成,均处于正常范围。 窗外的天色在这一时段仍然保持着傍晚的过渡状态,在亮度变化过程中,窗玻璃内部的反光逐渐加强,从表面反射的室内灯光完整地覆盖了窗面,在暗色的边框内形成了一段固定亮度的画面,没有波动。 第73章 前置 窗玻璃内的灯光倒影在暗色边框内保持了大约一小时后,随着室外光线的进一步减弱,倒影的亮度逐步下降,恢复到了玻璃自身的深色反射状态。陆维桢在操作台前保持着坐姿,视线从窗面移回工作站的屏幕,把三个设备的状态栏横向扫了一遍。摄像头画面稳定,声音记录器的波形曲线平坦,接收器的频段内没有异常信号。 他站起身,走到设备架前,打开了h区声音记录器的外壳,检查了内部存储卡与主板的连接触点。触点表面干净,没有氧化或松动迹象,他用手指轻轻按压了一下存储卡的边缘,使其与卡槽接触面保持更紧密的贴合状态。他合上外壳,确认密封条完整压入卡槽内,然后打开了摄像头的防水外壳侧面密封盖。盖内的干燥剂没有变色,说明防水结构密封良好。他重新合上密封盖,拧紧了固定螺丝,然后走回了操作台。 顾晏从工作站的侧面抬起头来,视线随着他的动作转回到屏幕上,没有开口。她把波形图的显示范围从当前时间向前延伸了一段距离,查看了过去几个小时的数据,确认没有出现新的异常信号后,把显示范围恢复到了实时模式。屏幕上波形曲线的波动幅度保持着稳定的基线状态,没有越过阈值标记。 陆维桢在操作台前重新坐下。他打开平板电脑上的操作日历,确认预测窗口的日期已经进入今天的范围。日期标注保持原样,时间戳记录仍然停留在凌晨两点十一分。他在日期下方加了一行小字:“预计操作窗口:今日凌晨。“ 他合上平板电脑的屏幕保护壳,把设备放到操作台侧面靠墙的位置,然后转回工作站屏幕,把三个记录器的实时状态界面调整到同时可见的布局模式,使三个设备的信号强度值保持在同一时间刻度下。声音记录器的波形图在屏幕左上角,摄像头的预览画面在右上角,信号接收器的频谱图在底部,三个窗口之间用细黑线分隔,各自占据等高的显示区域。 周承岳在晚间时经过大厅入口,站在门框位置向室内看了一眼。他的目光依次扫过工作站屏幕上的三个窗口,然后停在了储物柜的位置,没有走进来,也没有开口。他在门口站了大约十秒后转身,沿着走廊向电梯的方向走去。 十点过后,大厅内的照明从夜间模式进一步降低到最低档位,只保留了操作台区域的局部照明灯。应急指示灯在墙面上方亮着,在地面上投下一圈微弱的亮光。陆维桢在操作台前保持坐姿,把平板电脑重新打开,检查了未注册数据块中的时间戳值。数字没有变化。他关闭了平板电脑的屏幕,转向工作站,把三个记录器的实时状态界面重新对齐了一次。 十一点,摄像头的预览画面中出现了排水沟格栅边缘处的一个极小移动。移动持续时间不到一秒,像是树叶被风吹过后又落回原位。陆维桢把该段画面回放了两次,确认了移动的主体是一片干枯的落叶,在气流作用下从格栅表面滑落。他在日志中记录了这个观测结果,没有列为异常事件,继续观察。 十二点过后,大厅内的环境声音和信号状态保持稳定。窗口期在时间轴上逐渐接近,距离未注册数据块中的时间戳标记还有一个多小时。他能够感知到时间在安静地流过,没有人说话,设备的指示灯在操作台表面上持续亮着。指示灯的灯光以稳定的频率亮着,与墙面上的应急指示灯交替形成不同层次的照明,在操作台表面形成一片均匀的亮区,覆盖了键盘和鼠标垫的大部分区域。 他在座位上稍微调整了一下坐姿,重新把平板电脑的屏幕唤醒,确认未注册数据块中的时间戳仍然保持在当前日期标记对应的准确数值上,然后关闭了屏幕。 第74章 趋近 凌晨一点四十分,操作台局部照明的光线在键盘和手掌之间形成了一道窄长的亮区。陆维桢的右手落在鼠标侧面的位置,手指保持静止,视线落在屏幕上的三个监测窗口之间,没有在任一窗口上做长时间停留。摄像头的画面中,排水沟格栅的边缘在低照度下与周围地面的边界保持清晰,盖板的轮廓和周边的阴影分布已经在前半夜的检查中确认过,没有出现明显的变化。 顾晏站在设备架侧面,手里拿着备用记录器的外壳,没有做任何操作。她站了一段时间后把记录器放回了原处,退回到工作站旁边的位置,在椅子上坐了下来。坐下的过程中椅子没有发出声响,她坐下后视线落在了声音记录器的波形图窗口上,保持了一段时间的稳定观察。 一点五十分,三个监测窗口的状态数值与之前一致,信号强度没有波动,波形的基线保持在正常范围以内。陆维桢的目光从声音记录器的波形图上扫过,没有停留,继续移动到摄像机预览画面上,确认盖板的接缝线在画面中的位置与之前对齐,然后返回到了波形图窗口的相同位置。 两点零二分,摄像头的画面中出现了一次极低亮度的变化。变化来自盖板与井口接缝的位置,先是边缘线发生了微小的加宽,大约零点几秒后恢复到了原状,随后宽度的变化以一种较快的节奏形成了第二组小幅波动。波形图上没有对应的声音信号出现在该时刻。陆维桢在观察窗口内捕捉到该变化后,继续留意摄像头的画面和波形图的关联情况,波形图上没有出现后续对应的信号。 “盖板状态变化,无对应声学信号。“他用这句话在日志中做了记录,然后继续观察画面,在随后的观察中确认盖板没有继续出现新的偏移或移动。 两点零七分,声音记录器的波形图上出现了一组短促的脚步声。脚步声的频率和持续时间与之前记录的竖井位置特征相符,波形呈现为两个连续的峰值,间隔短于预期。随后波形图上出现了另一组脚步声,沿竖井内壁向下移动的节奏与之前的记录一致,在到达底部位置后短暂停止。格栅在上次画面变化后没有再次出现位移,盖板保持在稳定位置,脚步声的波形来自竖井内部而非地面方向。 “脚步声出现,与预期路径一致。“陆维桢把这一组脚步声的记录加入日志,与上一操作窗口中的脚步声波形对比后确认,两者在幅度和节律上接近。 两点零九分,声音记录器捕捉到了金属物体与螺栓头接触的旋钮声,持续约四秒。旋钮声结束后有一小段停顿,然后出现了另一组方向相反的旋钮声,持续约三秒。整个声音序列的结构和持续时间与h区面板的快速锁扣特征吻合,操作时长也接近预期窗口的净操作时间。 “面板操作完成,时长与预期一致。“ 他在波形图的末尾添加了这个标注,然后将日志中的标注与波形图上的时间轴对齐,确认了操作序列的时间点与未注册数据块中记录的时间戳之间的偏差控制在三十秒以内。操作完成后的脚步声沿着竖井内壁向上攀爬,在攀爬过程中出现了一次短暂的停顿——约一秒左右——然后继续向上移动。声音记录器在盖板关闭的时刻捕获到了接触声,盖板在闭合过程中与井口接触时产生的声音被记录器接收,与格栅回到原位的时间点同步。 “盖板关闭,操作流程完成。“ 陆维桢把声音记录器波形图的显示时间范围调整到当前时刻,确认了波形序列的完成状态。他没有关闭日志窗口,把日志保持在当前页面,继续观察着屏幕上的内容,没有移动日志窗口的位置,也没有进行保存或关闭操作。 他放下鼠标,坐回椅子上。深夜的灯光在操作台和墙壁之间的过渡面上投下一段连续的微光,在操作完成后的安静时段,他保持着坐姿,视线落在屏幕方向上,但没有聚焦在任何特定区域。 第75章 结存 操作完成后的安静时段在大厅内持续了大约十五分钟。声音记录器的波形图在盖板关闭后再没有出现新的峰值,摄像头画面中的格栅和盖板保持着关闭后的静止状态,接收器的频段内没有接收到额外的数据包或信号传输。陆维桢在凌晨两点四十分前后把声音记录器的波形图从当前时间回滚到了操作窗口起始前约三十分钟,把盖板初始状态变化、脚步声序列和面板旋钮声分别做了时间标记,然后将完整的波形序列保存为一份独立的波形数据文件,存储在操作窗口记录文件夹中。 “操作流程完整记录,盖板状态变化、脚步声序列、面板操作声、返回脚步声、盖板关闭——均已标记。“ 顾晏从椅子上站起来,走到设备架前面,打开主记录器的外壳,检查了存储卡的已用空间和剩余容量。存储卡的剩余空间约有三成,她重新密封了外壳,没有更换存储卡或电池,也没有调整设备的安装位置。 “存储卡可继续支撑下一操作。“她在设备状态日志中更新了存储余量数据,然后合上了设备架的门。 凌晨三点左右,声音记录器捕获到了一组持续时间约两秒的低频电气噪声,信号强度和波形特征与电源自检序列一致。在盖板关闭后等待了约四十分钟后,自检信号在预期时间段的末端出现。陆维桢在日志中记录了该次事件:“电源自检序列出现,时长为预期窗口末段。状态正常。“ 凌晨四点到五点之间,大厅内没有出现新的信号或声音。天色在五点半过后开始从深色向浅色过渡,窗玻璃内部的灯光倒影被室外逐渐增强的天光取代,窗面上反射的室内灯光逐步淡化消失,恢复了透明状态。顾晏在六点左右打开了摄像头的日间模式切换设置,确认切换状态正常后将盖板表面覆盖的植被和阴影在自然光条件下的分布情况与夜间数据进行了一次对比。 “盖板、格栅位置在日间光线下的状态与夜间一致,表面没有明显的物理移动或覆盖物变化。“ 周承岳在早晨七点半左右从楼上下来。他走到操作台旁边,看了一眼工作站屏幕上显示的操作窗口日志摘要,看完了日志摘要后没有问任何问题,在操作台旁边站了片刻,双手垂在身侧,其中一只手靠近夹克侧袋的位置。 “操作窗口顺利完成。记录到完整的操作流程和电源自检序列。“陆维桢在周承岳站在旁边的时候开口说,“面板操作时长和移动路径与上次一致。盖板在操作前约五分钟出现过一次微幅位移,没有对应的声学信号。“ 周承岳没有回应,他在原地又站了一会儿,然后转身沿着走廊向大厅出口方向走去。他的脚步声沿着走廊向出口方向逐渐减弱的幅度保持着稳定的节奏,直到在走廊尽头的电梯处完全消失。 陆维桢在工作站前打开了前一次h区操作记录的波形图和本次记录的波形图,将两者并排放在同一屏幕上。两次操作的波形在时间轴上的排列方式一致,对应的操作特征在时序上存在对应关系。面板操作时长的数据在两次记录中基本一致,竖井内脚步声的节律和停顿位置也接近。 “两次操作的数据一致。“他把对比结果记录在笔记本中,“面板操作时长、竖井移动节奏和整体流程的时间分布保持稳定。操作流程已经形成了固定的执行模式。“ 他在笔记本中添加了一行新的备注,注明本次操作窗口中盖板的微幅位移和脚步声在竖井内出现的一次短暂停顿,将其作为与之前不同的观察结果。然后合上了笔记本。 上午时段,加密平板电脑收到外围组发送的排水沟路段早间监控摘要。摘要显示该路段在凌晨时段没有车辆长时间停放或反复经过的记录,但在操作窗口结束后约一小时,有一辆深色轿车以正常的行驶速度沿该路段通过,没有减速。陆维桢阅读完摘要后,将该信息记录在操作窗口日志的附件栏中,没有做进一步的评论。 窗外的光线已经进入日间模式,窗面上不再有室内灯光的反射,只映着外部天空和植物枝叶的轮廓。操作台表面的局部照明灯仍然以夜间模式的较低亮度保持着照明的持续,键盘和鼠标垫的轮廓在光源的漫射下形成相应的反射区域。他在上午时段打开操作窗口的日志文件,将未注册数据块的时间戳与本次操作的实际发生时间做了最终对比,确认了偏差范围在三十秒内后,关闭了文件。 第76章 静变 操作窗口结束后的第二天,h区三个记录器在午间时段同时出现了一次短暂的数据中断——声音记录器、摄像头和信号接收器各自离线了约七秒钟,然后自动恢复了连接。陆维桢在状态面板上看到离线记录时,正值他起身去接一杯水。他回来时三个设备的状态已经恢复为绿色标记,离线记录显示在日志中,三台设备的离线时间完全相同,精确到同一秒。 “同时离线,同时恢复。“陆维桢把离线记录单独标记出来,“不是单个设备的故障,是供电线路的瞬断。可能是仓储区配电系统的一次保护动作,也可能是有人在配电箱处做了短暂的断供电操作。“ 顾晏走到工作台旁边,调出了过去一周的电源日志,将午间时段的电压曲线与历史平均值做了对比。曲线在离线发生时刻出现了一段约七秒的电压跌落,幅度低于设备运行的最低阈值,然后恢复正常,恢复后的电压与跌落前一致,没有出现欠压或过压的后续波动。 “电压跌落七秒,波形与配电系统中的线路重合器动作特征一致。“顾晏把比对结果显示在屏幕上,“可能是仓储区内某台设备启动时的瞬时压降,也可能是配电箱内的某个开关被操作过。“ 陆维桢打开摄像头的画面回放,查看了离线时段前后约五分钟的视频。画面在离线前保持稳定,离线后的第一帧画面显示盖板的表面状态与离线前一致,没有出现新的位移或覆盖物变化。他继续向后播放了约十秒钟,画面中没有出现人员或车辆的动态,离线时段前后的连续性没有被破坏。 “画面连续性正常,离线期间没有可察觉的物理变化。“他把这个观察记录在离线事件日志的备注栏中,“事件原因暂定为配电系统瞬断。“ 他在笔记本中添加了一条记录:“h区记录器在同日下午出现约七秒的供电中断。原因暂未确认。“ 当天傍晚,加密平板电脑收到了外围组对仓储区配电系统的咨询回复。回复中说明当天午间在仓储区没有计划内的配电操作,但相邻区域的施工队曾在该时段使用了一台大功率焊机,可能导致了邻近线路的短暂电压波动。回复的末尾附了一段施工日志的截图,记录了焊接作业的起止时间和设备参数。陆维桢看完回复后,将咨询回复的内容和截图添加到了离线事件日志的附件中,在日志正文中标记为“与相邻区域施工用焊机电压波动时间窗口重叠,推测为关联原因。“ 晚间的监测时段内,三个记录器的状态指标保持在正常范围内,没有再出现离线或信号中断的情况。信号的强度曲线和存储余量保持在各自的区间内,与以往的变化趋势一致。摄像头的日间模式已经切换到了夜间模式,画面中的明暗分布和之前几晚一致。 周四上午,陆维桢把本周的观察数据整理成了新的日志文件,以日期和观测时段为文件名,储存在操作窗口记录的对应文件夹中。他在笔记本中为下一轮可能的操作窗口做了一个备注,没有添加具体日期或时间。 午间过后,加密平板电脑在桌面上收到了一条新的消息。消息来自外围组,是关于一次未经登记的车辆在排水沟路段附近的动态。该车辆在当天上午曾短时停靠在排水沟路段的路边,停在停车线内,与市政车辆外观一致。车辆与排水沟格栅之间至少有约三米以上的间距,期间没有人员下车接近格栅或盖板。陆维桢阅读完后,在笔记本的空行中记录了该车辆的出现情况和位置,然后在相同位置补充了“未接近记录器“几个字,作为对该记录的补充说明。 “市政车辆外观,停车在停车线内,无人员下车接近格栅。“他在日志中为这条记录添加了备注,并注明“不属于操作员行动,无关联性“。 当天的剩余时段,三个记录器的状态持续稳定,没有再出现供电中断、信号异常或画面变化。窗外光线在下午时段保持着均匀的日间亮度,傍晚开始逐渐减弱,在接近落日的时段内,窗玻璃表面的反光从室外的天光逐渐过渡为室内灯光的倒影。 陆维桢在晚上关掉工作站的主屏幕之前,快速扫了一眼三个记录器的实时状态界面,检查了当前三个设备的存储余量是否仍然充足,确认供电指示正常。他将摄像头的画面窗口缩小了一半,使波形图和频谱图各有相应的显示区域。然后他关掉了工作站的主屏幕电源。操作台桌面上只剩加密平板电脑屏幕的微光还在亮着,将键盘边缘和鼠标垫的轮廓从桌面的阴影中分离出来,保持着一小块亮区,没有扩展。 第77章 余线 周五上午,陆维桢重新打开了操作窗口结束后的全部日志记录,按照时间顺序将离线事件、市政车辆停靠记录、电源自检序列和路段的监控摘要排列在同一时间线上。离线事件发生在一个完整的操作周期末段,市政车辆的出现与操作员行动时间线之间的间隔也处在自然变化的范围以内。他没有重新打开任何一个单独的日志文件进行比对。 顾晏在上午时段做了一次日志文件的保存和备份,将离线事件前后的波形数据和画面片段从主记录器的存储区复制到了外置存储设备中。复制完成后,她检查了外置存储设备的剩余空间,将其放回设备架侧面的密封柜中,关上了柜门。 中午前,加密平板电脑上出现了一条来自外围组的新消息。消息显示航空动力研究所的弱电间在当天上午的例行巡检中发现了一组以前不在记录中的散热风机,其安装位置靠近配电箱侧壁,通过一根临时性的线缆与配电箱内的备用电源接口连接。风机已经停止运转,摸上去外壳温度接近室温。外壳表面没有贴任何设备标牌,也没有在巡检记录中出现过对应的维护编号。巡检人员拆下风机后,在线缆末端发现了一个与配电箱内部布线规范不符的接头类型——这种接头与某类便携式信号设备的供电线缆通用。 陆维桢读完消息后,在笔记中添加了一条关于弱电间新发现的备注:“弱电间配电箱侧壁发现一台未登记在册的散热风机,线缆接头类型与某类便携式信号设备兼容。该设备没有出现在之前的巡检或维护记录中。“ 顾晏从工作站前侧过头来,看了一眼平板电脑上的消息内容。她的视线在新发现的风机图片上停留了一会儿,然后收回到自己的工作站屏幕上,没有发表任何意见。 陆维桢在笔记本中把弱电间的新发现与廖维在弱电间的活动记录放在了同一页上。他在两段记录之间留出了一行空白,没有画连接线或标注注释。 下午两点左右,周承岳从楼上下来,手里拿着一份打印出来的弱电间配电箱布局图。图纸上用蓝笔标出了新发现风机的位置,在配电箱外壳的侧壁上,靠近底部,与线缆入口之间的直线距离适中,不与配电箱内部的既有组件重叠。他把布局图放在操作台上,没有用额外的物品压住。 “风机被拆除后没有留下明显的安装痕迹。“周承岳在操作台侧面站定后说,“固定风机的双面胶带残留量少,拆的时候几乎没有残胶,螺丝没有拧动的迹象。“ 陆维桢看了一遍布局图上的标记。风机的位置位于弱电间配电箱侧面朝向墙面的那一侧,从正面看不到。如果风机本身不是用来调节温度的,而是一种线缆末端设备的伪装,那被伪装的对象可能不是散热风机本身,而是与之相连的其他组件。他根据安装位置对应的空间和线缆走向,确认了风机与配电箱内部备用电源之间的连接通道是一条无障碍的路径,沿途没有经过任何阻挡物。由于该空间内没有放置其他设备,这条路径保持畅通,也没有被其他物体遮蔽。 “风机本身可能不参与散热。它可能是一件外观伪装。“他在布局图的边角处写道,“它的核心功能是利用线缆穿过配电箱壁上的预留孔,进入弱电间内部的通信管线,使其与相关设备之间建立可用的通信链路。目前还没有办法确认这条链路是否连通,或者它是否已经用于传输。“ 周承岳拿起布局图,折叠后放回了夹克内袋。他在操作台旁边多站了片刻,看了一眼窗外的光线状况,然后转身沿着走廊向出口方向走去。弱电间的新发现已经在他的记录中有所体现,他将该信息作为弱电间的异常设备记录,标记为“已拆除,待进一步确认“,没有给出日期或行动指示。 当晚,加密平板电脑在八点前后收到外围组发来的最新监测数据。排水沟路段在当天下午至傍晚时段没有新的车辆停靠记录,h区三个记录器的信号状态正常,没有离线和中断的报告。陆维桢浏览完监测数据后,将内容总结为一句简短的话记录在日志的末尾:“当日无异常。弱电间发现未登记设备一件,已记录。“ 第78章 定风 弱电间的未登记风机被拆除后,其安装位置的照片和线缆接头类型的详细描述在当天晚些时候被转发到了陆维桢的加密平板电脑上。他在操作台前把照片放大到满屏,观察了风机外壳与配电箱侧壁之间的贴合状态。双面胶带的残留量极少,在照片中几乎看不出痕迹,四个固定螺丝孔位周边的漆面也没有被拧动过的磨损或压痕。 “安装方式用了双面胶带和少量固定螺丝,螺丝只是辅助固定。“他在笔记本中记录了这个观察结果,“螺丝的拧紧程度很低,没有在漆面上留下明显的压痕。拆除时几乎不会留下痕迹,说明安装者希望未来拆除时不被发现。“ 顾晏在第二天上午从工作站前站起来,走到操作台旁边看了一遍照片。她的视线停留在线缆接头的那张特写上,看了一会儿后说:“接头型号和弱电间现有设备的标准接口不完全匹配。它更接近某型便携式频谱分析仪的供电接口。“ “便携式频谱分析仪。“陆维桢重复了一遍这个名词,“弱电间内如果有操作员使用便携式频谱仪检查通信线路,风机的伪装外壳可以在巡检过程中为频谱仪等设备提供隐蔽的测试接入点。如果风机本身只是一个外观伪装,真正的设备在拆除时已经被移走了。“ 他在笔记本中为这个推断添加了一行备注:“弱电间的伪装风机可能为操作员提供了隐蔽的设备测试和信号检查的端口。它的存在意味着在研究所内部还有可用的接入点,而且该接入点的存在形式与廖维的常规操作路径不同。“ 周承岳在上午晚些时候进入大厅。他在操作台旁边停下,从夹克侧袋里取出了一张折叠过的打印纸,展开后放在操作台桌面上。纸上画着弱电间配电箱附近的线缆走向草图,草图上用虚线标出了风机线缆在配电箱内部连接的那组电源接口的路径,虚线沿着配电箱内壁延伸后接入了一根沿墙脚敷设的数据线缆,然后通过地面线槽进入了弱电间走廊方向的通信管道。 “风机线缆在配电箱内部连接到备用电源接口,同时也与一根数据线缆相邻。两根线缆在配电箱内部有一段约二十厘米的并行路径,然后分别进入不同的线槽。“周承岳把图纸上的信息做了补充说明,“备用电接口和弱电间的通信管道之间,通过并行路径存在物理邻近关系。“ 陆维桢听完后,在操作台前保持了一段时间的静止。如果风机线缆同时与数据线缆的走向有物理邻近关系,那它的功能可能包括为某些测试设备提供临时接入,而不需要直接连接到数据线缆内部。 “线缆并行路径如果被测试探头夹住或者用感应式探测设备接触过,“陆维桢说,“就可以在不切断或接入数据线缆的情况下对通信管道的信号传输特性做快速评估,不需要接触内部线缆,也不需要破坏线缆的绝缘层。安装者留下了测量信号的条件,但没有留下固定的数据窃取装置。“ 周承岳站在原地,目光落在操作台台面上。他把纸叠好,放回了夹克袋中,没有将纸留在桌面上。 当天下午,陆维桢在笔记本中建立了一个新的文件夹,将弱电间伪装风机的照片、线缆走向草图和接头特写归入了同一文件夹中,与廖维的弱电间访问记录存放在同一个上级目录下。文件夹的名称以“弱电间-附加设备“开头,后跟发现日期和“已拆除“的状态标识。 临近傍晚,加密平板电脑收到外围组对弱电间风机拆除后的后续监测报告。报告显示在风机拆除后约四十八小时期间,弱电间的通信管道周围没有出现新的信号或设备安装痕迹,配电箱侧的散热风机位置保持了拆除后的清空状态,没有被新的组件替换或复原。报告末尾的备注栏对过程做了一段概括性陈述,总结了观察期间的累计情况。 陆维桢在日志中记录了这一事件的发展:“弱电间伪装风机拆除后约四十八小时,配电箱侧无新的设备安装。通信管道周围未检测到信号变化。当前结论:风机为独立安装的测试端口,拆除后未启用替代设施。后续观测仍将继续。“ 第79章 偏流 弱电间伪装风机拆除后的第七天,物流园中继器的信号状态出现了一次新的变化。陆维桢在加密平板电脑上查看实时状态时注意到,物流园中继器的自动回传数据包在当天凌晨发送了一次额外的心跳信号,发送时间与常规心跳周期不一致,位置偏离了预定的触发窗口。信号本身的格式没有异常,但它的发送时刻与常规记录之间偏移了约四小时。 他把心跳信号的发送时间与操作员的行动记录、仓储区的离线事件、以及弱电间风机的拆除时间放在同一条时间线上比对,没有发现重合点。心跳信号的偏移没有伴随其他节点的变化,也没有触发任何告警或状态更新,只是孤立地出现了一次非周期的心跳。 “物流园中继器今天凌晨发送了一次非周期心跳。“陆维桢在日志中记录了该次事件,“发送时间偏离常规周期约四小时,无伴随数据包或状态变化。原因暂未确定。“ 顾晏在上午时段调出了物流园中继器过去一周的心跳记录,与非周期心跳出现前后的波形做了比对。非周期心跳的信号特征和常规周期一致,仅发送时间偏移。信号幅值、频率和持续时间都维持在与常规心跳相同的参数范围内。她在工作站上截取了非周期心跳的波形图,将其与常规心跳波形叠加后,两条波形曲线之间没有表现出可区分的差异。 “信号特征一致,不是硬件故障产生的异常信号。“陆维桢看了一遍波形叠加图,“如果中继器本身在按标准参数发送信号,那它的发送指令来自外部——可能是有人远程触发了手动心跳,也可能是在某处执行了重新同步操作。“ 他在笔记本中为这个事件添加了一条备注:“物流园中继器非周期心跳,可能由远程指令触发,也可能由附近场地的电磁干扰或信号反射导致。“ 当天的状态界面和信号接收模块都显示正常,物流园中继器的状态栏在非周期心跳之后恢复到了绿色标记。 在接下来的几天里,物流园中继器没有再出现非周期心跳信号。g区和h区的记录器运行正常,波形图和画面中没有操作员的活动迹象,设备和信号都维持在待机或标准传输状态。弱电间配电箱侧的安装位置也在持续清空,没有新的组件出现或替代安装。当前的时间点位于两操作窗口之间的过渡期,还没有进入下一轮预测窗口的前置范围。 陆维桢在这段时间内把物流园中继器存储卡的数据结构重新浏览了一遍,在索引层的子目录列表中,物流园中继器的文件系统中出现了一行新的子目录标识,位于索引层的一个下级分支中。他打开该子目录的内容列表,发现其中包含了一组配置文件的备份副本——副本的修改日期与g区记录器的最后一次操作时间重叠,内容与原始配置文件一致,没有发现改动或参数更新的痕迹。他把这个发现记录在物流园中继器的文件夹中,标注为“备份副本与g区操作时间重叠,内容相同,未发现差异。“ “物流园中继器的文件系统中存在一个备份副本。“他在日志中写道,“副本的修改日期与g区最近一次操作时间重叠,内容与主配置文件一致。“ 下午临近五点时,加密平板电脑收到了外围组对物流园中继器附近道路的监测摘要。摘要显示在非周期心跳出现的当天凌晨,物流园外围的街道上曾有一辆箱式货车停在距离中继器所在位置约三十米的路边。停车时间约持续了十二分钟,期间没有人员下车,车辆在出发时按普通路线行驶,没有异常加速或绕行,在路口处右转进入主路后驶离。陆维桢看完摘要后,在物流园中继器的日志中添加了这一信息,注明“车辆停留时间约十二分钟,与心跳偏移时间窗口有重叠。目前仅为时间关联,未发现直接物理接触的证据。“ 他把平板电脑的屏幕关闭,放回桌面的充电座上。记录器的实时状态界面仍然以绿点在屏幕顶部位置稳定显示,波形图在基线附近保持平坦,没有新的信号出现。物流园中继器的状态栏在非周期心跳之后恢复到绿点状态,没有再出现异常标记或状态切换。 窗外的天光在他完成这些操作时已从午后的明亮转为傍晚的平光色调。没有新的提醒或消息在屏幕上的消息栏中显示,也没有新的日志需要添加或修改。他向窗外看了一眼,窗面上正反射着室内照明灯均匀分布的光线,在窗玻璃的表面形成一片覆盖全幅的暖色反射区。他的视线在窗面的灯光倒影上停留片刻,然后收回到操作台表面。键盘上方的指示灯以稳定的速率间歇闪烁,像一组均匀分隔的标点,在桌面上留下一连串间距固定的亮痕,每一道亮痕都在出现后以相等的间隔消失,然后在下一次闪烁时重新亮起。 第80章 示警 键盘上的指示灯在持续闪烁之后,于傍晚的某个时刻归于稳定。陆维桢的视线从窗面收回后,没有再次抬头。他拿起桌面上那台加密平板电脑打开了物流园中继器的实时状态界面。非周期心跳出现之后,中继器的状态栏一直维持绿色,没有再次偏离常规周期。他关闭界面后把平板电脑放在充电座旁边,没有做进一步的查看。 天色在晚间完全暗下来之前,顾晏在工作站前保持了一段时间的安静操作,随后她将物流园中继器在非周期心跳前后的数据包日志做了第二次对比,将常规周期心跳的定时参数与非周期心跳参数做了逐项比较后关闭了窗口,重新将工作站置于等待状态。 第二天上午,陆维桢在工作站前打开物流园中继器的数据包日志,查阅了该次非周期心跳信号的完整数据包内容——除了时间戳和标准信令字段外,数据包的末尾出现了三个数值字节。三个字节的数值与中继器常规心跳的数据包末尾数值不同,多出了三个额外的字节。他回到以前的记录,把过去一周的非周期心跳和常规心跳从数据包字段中提取出来,逐一核对了末尾字节的数值差异。非周期心跳在这组额外字节上出现了三个新增数值,常规心跳中没有出现过对应的字节或数值序列。 “非周期心跳的数据包末尾多出了三个数值字节,常规心跳中没有出现过。“他在笔记本中记录了该次检查的结果,“三个字节的数值与物流园中继器的标准心跳格式不一致。内容可能来自手动操作时输入的标记字段,也可能是远程触发时附带的状态参数。“他在笔记本中为该记录添加了一行备注,注明“数据包末尾新增三个字节,功能未明,推测为标记字段或状态参数。“ 午饭时段,陆维桢独自留在操作台前,看着工作站上物流园中继器的状态监控界面,物流园中继器的状态栏从绿色无异常切换到了黄色待确认的标记状态。他将物流园中继器暂停的数据流调回常规传输状态。物流园中继器在几分钟后恢复了常规心跳,没有出现额外的信号或异常波动,它的状态栏也恢复到绿色标记。 顾晏回来后,陆维桢把非周期心跳数据包末尾新增三个字节的发现说了一遍。顾晏听完后走到工作站前,在搜索栏中检索了相同字节序列在过去的记录中是否出现。搜索结果显示在过去的记录中,同一字节序列也曾在某些较早的日志条目中出现过,时间范围在几个月之前。 “同一字节序列曾在较早的日志中出现过。“陆维桢在笔记本中补充道,“时间范围在几个月前,早于当前监测周期。该字节序列可能属于物流园中继器的旧版状态标记,或者是操作员使用的标识符,最近重新在传输中出现。“ 下午的监测时段,物流园中继器维持在常规心跳状态,没有再出现偏移或异常。h区三个记录器的状态也保持稳定,摄像头的画面中盖板和格栅在黄昏的过渡光线下保持着正常的明暗分布,声音记录器的波形图在午后的自然噪音变化中保持平坦的基线运行状态。 他在笔记本中把h区和物流园中继器的记录分放在相邻的两页上,两组记录之间的关联目前还没有出现在同一页面上。物流园中继器非周期心跳数据包末尾新增的三个字节,与航空动力研究所弱电间发现的未登记风机的线缆走向草图,在白板的表面上以相隔一段距离的方式分别记录着,各自待在该时间段的位置上,尚未被任何线条连接。 第81章 同源 陆维桢的视线落在笔记本相邻两页之间的空隙处,保持了一段时间的静止。然后他合上笔记本,拿起加密平板电脑,重新打开了物流园中继器非周期心跳的数据包日志,把末尾三个字节的十六进制数值单独截取出来,输入到工作站的文件检索系统中,搜索范围扩大到所有已采集的数据源。搜索结果在几秒后返回——同样的三个字节数值在航空动力研究所弱电间终端后台进程的配置文件中也出现过一次,位置的偏移量在配置文件的末端区域。 他把三个字节与机场地勤车辆的识别码进行了匹配。同一组数值在弱电间终端进程配置文件的末端区域出现了,说明不是随机噪声或者偶然吻合,更可能是同一次系统部署时写入的标记字段,被保留在了中继器和终端两处。 “三个字节出现在物流园中继器非周期心跳的数据包末尾。同一组数值也出现在弱电间终端进程配置文件的末端区域。“ 顾晏听见后侧过头来看了一眼屏幕上的检索结果。她没有接话,但她在工作站上打开了一个空白的文本编辑窗口,输入了三个字节的十六进制数值,并在数值下方标注了出现位置:物流园中继器非周期心跳,以及弱电间终端配置文件。她在两个标注之间留出了一行间距。 陆维桢打开弱电间终端配置文件的完整内容,用十六进制编辑器查看了末端区域的结构。三个字节出现的位置在配置文件末端区域的最后一个数据块和文件结束标记之间,与之前物流园存储卡中未注册数据块的存储位置相似。不同之处在于,物流园存储卡的数据块是完全未注册的,而弱电间终端配置文件中的这三个字节位于文件的官方数据边界以内,只是处于末端区域的尾部位置。 “同样在末端区域,一个在文件边界以外,一个在文件边界以内。“陆维桢把两处位置的偏移量做了对比,“物流园中继器的非周期心跳数据包可能是在系统部署时生成的,而这个标记字段被复制到了其他设备上,作为标识使用。它在两个设备中使用了相同的数值,可能是用来标识它们属于同一组部署批次或同一操作流程。但这两个数值相同的位置在同一个数据块的相邻位置出现,暗示它们在部署时可能被写入了同一份基础模板。“ 他在笔记本中为这个发现添加了一行记录:“三个字节的数值在物流园中继器和弱电间终端中同时出现,表明它们可能使用了同一份基础配置模板。非周期心跳的额外字节可能是配置模板中的特定字段,在常规心跳中通常不会发送。这次的发送可能是由于操作员在测试过程中触发了该字段的传输。“ 周承岳在午间进入大厅,把一张打印好的物流园中继器外围通信基站位置图放在操作台桌面上,用手机指了图中用红圈标出的基站位置。图中标注了四座基站,其中一座的位置在物流园中继器安装位置东北方向,与中继器之间有一条直线通路。周承岳看了陆维桢和顾晏几秒,没有进一步的补充说明,放下图后离开了。 陆维桢在操作台前把基站位置图和物流园中继器的信号覆盖范围做了叠加。红圈标注的那座基站的覆盖区域包括物流园中继器的位置,信号路径上没有任何自然障碍物或人工阻挡,存在一条直射路径。他把这座基站的坐标记录在物流园中继器的文件夹中,标注为“通信覆盖范围与中继器位置兼容,可作为信号来源参考。“ 他把打印好的基站位置图折叠后夹在笔记本中,接着把三个字节的数值关联扫描的结果重新浏览了一遍,确认没有遗漏其他文件中的相同数值。扫描结果显示,三个字节没有出现在物流园中继器存储卡主数据区的其他位置、h区记录器存储区、以及航空动力研究所门禁系统或考勤记录中——仅有物流园中继器非周期心跳的数据包和弱电间终端配置文件两处匹配。他去掉了最后一条关于扫描范围的备注,然后关闭了工作站的显示窗口。 第82章 同源 关闭工作站的显示窗口后,陆维桢没有离开座位。三个字节出现在两个不同设备中的事实已经确立,但它的来源和意义还需要与其他已知信息建立联系。他打开笔记本翻到记录固定板加工单和廖维在航空动力研究所的采购记录那一页,把这三个字节的数值写在页面的边角处,与固定板加工单上的供应商编码放在同一行。 他用笔在两个编码之间画了一条短横线,然后合上笔记本,把笔放回桌面上。 加密平板电脑在当天下午晚些时候收到了一条来自航空动力研究所后勤系统的数据包。数据包内容是廖维在过去几个月内经手的设备配件采购清单。清单按时间排序,起始日期在几个月前,结束于最近一次操作窗口结束后的第三天。清单中有几项配件的编码与固定板加工单上的供应商编码格式一致,同属一类分类编码体系,编码的数字部分在三位数的长度范围内,与三个字节数值的数字部分位数相同,均为三位数。 陆维桢阅读完采购清单后,在笔记本的采购记录页上新添了一行,将配件编码与三个字节数值的数字部分并列在同一行中。配件编码的数字部分与三个字节的数字部分在数值和位数上均存在重合。重合度接近,数值范围相同,均为三位数,属于同一位数范围。他在笔记本页面的边角位置写下了一个简短的计算结果:配件编码与三个字节数值属于同一数值范围。数值范围相同,位数相同,不排除存在某种编码关联的可能性。 当天晚些时候,顾晏在工作站的搜索栏中输入了三个字节数值的完整十六进制组合,将搜索范围限定在已采集的数据源中。搜索结果显示在指定数据源中没有找到该组合在其它位置的记录,也没有出现在其他位置。 “只在两处出现。“她关闭了搜索界面,“一处是物流园中继器的非周期心跳数据包,另一处是弱电间终端配置文件的末端区域。数值组合在两处出现,没有出现在任何其他位置。“ 陆维桢把笔记本翻开到标注三个字节的那一页,在三个字节下方写下了“物流园中继器“和“弱电间终端“两个位置的名称,在中间加了一条连接线,又在连接线的中央位置写了一个“配置模板“的标注,作为一个临时的标记留在页面中央,靠近连接线的中点。 傍晚时分,周承岳从楼下进入大厅,把一张打印出来的航空动力研究所弱电间线缆走向图放在操作台桌面上。图上标出了弱电间配电箱侧壁的线缆走向,以及与之相邻的通信管道的位置关系。风机拆除后没有被新的设备替代,安装位置的周边保持清空状态,没有新的接头或线缆接入。他在图边角处的空白位置加了一个短横线标记,然后在走向图的一角,标注了三个字节数值出现的位置。 周承岳收起笔后,把笔放回口袋。他站在操作台侧面,等了一段时间,但在场的人都没有向他提问。他转身沿着走廊向大厅出口方向走去,脚步声在走廊尽头的电梯处逐渐减弱直至消失。 夜幕降临前,陆维桢在笔记本中添加了一条关于三个字节数值的新记录,注明该数值在航空动力研究所后勤系统的配件清单中找到了对应的编码。两个编码所属的体系一致,数值范围对应。他在记录末尾加了一行备注:“数值关联成立,属于同一编码体系。作为节点间的关联线索保留,暂不确认功能意义。“他用铅笔在笔记本的边角处为三个字节数值与配件编码之间的关联关系标注了一个时间标记,然后合上了笔记本,关闭了工作站的显示窗口。 第83章 层叠 第二天早晨,陆维桢重新打开笔记本时,铅笔标注的时间标记旁边的页面留白处已经空了一整夜。他把笔记本翻到标注三个字节数值与配件编码关联的那一页,看了之前写下的两行字。数值和编码在同一页上以清晰的方式排列着,中间用一个短横线连接,横线两端分别指向两处不同的来源,各自保持着独立的标识性。 他合上笔记本,从抽屉里取出加密平板电脑,打开了航空动力研究所后勤系统配件清单的原始文件。清单按照采购时间排序,每个配件条目都带有供应商编码和对应的采购编号。他在清单中按一定的时间顺序查看了后续几个采购条目,其中有一部分配件的编码格式与三个字节数值的编码格式一致,属于同一数值范围。编码的数值分布在三位数的区间内,从九十几到两百多,分布在整个区间的不同位置,没有明显的数值跳跃或空白段。 “配件清单中有多个编码与三个字节数值属于同一数值范围。“他在笔记本的记录页中新加了一行,“编码分布范围在三位数区间内,涵盖从九十到两百多的多个数值。“ 他在笔记本边角处为这条发现添加了一个时间标记,然后关闭了平板电脑。 顾晏在上午从设备架前走过来,坐在工作站前打开了过去一周h区记录器的波形图。波形图在非操作窗口期内保持平稳基线。她将波形图的显示时间范围向前扩展了几天,扩展后的波形图显示了在非操作窗口期内出现了一些极低幅度的波动,位于阈值以下,形状不规则,没有明显的重复周期,分布在波形图的一些孤立点上。她没有将其标记为异常或记录,也没有做出标记。 “记录器在过去一周的非操作窗口期内捕捉到几组极低幅度的波动。“她把波形图的显示范围恢复到原始参数后说,“波动幅度位于阈值以下,没有重复周期。可能来自建筑结构的热胀冷缩,也可能来自供水管道或地下管线的运行噪声。“ 陆维桢没有立即回应。他的视线落在物流园中继器非周期心跳的日志条目上,在日志条目的旁边,他写下了一个短句:“三个字节数值与配件编码同属同一数值范围。弱电间风机拆除后约十天没有出现替代设备。“他看了看自己写下的这两个短句之间隔着的横向距离,然后合上了笔记本,把笔放回桌面上。 当天下午,加密平板电脑收到了一条新消息。消息来自外围组,内容是排水沟路段当天下午到傍晚时段的交通流量监测摘要。摘要中列举了该路段在当天下午至傍晚的车辆通行数量、平均速度和车辆类型分布。在这些数据中,有一辆深色轿车的通过时间和速度被单独列出,通过时间位于数据记录的中段位置,略早于晚高峰开始的时间,车速略低于该路段的平均速度。数据记录没有显示该车在该路段进行过绕行或折返。 陆维桢看完摘要后,在笔记本的一页空白处添加了一条记录:“当日傍晚,排水沟路段有深色轿车低速通过一次,速度略低于平均。未做停留或折返。“他在这条记录下方画了一条短横线,与上面关于h区的记录之间保持着一小段间距,没有用线条或符号将它们连接起来。 傍晚,他在加密平板电脑的储物格中翻出了一份h区设备图纸的硬拷贝,图纸纸张的边缘已经有些卷曲。他把它摊开在桌面上铺平,查看h区机电小室的平面布局。在图纸的角落处,他发现了一处之前没有注意到的细节——在机电小室的外墙标注栏中,有一段手写的补充说明,字体很小,位于外墙的夹层构造说明的末尾位置。补充说明的文字内容是:“该区域设有预留线槽,以供应急通信线路使用。“ “预留线槽。“他在图纸的该位置用铅笔画了一个小圈,并在附近写下了“未使用“三个字。 窗外的光线从午后的明亮转向傍晚的平光色调时,陆维桢仍坐在操作台前,手中的铅笔保持着与图纸接触的姿势。图纸上的小圆圈在页面上与周围的线条和注释保持着固定的相对位置。他的铅笔停在图纸边缘外约两厘米处,没有在图纸上落下新的线条,它离图纸边缘的距离约为两厘米,与笔身之间有一段连续的无标记区域。 第84章 线槽 铅笔在距离图纸边缘两厘米的悬停位置保持了大约几秒后,被放回了桌面上。陆维桢的视线没有随之移开,仍然落在那段手写的补充说明上——“该区域设有预留线槽,以供应急通信线路使用“。手写字迹与图纸上其他标注的笔迹一致,说明它是在图纸绘制或审图时写下的,不是后来添加的修改记录。 他把图纸拿到灯下,迎着光线看线槽标注对应位置的建筑结构层次。线槽在剖面图上没有对应的详细截面,只在平面图上标注了一条虚线,虚线起始于机电小室的外墙根部,然后向建筑物北侧延伸,在到达外墙之前的一段距离处分叉为两条走向,一条转折为横向,另一条继续向侧面延伸。虚线在图纸上穿过一段墙体标记后,消失在墙外侧的标注区域边缘。 他放下图纸,在笔记本中记录了线槽的走向和分叉情况。“h区机电小室图纸显示外墙根部设有预留线槽,走向分为两支:一支在墙体截面中转向横向,一支继续向侧面延伸,在墙外侧区域标注中消失。“他在记录末端加了一条备注:“线槽在平面图上显示为虚线标注,实际施工状态未经确认。“ 顾晏在当天晚间从设备架前走过时,她在操作台边停下看了图纸上被铅笔圈出的区域一眼,但她的手没有接触图纸。她站在图纸侧面,只看了那个标注几秒,然后走回工作站前,没有在图纸上留下新的标记。 第二天早晨,陆维桢在加密平板电脑上打开了h区机电小室的建筑竣工图电子版,与纸质图纸做了对照。电子版图纸的标注更完整,在线槽的消失位置标注了一段文字,位于墙体以外的空间,内容是关于雨水排水系统与电气管沟之间的隔离层的施工说明。线槽在平面图上所走的路径,是沿着一道现浇混凝土墙的内壁敷设,与外墙之间的间距不大,大约可以容纳一条直径五厘米左右的管线或线槽。他在电子图纸上将该线槽的走向路径截图保存,存放到了h区文件夹中。 “线槽沿现浇混凝土墙内壁敷设。外侧与外墙相邻,间距与一条直径约五厘米的管线或线槽的截面尺寸相当。“他在h区文件夹中为该截图添加了一条描述性说明。 下午时段,外围组对h区机电小室周边区域的现场观察传回了结果——在机电小室北侧外墙脚附近有一处水泥修补的痕迹,面积约二十乘三十厘米,颜色比周边略深,表面抹平的压纹与周边地面的纹理有细小的差异。修补的位置和线槽在图纸上穿过外墙的位置接近,但不完全重合。观察结果附有一张从约两米距离拍摄的照片,修补区域在新旧颜色的过渡处形成了一道边缘清晰的界线。 陆维桢在笔记本中为这张照片添加了一条记录:“机电小室北侧外墙脚有一处水泥修补痕迹,面积约二十乘三十厘米,位置与线槽穿过外墙的图纸位置相邻但不完全重合。修补区域表面压纹与周边地面存在差异。“ “修补位置在墙面根部。“他在记录末尾补充了位置说明,“与图纸线槽标注区域的偏移量在约半米以内。“ 当天晚上,陆维桢把线槽的走向以示意图的形式画在了白板上的空白区域——一条虚线从机电小室的根部位置向建筑北侧延伸,在接近外墙处分叉为两支,一支转折为横向,另一支继续延伸至外墙外侧,在外墙位置做了一个标记。他画完后放下笔,退后一步,与白板保持了一定的距离。他站在工作台侧面,距离白板大约一臂的长度,在白板左侧的白色表面与右侧的屏幕灯光之间的过渡区域内保持静止。两条虚线在图中保持着平行的走向,在接近外墙面时没有会合或交叉。 第85章 封口 白板上的两条虚线在灯下保持着各自独立的位置。陆维桢站在距离白板约一臂的位置没有移动,目光沿着虚线的走向从机电小室根部开始,经过外墙标记点,最终停在外墙外侧的区域。虚线在标记点之后没有继续延伸,停留在图纸信息的边界处。 他回到操作台前,把那张水泥修补痕迹的照片调出来,放大了修补区域和周边地面的过渡部分。新旧水泥之间的分界线在放大后的画面中呈现出细微的锯齿状边缘,像是修补时没有完全清理旧面的边缘,导致新水泥与旧面之间形成的接触面上留下了不规则的间隙线。他测量了照片中修补区域的长宽比例,记录为近似方正,边角处的线条走向略微弯曲。 他合上照片,在笔记本中补充道:“修补区域表面平整,但新旧接触面的结合边缘存在微小间隙,不排除可开启的可能。“ 顾晏在次日早上走过了白板前,她的视线在两条虚线上停了一下,然后移动到外墙标记点,但没有停留或伸手触摸白板表面。她转身走向工作站,调出了h区建筑物竣工图的外墙剖面图,找到了与线槽走向对应的截面位置。剖面图显示,外墙在该位置的构造分为内外两层,中间有一道约二十厘米的间隙,内部填充了轻质保温材料。保温层内部没有画线槽或管道,保温层和外墙内壁之间存在一段连续的填充层,既没有线槽,也没有管道。 “外墙夹层中没有画线槽。“顾晏把剖面图显示在屏幕上,“但图纸没有说明保温层的填充方式,也没有注明是否存在未标注的空腔。“ “填充层中间有一道二十厘米宽的间隙。“陆维桢在记事本中写道,“外面是外墙内壁,里面是轻质保温材料,线槽可能夹在两者之间的空隙处。“ 当天下午,外围组对水泥修补区域做了进一步的近距离观察,并带回了一块从修补区域边缘取下的水泥样本。样本来自修补区域与旧地面的交界处,大小约两厘米见方,颜色浅灰,颗粒均匀,强度中等。取样过程中没有发现修补层下方有覆盖物或固定螺栓。修补层的厚度约三到四厘米,下方是旧的水泥基层,新旧两层之间有一层极薄的灰尘带,像是一直存在于表面和基层之间的空隙内。灰尘带的颜色比基层略深,分布均匀,没有明显的压实痕迹。 “修补层下方有一层灰尘带。“他在笔记本中写下这一发现,“灰尘带分布均匀,没有压实痕迹,说明修补层下方的空间在被封闭前一直是空旷的。“ 他把样品和取样位置的编号记录下来,然后放入了工作台侧的收集盒中。 傍晚,陆维桢在白板上把线槽的走向做了最后一次确认,并在外墙标记点周围画了一个小圈,在圈内写了“灰尘带“三个字。他退后半步,检查了虚线、小圈和文字标记之间的相对位置,没有做额外的调整。 他站在原地,把三个字节数值与线槽走向的关系又做了一次记录。他在笔记本中把这三个项目列为同组,在下面画了一条短横线作为分隔,然后合上了笔记本,把笔放回桌面。 他在原地站了一会儿,目光落在白板表面的标记上。他站了一会儿之后回到操作台前,把加固电脑的屏幕打开,看到h区记录器的波形图在屏幕上保持着与上一次查看时相同的变化幅度和显示范围,位置没有偏移。波形图和三个状态界面的排列位置与之前一致,电源指示灯的位置也在原来的水平线上。 第86章 叠纹 陆维桢的目光在h区记录器的波形图与三个状态界面上依次扫过一遍后,他注意到波形图在过去的连续时间窗口内出现了一组极低幅度的信号波动,幅度低于记录器的判定阈值,但它的出现时间与白板上线槽走向的末端区域存在微弱的对应关系。他把波形图的时间轴调整到与线槽末端区域对应的时段,在相同的时段内,波形图上出现了一组微弱信号,出现的位置不重合,间隔约为几秒,在波形图的刻度线上形成一组间断的标记点。 “波形图上出现了一组低幅信号。“他在日志中记录道,“时间轴与线槽末端区域存在对应关系,但信号特征不属于已知的操作员活动序列。“ 他在笔记中画了一条简易的时间轴,在轴线上标记了信号出现的时刻,间隔排列,然后在该时间轴下方画了一条平行线,对应线槽末端区域的位置。他在两条线之间画了几条短的竖线,竖线的位置与信号出现的时刻对应,但没有连接到下方的平行线。 顾晏在午间时段把h区声音记录器在相同时间窗口内的波形做了检查。她在波形图上找到了一段同样的微弱信号序列,频段与操作员工具操作时的声音频率相同,但幅值和持续时间都远低于操作阈值,更接近摩擦声而不是撞击声或机械转动声。信号序列的时间位置和陆维桢在白板上标注的线槽末端区域的位置之间存在对应关系。 “微弱信号序列,摩擦声特征。时间轴与线槽末端区域对应。“陆维桢把这一发现与白板上的线槽走向做了关联,“可能反映了线槽末端区域存在某种活动,与操作员的操作时间轴不重叠。来源尚未确认,暂不列为操作员活动记录。“ 他在白板上线槽走向的末端区域加了一组小点,与信号序列的时间间隔对应,但没有用线条连接它们。 当天的其他时段,记录器的波形图没有再出现类似的信号序列。他在笔记本中整理了线槽走向、灰尘带和微弱信号序列的相关记录,将它们放在连续的三页上,分别做了描述。 他合上笔记本,把笔放在桌面上,视线在关闭的笔记本封面和加密平板电脑屏幕之间停留了一下,没有打开平板电脑。平板电脑在充电座上的指示灯以均匀的节奏闪烁着。 第87章 续隙 陆维桢在操作台前又坐了一段时间。那段时间内平板电脑的充电指示灯以固定的节奏持续闪烁,在整个过程中没有变化。他把视线从指示灯上移开,打开了笔记本,翻到记录微弱信号序列的那一页,重新看了一遍他在时间轴下方画的几条短竖线。竖线的分布间隔在靠近末尾处略微变宽了一些,他注意到之前没有注意到的细线。他用笔在时间轴的末端画了一个小圈,标记了信号序列最后一次出现的位置。 他把笔记本合上,在合上的页面上方用手指的侧面轻轻压了一下,让它与操作台台面贴合。 第二天上午,加密平板电脑收到了一条来自外围组的新消息。消息的摘要中包含一组附带的日志数据,显示在微弱信号序列出现的当天,物流园中继器的传输记录中出现了一次短暂的暂停,暂停持续的时间窗口与信号序列的第一组信号出现的时间重合。暂停持续的时间很短,仅够数据包完成一次复位或重新同步操作,然后中继器恢复了正常传输。暂停期间没有数据丢失,传输恢复后的数据包编号与暂停前没有中断。 “物流园中继器在微弱信号序列出现的同时发生了一次短暂的传输暂停。“陆维桢在日志中记录了这一关联,“暂停时长与数据包复位或重新同步操作所需时长一致。恢复后的传输没有中断,数据包编号连续。“ 他打开物流园中继器的日志文件,按照暂停发生的时间点找到了对应的记录——只有一行状态更新,内容为“连接重置成功“。没有错误代码或异常标记,状态更新前后的日志条目之间没有出现其他事件记录,处于连贯状态。 “连接重置成功。“他在笔记本中摘录了该条状态更新,“状态前后的日志条目连贯,没有错误代码。重置后恢复正常传输。“ 下午,顾晏对h区记录器在相同时间窗口内的数据做了一次精细化扫描。她把信号序列在时间轴上的位置与物流园中继器连接重置的记录放在同一屏幕上,两组时间点完全对齐。信号序列的起始位置与重置记录的时间戳精确重合,信号序列的结束位置与重置完成记录的时间戳也精确重合。两组时间点的起始和结束一一对应。 “时间完全对齐。“顾晏在屏幕上把两组时间点用高亮标记出来,“信号序列的起止位置与物流园中继器连接重置的起止位置一致。“ 陆维桢在白板上线槽末端区域的那组小点旁边加了一个新的标记,形状和尺寸与之前一样,颜色接近,与原有的小点以相同的间隔间隔排列。他在标记的旁边添加了一行小字:“与物流园中继器连接重置重合。“ 周承岳在傍晚进入大厅,走到操作台侧面。他站在那里,没有急于开口,等了一阵子后,他把一张折叠过的打印纸放在桌面上,纸上是一张物流园中继器在连接重置时段的时序图,图上的时间刻度线已经用红笔标注了重置窗口的起止位置。他在操作台侧面站了一段时间,没有再追加文字或注释,然后转身沿着走廊向出口方向走去。 陆维桢打开图纸,把红笔标注的重置窗口与自己在笔记本中记录的信号序列时间轴做了比对,然后放下图纸,把铅笔放回桌面。他重新打开笔记本,把重置记录与信号序列的重合情况以简短的文本格式记录在微弱信号序列条目的下方。他合上笔记本,将图纸和铅笔放回了原处。 第88章 驻层 笔记本合上之后,陆维桢的手留在桌面上方,没有立即收回。他重新打开笔记本翻到信号序列与重置记录重合的那一页,用铅笔把两组时间点用方括号框了起来。方括号的外沿平行排列,形成了一个小矩形框,框住了时间轴上的全部重合内容。 他在矩形框的下方写了一个词:“同步。“ 然后合上笔记本,把它放回桌面中央。 顾晏从工作站前侧过身,看到笔记本已经合上,没有追问内容。她转回屏幕前,把物流园中继器在连接重置之后一小时的传输记录调了出来,逐帧检查了数据包的序列号和时间戳。传输记录在重置后恢复正常,数据包序列号的连续性一直保持着,中间没有出现丢失。她关掉了这个窗口。 当天下午,陆维桢在加密平板电脑上打开了h区机电小室图纸的电子版,将线槽走向的虚线轨迹放大到了满屏。虚线在图纸的末端区域逐渐变细,在接近消失位置时,虚线的粗细度比起点处减少了约一半。他在虚线变细的位置点了一下,放大了局部区域。在该处有一个极小的文字标注,字体尺寸不到主标注的一半,位置在虚线的右侧,内容是一行简短的施工注释:“该段预留线槽仅在施工期间完成预埋,未纳入竣工交付范围。“ “未纳入竣工交付范围。“他读了一遍这行注释,在日志中记录了该段标注,并注明“线槽末端区域有一行施工注释,说明该段线槽仅在施工期间完成预埋,未纳入竣工交付范围。“ 他在笔记本中摘录了这行注释,在摘录下方画了一条横线。他在横线下方加了一行手写备注:“说明该段线槽可能在竣工后被保留,在建筑投入使用后仍可被启用。“ 傍晚,周承岳再次进入大厅,走到操作台边,他看到陆维桢面前铺开的图纸放大图上显示着那段施工注释的位置。周承岳没有靠近图纸细看,但他停了一下,沉默片刻后开口说了一句话:“那条线槽的施工记录还在。“ 陆维桢抬起头看着他。 周承岳继续说:“施工记录显示线槽在竣工前已经完成铺设,但没有做竣工验收的封口检查。线槽的两端用临时封板封闭,封板的安装记录属于施工期间的临时保护措施,不在竣工验收清单里。“ 陆维桢把笔记本翻开到记录线槽走向的那一页,在“未纳入竣工交付范围“旁边添加了一行新记录:“线槽两端用临时封板封闭。封板属于施工期间的临时保护措施,不在竣工验收清单里。“ 他合上笔记本时,周承岳已经转身向走廊出口方向走去。 大厅里的光线逐渐转暗,窗面上的天光正在消退,操作台上的局部照明灯自动亮起。陆维桢坐回椅子上,打开加密平板电脑,找到周承岳所说的施工记录存档,把线槽竣工前的临时封板信息存入h区设备文件夹中。他在文件夹中新建了一个子目录,命名为“临时封板“,并将该信息放入了子目录的文档中。 窗外的天光已经暗了下来,操作台上的局部照明灯将键盘和笔记本的轮廓投在桌面上,形成一片均匀的亮区,覆盖了笔记本封面和鼠标垫周边的桌面。 第89章 板封 第二天早晨,陆维桢在加密平板电脑上打开了“临时封板“子目录中的文档,把施工记录中关于封板的描述读了一遍。记录显示封板为厚度约三毫米的镀锌钢板,尺寸与线槽截面吻合,安装时用自攻螺丝固定在墙体预埋的钢制框架上,框架四周填充了密封胶来封闭间隙。记录附有一张施工照片的黑白复印件,模糊地显示出封板表面的螺丝排列和密封胶走向。 他看了一遍施工照片复印件,确认了螺丝的数量与记录描述一致,自攻螺丝的间距大致均匀。 “线槽封板为镀锌钢板,厚度约三毫米。用自攻螺丝固定在墙体预埋钢制框架上,密封胶填充间隙。“ 他在工作台前坐了一会儿,合上了平板电脑。 上午,顾晏在工作站前打开了h区记录器的数据存储器,检查了波形图中微弱信号序列出现的位置与封板安装位置的对应关系。信号序列在时间轴上的出现位置与封板安装位置之间没有明确的直接对应关系。信号序列在波形图上的分布位置与操作员活动相关的信号特征也不一致,两者之间存在较大的间隔。 “信号序列的位置与封板安装位置之间没有直接对应。“顾晏关闭了波形图窗口,“间隔较大,信号特征也不一致。“ 陆维桢在笔记本中为这一发现添加了一条记录,没有添加注释。 下午,他重新打开h区机电小室的建筑图纸,查看线槽末端区域的结构处理方式。图纸显示线槽末端所在的墙体在竣工图中的标注为“防火墙“,构造与普通的非承重墙体不同,采用了双层耐火板材中间夹岩棉的复合结构,厚度约三十厘米。线槽末端处于该复合墙体的内部,被封板封闭的位置正好在墙体中间层的岩棉填充区,外面还有一层耐火板覆盖着,在图纸上以虚线表示。 “线槽末端封板位于防火墙内部,外面有耐火板覆盖。“他在日志中记录了该结构层次,“封板处于墙体中间层的岩棉填充区域,外层另有耐火板。墙体为双层耐火板夹岩棉复合结构,与普通非承重墙体的构造不同。“ 他把这些信息添加到了h区设备文件夹中。 晚些时候,周承岳从楼上下来,站在操作台附近。他手里拿着一张从施工档案中找到的封板设计简图。图上标注了封板与墙体预埋框架的连接方式,图底部有一段关于防火封堵工艺的补充说明。说明中注明封板与框架之间的缝隙用防火密封胶填充,密封胶的耐火时限为两小时。简图的绘制日期在墙体施工完成之后约两个月。 “封板与框架之间的缝隙用防火密封胶填充,耐火时限两小时。“陆维桢把这段说明也记录了下来,“封板与墙体预埋框架之间留有防火密封胶层。“ 周承岳把简图留在桌面上,没有要求归还。他站在一旁,看到简图上的各项标注都已经记录在案,没有补充其他要求。 当晚,陆维桢在白板上的线槽走向图旁补充了新的结构信息——在虚线末端的外侧画了一个矩形框,框内标注了“防火墙,双层耐火板夹岩棉,厚约三十厘米“。矩形框的边线与虚线末端的距离和框内的标注位置经过调整后形成对齐。 他站在白板前,把新的结构信息与已有的线槽走向、灰尘带和微弱信号序列记录依次读了一遍,确认了它们目前的排列状态。然后他走回操作台前,关掉了工作站的显示屏幕,只在桌面上保留了一张印有h区机电小室图纸的纸质复印件。 第90章 再勘 纸质图纸在桌面上摊开了大约一夜。第二天早上,陆维桢重新拿起图纸时,纸张的边缘因夜间空气的湿度而微微卷曲,他用手掌压平了图纸的四个角,把它们恢复到平整的状态。他再次查看线槽末端区域的结构标注,把防火墙的构造层次和封板的位置重新确认了一遍。然后他在图纸的边角处写下了当天的日期,在日期后面加了一个词:“核对。“ 他把图纸折叠好放入文件袋中,从设备架侧面取出一只小型工具包,里面装着照明灯、测量尺、手套和一把螺丝刀,螺丝刀的尺寸与图纸上标注的封板螺丝规格相同。 顾晏在他收拾工具包时从工作站前抬起头来。她没有提问,但她的目光从工具包表面移到了他手边的图纸上。陆维桢把工具包的拉链拉好,回看了她一眼,说:“去一次现场,确认线槽封板的实际状态。“ 顾晏听完后也拿了一只工具包和一台记录仪,和他一起沿员工通道向地面走去。 h区机电小室北侧外墙脚的位置在早晨的光线下比在照片中显得更完整。水泥修补区域的表面已经晾干,颜色与周围的旧地面仍有轻微的差异,在自然光下新旧水泥之间的色差比照片中更容易辨认。修补区域的边缘与地面接触处有一道细长的裂纹,宽度不到一毫米,走向基本沿修补区域的边界延伸。 陆维桢蹲下来用照明灯从低角度照射修补区域的表面,光线在地面形成一条水平的亮带。在亮带的边缘,修补区域与旧地面交界处的锯齿状线条比照片中更明显,颜色浅,线条的走向与地面铺设的砖缝方向大致平行,在靠近墙角的位置有一段轻微的转折。他用测量尺测量了修补区域的长宽,宽度与线槽截面尺寸基本相符。 “尺寸一致。“他把测量数据记在笔记本上。 顾晏站在他身后,用记录仪的微距镜头拍摄了修补区域表面的纹理和边界处的细节。她拍了几张照片,把取景框对准了修补区域与旧地面交界处的锯齿状线条,保持了一段稳定的手持距离。 陆维桢从工具包里取出螺丝刀,用小号扁头探入修补区域边缘与地面之间的缝隙,轻轻施加了一点压力。缝隙边缘没有出现位移,水泥块没有松动的迹象。他收回螺丝刀,在裂缝附近的地面上做了一段短暂的观察,然后蹲在原来的位置,用测量尺测了裂缝的长度和走向,将数据添加到笔记中,然后合上笔记本。 他把螺丝刀放回工具包,站起身,沿着外墙脚走向线槽末端所在的位置。他在距离修补区域约两米处停了下来,那里的墙面和地面的交接处有一条纵向的接缝,表面被一层薄薄的涂料覆盖着,涂料颜色与周边的墙面一致。他用照明灯从不同角度照射接缝表面,发现涂料层下方有一道与线槽截面尺寸一致的矩形轮廓,矩形的边缘被涂料填平,在低角度光照下隐约可辨。 “墙面涂料下方有一道矩形轮廓。“陆维桢在笔记本中记录了这一发现,“位于修补区域侧面约两米处,轮廓与线槽截面尺寸一致,表面被涂料覆盖。“ 他用手套的指尖沿矩形轮廓的边缘触摸了一遍,触感平整,没有凸起或凹陷,涂料的表面已经干燥固化,与周边的墙面保持在同一平面上。他在矩形轮廓的位置用手机拍了一张照片,然后收起手机。 顾晏用记录仪的微距镜头拍摄了矩形轮廓的低角度影像,连同修补区域的尺寸数据一起保存下来。她蹲在墙面接缝处,用手套背面擦掉了一小片表面的灰尘,露出更清晰的轮廓线。 “轮廓线的底部有一条细微的水平槽线。“陆维桢蹲在她旁边看到了一条极细的水平线,位置在轮廓线的底部边缘,略微向内凹进,深度约一到两毫米,宽度与线槽的底边一致。 他在笔记本中记下了这一结构特征,把水平槽线的深度和宽度做了测量,记录在相应的条目下方。然后他站起身来,把工具包的拉链拉好,把测量尺放回工具包侧面的隔层中,检查了工具包的开合状态。 两人沿着围墙边返回停车处。上午的光线在返回时略有增强,地面的阴影被逐步缩短,修补区域的色差在强光下略微减弱了一些。陆维桢在离开前回头看了一眼线槽末端所在的位置,墙面的涂料覆盖层在日光的斜射下恢复到了与周边墙面一致的颜色,矩形轮廓几乎不可见,只有在他站过的位置附近还留着他用手套擦掉灰尘后留下的一小块干净的表面,在墙面上与周围的环境形成了一小片与周围颜色不同的区域。他看了一会儿那片区域,然后把目光从墙面上移开了。 第91章 印槽 返回地下三层后,陆维桢没有立即放下工具包。他把包放在操作台旁边的地面上,从侧袋里取出记录仪,把现场拍摄的矩形轮廓和水平槽线的照片传输到工作站屏幕上。两幅图像在屏幕上并列展开,矩形轮廓在低角度光照下呈现出完整的边框线条,水平槽线沿着轮廓底边延伸,与上方涂料覆盖层之间形成了一条微弱的深度分界。 他把修补区域的测量数据和墙面矩形轮廓的尺寸做了对比。两组数据的宽度测量结果一致,位置与线槽截面尺寸相符,数据之间没有数量级的差异。他在笔记中写下了这个对比结果,然后放下笔,在显示屏上查看用记录仪拍摄的矩形轮廓照片,照片上的轮廓线在强光照射下比在现场看时更清晰,矩形的下边缘处,水平槽线的走向与轮廓线完全平行。 他打开h区机电小室的施工记录文档,在线槽部分的描述中找到了关于矩形轮廓和水平槽线的注释——注释位置在文档的末尾处,文字内容简短:“外墙封板处设有安装定位线,位于涂料层下方,深度约二毫米。“注释的位置与图纸上的虚线末端之间存在间距,在文档中作为一条独立的补充说明单独列出。 “外墙封板处设有安装定位线,深度约二毫米。“他在这段描述下面加了一行备注:“定位线形状与线槽截面轮廓一致,位于涂料层下方,可能用于定位后续施工。“ 午间,加密平板电脑收到了一条来自外围组的消息,内容是关于h区北侧外墙的近期热成像扫描结果。扫描显示在外墙封板所在的位置,墙面的热分布与周边墙体存在差异,温差约为零点五度,热量的分布区域和数值在扫描图上显示为一个大小与线槽截面接近的区域。温差在当天下午有所减弱,但未完全消失。 “外墙封板位置的热分布与周边墙体存在差异,温差约零点五度。“陆维桢在日志中记录了该次扫描的结果,“热量分布区域与线槽截面尺寸一致,温差在下午减弱但未完全消失。“ 他关闭了日志窗口,没有在页面中添加额外的标记。 下午,顾晏在工作站前把外墙封板位置的热成像数据和墙面照片做了叠加,两组图像在热成像图上对齐后,温差区域的轮廓与矩形轮廓的边界重合。轮廓线在叠加图上显示为一个稳定的闭环区域,与周边墙体的热分布之间的分界清晰。 “温差区域与矩形轮廓重合。“她在叠加图上标注了边界线,“二者边界完全吻合。“ 陆维桢把这一发现添加到h区设备文件夹中,然后关闭了文件夹窗口。他在笔记本中为外墙封板位置和定位线做了单独的一页记录,在页面底部留出了一段空白区域,暂时没有填入其他内容。 下午晚些时候,周承岳从楼上下来,在操作台前停下,把一张从施工验收记录中复印的h区北墙构造节点图放在了桌面上。图纸上标注了外墙封板与墙体内侧的连接方式,以及封板所在位置的结构层次。图中用一条虚线标出了线槽在墙体内的走向,虚线穿过墙体中间层后到达外墙封板位置,终点处标注了一行文字:“此处设有固定支座,用于线槽端部固定。“固定支座在图中表现为一个简单的支承件,位于墙体的内壁表面,与封板之间有一段短距离的空隙,通过一段与墙体轴线垂直的延伸构件连接到封板的位置,中间没有间隔或过渡标注。 “线槽端部设有固定支座。“陆维桢把该信息添加到线槽记录中,“固定支座位于墙体内壁表面,与封板之间间隔一段空隙,通过延伸构件连接到封板位置。“ 周承岳把图纸留在桌面上,转身走向走廊方向,在走到门框位置时他略微减速,但没有完全停下来。他的步伐保持原有的节奏,穿过门框后走向电梯方向,没有在门框处停留。在他的身影在门框处消失后,走廊里传来了电梯门开启和关闭的提示声。 晚饭后,陆维桢在工作站前打开了h区机电小室的电子图纸,放大到外墙封板所在的位置,用测距工具测量了固定支座与封板之间的空隙距离。测量结果显示两者之间的间隔长度与一台微型信号收发器的长度相近,和之前从物流园中继器存储卡中看到的某类设备的外形尺寸接近。他把测距结果与设备外形尺寸做了对比,两者之间的差异较小,在同类设备的尺寸公差范围内。 “固定支座与封板之间的空隙距离,与某类信号收发器的长度相近。“他在日志中记录了该次对比,“尺寸与物流园中继器存储卡中记录的设备外形尺寸接近。“ 他在日志窗口的下方加了一行文字:“该空隙足以容纳一台微型信号收发器。“ 他关闭了日志窗口,把键盘推回桌面内测。窗外的光线已经到了日落时分的末端,窗面反射的室内灯光开始占据主导位置。 第92章 支点 窗面的反光在他关闭窗口后占据了整个窗玻璃的表面,把室内的景象完整地反射在窗面上,在暗色的边框内形成了一幅与室内布局左右对称的镜像,并在持续保持的过程中没有发生位移或亮度变化,直至他被一道脚步声从窗面的反光中拉回注意。周承岳在晚间再次进入大厅时,手里拿着一个密封的塑料文件夹,走到操作台边,把它放在桌面靠近键盘的位置。文件夹的封面贴着一张标签,上面用打印体写着“h区封板安装记录“。 陆维桢打开文件夹,里面是几页装订好的施工验收表格,其中一页表格上列着封板安装时的各项检查记录。在检查项目的列表下方,有一段手写的备注,字体与图纸上的手写补充说明一致:“封板安装时发现墙内空间存在一段长度约四十厘米的闲置段,未纳入任何管线敷设范围,作为施工预留保留。“ “闲置段,长度约四十厘米。“陆维桢把这段备注的内容摘录到笔记本中,与固定支座和封板之间的距离做了对比。闲置段的长度与空隙距离的数值接近,属于同一数量级,读数相差不大。 他把这段对比结果添加到h区设备文件夹的线槽部分中,并标注了“闲置段长度与空隙距离相近“。 顾晏在第二天上午重新查看了h区声音记录器在信号序列出现前后的完整波形,把波形图的时间轴调整到与闲置段对应的位置。在闲置段对应的时间区域内,波形图上没有出现新的异常信号或振动,基线保持了与周边时段一致的平稳。她把波形图与h区北侧外墙的热成像扫描结果并列放在同一屏幕上。两者之间没有发现直接的重叠关系,各自占据屏幕的不同部分,通过两条独立的确认记录相连接。 “波形图与热成像扫描之间没有发现直接重叠。“陆维桢在日志中记录了该次比对的结果,“两者通过两条独立的确认记录相连接。“ 他在h区设备文件夹中为该记录添加了一条备注,注明该连接基于时间轴关联而非信号特征重叠,备注的位置在记录列表的靠下部分,靠近文件夹末尾。 下午,他把h区机电小室的纸质图纸重新展开,用铅笔在固定支座和封板之间的区域做了一个标记,标记的形状为一个短横线,位置位于支座与封板之间空隙的中央附近,靠近闲置段标注位置。他用尺量了标记与标注文字之间的距离,然后将测量结果记录在图纸边角的空白处,没有在图纸上添加连接线或箭头。 傍晚,加密平板电脑收到了一条来自外围组的信息,内容是h区北侧外墙在当天下午的视觉观察记录。观察记录显示墙面涂料层上的矩形轮廓在下午的光照条件下比上午更不明显,轮廓线的可见度随光照角度变化而改变,在太阳高度降低时轮廓线再次变得清晰。记录附有一组从不同时间拍摄的照片,照片上的矩形轮廓在光照角度变化的条件下,呈现出从清晰到模糊再恢复清晰的变化过程,与预期一致。 “矩形轮廓的可见度随光照角度变化而变化。“陆维桢在日志中记录了该观察结果,“在太阳高度降低时轮廓线再次变得清晰。与光照角度变化对应,属于正常的视觉现象。“ 他没有在该记录中添加额外的备注。 晚上,他重新打开工作站上的h区机电小室施工记录文档,在线槽预留段的描述段落中,找到了一行以前没有注意到的标注——该段话出现在页面的底部,字迹比周围的注释略微紧凑:“闲置段的位置有预留安装孔,间距与微型收发器的固定孔距一致。“安装孔的描述位于固定支座和封板之间的空隙区域,间距与微型收发器的固定孔距在同一数值范围内,与设备的标准尺寸一致。 “闲置段的位置有预留安装孔。“他把该条记录添加到h区设备文件夹中,“预留孔间距与微型收发器的固定孔距一致。“ 他在记录下方补充了一行:“该空间具备安装收发器的物理条件,预留孔位已存在。“ 第93章 测存 “该空间具备安装收发器的物理条件,预留孔位已存在。“陆维桢写下这行备注后,在记录下方空了一行,然后写了当天的日期。他合上笔记本,把笔搁在桌面上,看了看窗玻璃,窗面反射的室内光线在窗外夜色完全降下后趋于稳定,保持着一整片均匀的亮区,覆盖了窗面的全部面积。 第二天上午,他从操作台侧面的储存盒中取出了一份物流园中继器存储卡的备份目录,在备份目录的附注栏中找到了关于收发器尺寸的条目——条目记载了该设备的长度约四十厘米、宽度约十五厘米、厚度约五厘米,与h区闲置段的测量数据基本一致。他把备份目录放回储存盒,关闭了盒盖。 午间,加密平板电脑上出现了一条来自外围组的消息。消息简述了h区北侧外墙封板所在位置在当天上午的激光测距结果:封板表面到墙体预埋框架的距离与固定支座到墙体预埋框架的距离之间存在一段差值,数值与一封板厚度加上安装间隙的总和一致。测量结果在同一组读数范围内。 “测量结果与一封板厚度加安装间隙的总和一致。“陆维桢在日志中记录了该测量结果,“与预期尺寸相符。“ 顾晏在下午时段重新检查了h区声音记录器在封板所在区域的波形数据,把时间窗口缩窄到信号序列出现前后的短暂时间范围内,以较高的时间分辨率逐帧检查了波形图上的每一处细节变化。她在波形图的一个局部位置发现了一次短暂的轻微幅值变化——发生在物流园中继器连接重置之后不久,幅度接近记录器的判定阈值下限,在波形图上表现为一个与周边基线略有不同的点。她在波形图上标记了该位置,然后缩小了显示范围,让它保持在屏幕中央。 “连接重置后不久,波形图上出现了一次幅值变化。“她在标记旁做了记录,“位于判定阈值下限附近,未达到告警阈值。“ 陆维桢走过来看了屏幕上的标记点,把它和固定支座与封板之间的空隙位置放在一起做了测量。在图纸上,该位置的坐标与固定支座和封板之间的空隙重合,位于空隙区域的中心附近,与预留安装孔的位置距离较近。他把这个结果记录在笔记本中,然后关闭了工作站上的比对窗口。 下午临近傍晚时,周承岳从楼上下来,在操作台侧面站定,把手机屏幕转向陆维桢的方向。屏幕上是一张h区北侧外墙封板所在位置的近期热成像对比图——连续几天的热成像扫描结果叠加在一起,形成了一张热量分布变化趋势图。趋势图显示,封板位置的热量在最近几天内持续存在,分布范围没有扩大,热点区域的边缘保持清晰,没有向周边扩散。 “热量分布持续存在,边缘清晰。“陆维桢看了一遍趋势图后说,“热点位置和封板轮廓一致,没有扩大。“ 周承岳收回了手机,在操作台旁边多站了一会儿,然后沿着走廊走向出口方向。陆维桢坐回操作台前,在笔记本中写下了当天的观察记录,把趋势图的内容简要描述了一遍。窗面的反光已经变得均匀,和前几天晚上的状态一致,没有出现局部的明暗差异。 第94章 标定 窗面的反光在随后的几天里保持稳定,没有出现变化。陆维桢重新检查了h区声音记录器的波形图,并对比了物流园中继器连接重置时刻的信号特征与线槽末端区域在热成像图中的响应特征。三组数据在时间轴上的位置虽然不完全对应,但彼此之间存在交叉。 他把三组数据各自的时间窗口用三种颜色的铅笔在时间轴上做了标记,然后合上笔记本。 午间,加密平板电脑收到了一条来自施工档案管理部门的补充回复,内容是关于h区机电小室线槽的施工日志摘要。摘要中提到线槽在施工期间的隐蔽工程验收记录中,有一段关于固定支座与封板之间“预留空间“的注明,注明的文字为“该空间用于容纳后续可能增设的线槽附件,安装时预留了相应的固定接口“。摘要的结尾处是一段不带编号的施工记录节选,记录了线槽附件的安装说明。 “线槽施工日志中注明了一处预留空间。“陆维桢把该段摘要记录在h区设备文件夹中,“用于容纳后续可能增设的线槽附件,并预留了固定接口。“ 他把摘要末尾的节选内容单独摘出,与之前从物流园中继器存储卡备份目录中记录的收发器尺寸做了数值对比。两者在尺寸和安装接口的描述上一致。 周承岳在下午进入大厅,在操作台边沿放下一份文件,随即离开。文件的内容是几页被拆开的装订记录,记录上有施工验收签字栏和时间戳,都在他离场前就放在了桌面上,没有额外的说明。 他拿起那份装订记录,翻到线槽部分的验收页。验收记录中在“预留空间“一栏打了勾,在备注栏中有手写文字:“预留空间尺寸与规格确认,接口已安装。“签字日期是两年前的秋季,签字人的姓名在备注栏下方的签名位置。 “验收记录中确认了预留空间尺寸和接口。“陆维桢把这段记录添加到笔记本中,“签字日期为两年前的秋季。“ 傍晚,顾晏在工作站前重新检查了波形图上的标记点位置与固定支座和封板之间的空隙在施工记录中的坐标位置,做了最后一次轴向坐标测量,记录的位置信息与预留空间的尺寸一致。 “波形图标记点位置与预留空间的坐标位置一致。“她在记录中标注了该次对齐结果,“轴向尺寸与预留空间相符。“ 陆维桢在笔记本中为这个结果做了一个简短的标注,然后把标定结果与h区设备文件夹中的施工记录摘要放在同一页上,在中间画了一条短横线作为分隔,然后合上笔记本,放回桌面中央。操作台侧面的加密平板电脑在充电座上保持着待机状态,状态指示灯以稳定的间隔闪烁着,光线落在桌面上,在键盘和鼠标垫的边缘处形成了一圈均匀的微光。 第95章 探腔 第二天凌晨,陆维桢在未通知任何人的情况下再次前往h区。他在凌晨两点前到达停车处,沿围墙边绕到h区北侧。夜间的光线比白天均匀,墙面上没有产生强烈的反差,矩形轮廓在夜间光照条件下从墙面上浮现出来,线条的可见度比白天显著提高。轮廓线沿着墙面的浅色涂层延伸,与周边的墙体之间在夜间的光线下形成了一组稳定的明暗分界。 陆维桢蹲在墙面约一米处,从工具包里取出一只微型激光测距仪和一个窄频声学探测器,声学探测器的探头可以在不拆墙的情况下对墙内空间进行主动回声探测。他先把测距仪对准矩形轮廓的中央位置,记录到墙面至墙体内部封板之间的距离,测距仪的读数显示为约三十厘米。他又把测距仪对准封板表面的固定支座位置,测量了支座前缘到墙面的距离,两次读数之间的差值约为二十厘米。 他在笔记本上记录了这个数据。 接着他拿出声学探测器,将探头贴在墙面矩形轮廓的中央位置,向墙体内部发射了一组低频声波。声波穿过涂料层进入墙内空间,在接触到不同介质的界面时产生反射,他随后接收到反射信号的时间序列,记录了反射波在时间轴上的分布。反射信号在约零点三毫秒和零点六毫秒处出现了两次回波,形成一段等间隔的信号序列,后一次回波的间隔与前一次相等,表明墙内存在两层连续的界面。 零点三毫秒对应第一层界面的位置——可能是封板的表面。零点六毫秒对应第二层界面的位置——可能是封板后面的固定支座或墙体结构。在零点三毫秒和零点六毫秒之间没有出现其他反射信号,说明封板与支座之间的空隙是空气填充的,没有填入其他材料或设备。但声学探测器的分辨率不足以确认该空隙是否完全空置。 “反射信号特征显示封板与支座之间的区域为空气填充。“他在笔记本中记录下来,“但无法确认是否有小型设备安装。“ 他把声学探测器收好,在矩形轮廓周围的位置做了一次扫描,确认了所有反射信号的读数都在相同的读数范围内。然后在夜色中沿原路返回停车处,途中没有使用照明灯,全程依靠对路面的记忆完成行走。他回到停车处,坐进驾驶座,在车内等待了几分钟,确认没有人员跟随或尾随后,发动车辆沿原路驶离。 回到地下三层后,他在操作台前把声学探测的结果重新播放了一遍,确认了两次回波的时间间隔一致,空气填充区域的厚度与施工记录中的描述相符。他关掉探测器,把笔记本上测量出的差值数据作为新参考值,与之前从施工记录中找到的数据做了核对。两组数据在可接受的误差范围内相互匹配。 早晨,他把声学探测的结果和周承岳作了口头简述,描述了探测过程、反射信号特征以及封板后方空隙的初步判断。周承岳听完后留在操作台侧面,没有提出问题或做出指示,只点了下头作为确认,然后他沿着走廊离开了大厅。他离开时没有带走操作台上的任何物品,只保持了原先站姿时手的位置。 上午,陆维桢在工作站上记录了这次探测的情况,在记录中注明:“封板与支座之间的空隙为空气填充,未检测到实心物质填充。未发现设备的明显热源或电磁信号。当前判断空隙为空置状态,但不排除存在被动式无源设备。“他在记录末尾加了一行:“如需确认,需要实际开启封板。“ 第96章 启封 “如需确认,需要实际开启封板。“陆维桢在日志中写下这句话之后,没有再添加任何补充。他把日志保存,关闭了工作站,没有预先设定时间表,也没有安排额外的人员参与。 凌晨,他再次出现在h区北侧。这一次他带来了更完整的工具:一把窄刃刮刀、一支热风枪、一把螺丝刀和一对钳子。热风枪的温度调节已经被设定到刚好能软化涂料层而不损伤基层的角度。他到达后没有立即开始操作,而是在墙边蹲了一会儿,用照度计确认了周围的夜间照明条件——路灯的光线在墙面上的覆盖范围有限,矩形轮廓所在的区域处于两盏路灯之间的暗区,照度低于环境光标准水平。他把工具包放在墙根,开始操作。 他用热风枪对准矩形轮廓的边缘吹了几秒钟,然后用刮刀沿着轮廓线的方向轻轻推进,涂料层在被加热后软化,刮刀在行进过程中几乎没有遇到阻力,沿轮廓线的走向均匀切入。大约过了半分钟,一条长条状的涂料层从墙面上脱落,露出下方的钢板表面。刮刀继续沿轮廓线的四条边推进,直到整块涂料层沿着矩形轮廓的边缘完整剥离下来。暴露出的封板表面呈浅灰色,钢板与钢制框架之间的缝隙被密封胶填满,密封胶的表面平整、颜色均匀,与封板边缘贴合良好。 他放下刮刀,观察了几秒钟封板的整体状态。密封胶层的表面没有裂纹或松动迹象,封板的四个螺丝孔位清晰可见,螺丝的十字槽中没有堆积尘土,状态为轻微磨损,槽口的形状完整,没有被反复拧动造成的变形或损坏。他用螺丝刀对准第一颗螺丝施加扭转力,螺丝的初始转动稍紧,在转动约一圈后阻力降至正常水平,然后顺利旋出。他依次旋下了其余三颗螺丝,将其排列在墙根的地面上。 封板的螺丝全部卸下后,他用一把扁平的撬棒沿着封板和墙体之间的缝隙轻轻插入,沿着封板的四边逐段施加压力。撬棒插入深度在一厘米左右时,封板与墙体之间出现了松动的迹象。他继续沿着每一边逐步推进,封板的边缘开始向外移出约几毫米。然后他握住封板边缘向外拉,钢板从墙体中退出,同时被提至一定高度后从安装位置完全取了下来。他把它平放在地面上,然后转向暴露的墙体洞口。 洞口内部的空间比预想的深。封板后面的空隙深度约二十厘米,宽度和高度与线槽截面尺寸一致。他用照明灯照射空隙内部,看到墙体预埋框架的内壁表面完整,无锈蚀或破损,固定支座的安装位置和施工记录中的位置一致。在固定支座与封板之间的空隙中,有一个长方形的金属外壳物体,表面采用哑光黑涂层处理,尺寸与物流园中继器存储卡备份目录中记录的收发器尺寸相符,背面紧贴固定支座表面,前端与封板内壁之间留有一道窄缝。物体外壳的侧面有一组微型接口,接口的形式与某种专用数据线缆的接头类型匹配。外壳表面没有指示灯亮起。 他把照明灯固定在洞口上方的位置,使光线能够持续照亮空隙内部。然后他取出声学探测器的探头重新贴合物体外壳表面进行确认,确认它没有发出主动射频信号,与被动式设备的特征一致。 他沿着固定支座的边缘触摸了一遍,摸到了一段与外壳连接的细线缆,线缆的走向沿着固定支座的支撑臂延伸,进入墙体预埋框架的侧壁开口,消失在框架后方的墙内空间。细线缆的外皮颜色和材质与弱电间配电箱中发现的伪装风机的线缆一致。 “被动式设备。“他在笔记本上写下这几个字,“连接线与弱电间风机线缆材质相同。无主动射频发射,外壳温度略低于室内气温,处于待机状态。“ 他测量了外壳的准确尺寸,记录在笔记本上。他将数据与施工记录中预留空间的尺寸再次核对,误差在零点几厘米的范围内。 陆维桢把封板从地面上提起来,按照拆卸时记录的位置将其重新卡入墙体洞口,把四颗螺丝依次拧回。拧好后他用刮刀从墙体其他位置取少量涂料碎屑,轻轻覆盖在螺丝孔和缝隙处,使其与周边墙面一致。密封胶他没有重新填涂,因为原有的密封胶层在封板安装回原位后正好与墙壁贴合,表面没有产生明显间隙。 他把工具收好,在墙根处逗留片刻,重新确认了封板表面与周边墙面之间的视觉连续性。封板与周边墙面之间没有形成明显的断差或错位,螺丝孔的涂料覆盖层在夜间的光线下与周边墙面保持着一致的外观,在视觉上基本不可分辨。 黎明前,他回到地下三层,把工具包放回操作台旁的柜子里。他在操作台前坐下,打开笔记本,在“确认情况“的条目下方写了一行字:“内部发现一台被动式信号收发器。正在运行,连接线材质与弱电间风机线缆一致。“他在这行字下面没有加任何备注,也没有在附近画线或做标记。 第97章 位变 第二天早上,陆维桢没有在记录器中看到任何异常信号或告警。h区三个记录器的状态指示全部为正常色,波形图在夜间时段保持平稳,摄像头的画面显示封板表面和周边墙面的光照条件与前一天一致。他查看了物流园中继器的状态页面,传输记录在封板操作的时间段内没有出现新的连接重置或非周期心跳,数据包序列号连续,没有中断或重传记录。 封板被短暂开启又关闭的操作没有触发任何远程告警,也没有在记录器中留下可识别的信号痕迹。 上午晚些时候,陆维桢在操作台前打开了墙体预埋框架的施工详图。他在详图中找到了线缆穿出框架侧壁后的走向标注——线缆从框架侧壁的开口进入墙体后,沿预埋管线向下转向地面层,然后沿着建筑基础内部的管道空间向西南方向延伸。标注的末端指向了仓储区边缘的一处地下管道检查井,位于h区机电小室与物流园中继器之间区域的一个位置上。 “线缆进入墙体后向下转向地面层,沿基础管道向西南方向延伸,进入一处检查井。“陆维桢在记录中摘录了这一走向,“检查井位于h区与物流园之间。“ 他打开仓储区的地下管线综合图,定位了该检查井的位置。检查井在仓储区边缘靠近围墙处,与物流园中继器之间有一条约四百米的直通管道连接,管道直径约八十厘米,沿围墙内侧敷设,中途没有其他分支或转角。直线距离与物流园中继器的位置连线之间没有需要绕行的阻挡物。 “收发器的线缆路径与物流园中继器的位置之间存在一条直通管道。“他在笔记中补写了这一点,“中间没有分支或转角。“ 中午,顾晏通过对线缆路径的估算,认为收发器与物流园中继器之间可能通过检查井处的转接设备实现连接,收发器采集的信号进入墙体预埋管线后,可以经由地下管道系统到达检查井,再通过井内的转接设备与物流园中继器所在的配电箱建立通信,形成一个完整的信号回路。 “收发器通过检查井的转接设备与中继器相连。“陆维桢在白板上的仓储区平面图中,用一支细笔在h区机电小室和物流园中继器之间画了一条穿过检查井的弧线,“线缆路径清晰,直通管道直达中继器位置。“ 傍晚,周承岳从楼上下来,在操作台前听完陆维桢的描述后,他站在那里,确认了检查井的位置和现场条件后,没有要求启动进一步的勘查计划或安排人员。然后他向走廊方向走去,沿着走廊走向电梯方向,在走廊尽头的电梯处进入电梯后,电梯门合拢。 陆维桢站在白板前,把收发器、检查井和物流园中继器之间的连线重新描了一遍。他在连线的终点处停了下来,没有再加任何标记,等待下一步的行动时机。操作台桌面上的加密平板电脑在待机状态下,屏幕表面反射着天花板上的灯光,在键盘和桌面的交接处形成了一道平直的亮线,横贯屏幕和桌面之间,两端均匀地延伸到平板电脑的边缘。他在亮线消失前伸手将加密平板电脑翻转到了背面,结束了它的待机状态。屏幕在翻转后的短暂瞬间仍然保持着亮屏状态的惯性,显示出物流园中继器的状态页面,页面底部记录的信号状态显示为连续稳定的基线波形,标志为绿色,没有异常标记或状态提示灯亮起,处于被荧光笔覆盖的状态标志位置。 第98章 定线 平板电脑翻转后,物流园中继器的状态页面在屏幕朝下的短暂瞬间仍保持着亮屏状态,然后在几秒后自动切换到待机模式。陆维桢没有再把平板电脑翻回来,他把平板电脑放在充电座上,然后从桌面上拿起一张a4纸,在纸上画了一条横线代表地面,在横线下方画了一个方块代表h区的墙体预埋框架,再从方块引出一条斜线连接到横线另一端的另一个方块代表检查井,检查井再连接到第三个方块代表物流园中继器所在的位置。他在斜线的每个转折处标注了大致距离。 画完线路后,他放下笔,把纸放在桌面一侧,让纸的边沿与桌面的边沿对齐。他坐在操作台前,把这张纸上的线路与大脑中已知的其他信息做了对应——操作员通过h区排水沟进入机电小室操作面板,更换介质后原路离开,介质可能通过墙体预埋框架内的收发器进入地下管道系统,再经过检查井转接到物流园中继器的存储卡,然后在回传窗口期间被发送出去。这条线路在已知的设施之间存在距离上的可达性。 “收发器→预埋管线→地下管道→检查井→物流园中继器。“他在笔记中写下这个路径的摘要,“操作员在h区的操作可能触发收发器的数据采集,数据沿该路径进入中继器。“ 午间,加密平板电脑收到了外围组发送的检查井现场状态摘要。摘要显示该检查井的位置在仓储区边缘靠近围墙处,井盖表面没有异常标记,井圈边缘与地面的接缝完整,没有近期开启的痕迹。外围组在井盖周围的土地上没有发现新的脚印或工具痕迹,地表覆盖物保持原状。 “检查井近期未开启。“陆维桢在日志中记录了该信息,“现场无新的痕迹。“ 下午,顾晏在工具台前检查了一套用于管道内部的微型信号探测器的封装状态,确认了防水密封和探测器的电源状态。她把探测器放回设备架的收纳格中,盖上了收纳格的盖子。 傍晚,周承岳进入大厅。他走到操作台旁边,视线在桌面的线路纸上停留了一下。纸面上的三个方块和斜线在灯光下清晰可见。他抬起头,没有碰那张纸,转向陆维桢的方向说了一句话:“检查井和物流园中继器之间的管道长度约四百米,混凝土浇筑,管径约八十厘米,没有维修支口。“ “没有维修支口。“陆维桢在笔记本中重复了这个信息,“管道是直通的,中间没有可以接入的开口。“ 周承岳没有补充新的信息,在原地继续站了一阵,沿着走廊向电梯走去。他离开后,陆维桢在笔记本中为管道走向添加了新的标注,把检查井与物流园中继器之间标注为“四百米直通管道,无支口“。他在标注下方加了一行备注:“该路径可支持信号线的敷设,中间不需要设置中继或额外的接口。收发器的数据可以通过线路直接到达中继器。“ 夜幕降临前,陆维桢在桌面上保留的线路纸边角处,用量尺测量了三个方块之间的线段长度在纸面上的比例,确认了它们与实际距离之间的对应关系。然后他合上笔记本,把线路纸夹入笔记本的页面中。窗外天色已暗,窗面上只有室内灯光的倒影,将桌面的位置保持在窗面的暗色边框内,没有显示任何室外的图像。 第99章 启点 夜色没有变化。陆维桢在窗面倒影前坐了片刻,然后把笔记本从桌面上收起来,放入了抽屉。线路纸夹在笔记本中,没有单独取出。 第二天一早,他重新打开地下管线综合图,在检查井和物流园中继器之间做了一次距离计算。直线距离四百米,管道直径八十厘米,混凝土管壁厚约十厘米。管道在地面以下约两米深,沿途经过的区域为仓储区的硬化地面和一段绿化带,没有建筑基础或地下构筑物阻挡。他用荧光笔在管道路径上标了几个点,作为后续可能的接入位置的参照。 顾晏在上午从设备架前取出了微型信号探测器,做了开机自检。探测器通过了自检程序,她把它放在操作台一侧,没有收起。 中午,加密平板电脑收到了一条消息。消息来自外围组,内容是关于h区北侧外墙封板的后续观察。观察记录显示封板表面没有出现新痕迹,涂料层的覆盖完整,与周围墙面之间的颜色过渡保持自然。记录中没有新增任何异常信息。 陆维桢在日志中记录了这条观察结果,没有在记录中添加额外的备注。 下午,他站在白板前,把收发器、检查井和物流园中继器之间的路径再次描了一遍。他用粗线描出了管道走向,在路径中段标了一个小圆点,没有在圆点附近写字。他退后两步检查了描线的连续性,确认了线条没有中断或偏移,然后放下笔。 傍晚,周承岳进入大厅。他在操作台前停下,把手机屏幕转向陆维桢——屏幕上是一张管道内窥探测器的技术参数页。技术参数页列出了管道内窥探测器的长度和直径,以及该型号的标准工作方式。内窥探测器的直径小于管道直径,长度适中,可以由操作人员从检查井口放入管道内部进行检修。技术参数页上没有标注特殊功能,只列出了厂家测试数据页面。 陆维桢看完了参数页,点了点头表示了解,没有说话。他把视线收回到了桌面上,保持着正常坐姿。 入夜后,他独自留在操作台前。桌面上的加密平板电脑处于待机状态,屏幕表面反射着天花板上的灯光,形成一道平直的亮线横贯整个面板。他在桌面上放了一份仓储区地下管线综合图的复印件,在复印件上用一个铅笔圆点标出了检查井的位置,圆点旁边留有一小块尚未使用的空白区域。他在复印件上描了一遍从检查井到物流园中继器之间的管道走向,在管道的笔直段上沿着图纸的方格线描出了一段完整的线。 然后他把复印件叠好放回了文件袋。 第100章 收线 复印件放回文件袋后,陆维桢在桌面上放了一枚硬币,压在文件袋的封口处,防止袋口自然张开。他站起身来,把座椅推回桌子下方,然后走向大厅出口。他在走廊尽头的电梯前站了一会儿,按下上行键,等到电梯门打开后进入,按下了一楼的按钮。门在他身后合拢。 夜间的仓储区外围比白天安静。路灯间隔较远,在路面上形成间隔分布的光斑和暗区。陆维桢沿着围墙外侧的土路走到检查井的位置,站在距离井盖约两米处,没有靠近。他确认了井盖与地面之间的接缝完整,井圈边缘的泥土表面没有新的压痕或脚印。路灯的光线在地面上形成一片低亮度的光晕,边缘向四周渐次减弱,在接近围墙的位置形成一段逐渐过渡的暗区。 他沿着围墙方向走了几步,在几个位置停下来观察了地面上的管道走向标志——地面上每隔一段距离有水泥标记块,标注地下管线的走向。标记块表面平整,没有起翘或碎裂,位置与管线综合图上的管道路径一致。他在地面上看了一小段路,没有做记录或停留。 返回地下三层后,他把外套放回储物柜,在工作站前坐下。他在笔记本上写了一句话,搁下笔,合上笔记本,把它放到了操作台的固定位置上。 第二天上午,陆维桢在加密平板电脑上打开了一份物流园中继器信号覆盖范围的模拟图。模拟图显示中继器的信号覆盖半径在无障碍条件下约为两百米,在管道和建筑遮挡条件下会有所缩减。检查井到中继器之间的距离约为四百米,超出中继器的直接信号覆盖范围。如果收发器通过埋入式线缆与中继器连接,线缆的有效传输距离受限于线缆材质的导体截面积和阻抗匹配情况。他查看了施工记录中线缆的型号规格,发现其导体截面积与长距离传输指标之间存在适配性,距离与线缆的传输能力相当。 “线缆的型号规格与长距离传输指标适配。“他在记录中写道,“距离在合理范围内,埋入式敷设不会造成信号衰减超限。“ 午间,加密平板电脑收到了一条来自外围组的信息,内容是施工记录中关于管道材料的说明——管道采用了内壁光滑的混凝土管,内壁附着层完整,没有裂缝或堵塞。说明的末尾附注了管道内壁的状况,可供检修设备顺利通过。 “内壁光滑,没有裂缝或堵塞。“他摘录了该信息,添加到记录中,“管道内部状况适合检修设备通过。“ 整个下午都在单调地做确认工作,没有新进展或发现。周承岳在傍晚进入大厅,站在操作台侧面,听陆维桢把管道情况和线缆适配性的判断复述了一遍后,他侧过身,在桌面上留下一张折叠好的纸张,走出了大厅。 纸张展开后是一张打印出的管道内窥探测器的订货确认单。单据上的型号与前一天技术参数页中的型号一致,预计交付时间为两天后的晚上。确认单上没有采购人姓名,也没有采购金额。 陆维桢看完了确认单,没有把它放入文件夹或抽屉,而是把它压在那枚硬币下面。他在操作台前坐下,把那枚硬币和确认单的位置微调了一下。然后他靠回椅背,把视线从桌面上移开,窗外已经全黑了,玻璃上的倒影明亮而均匀,镜面般覆盖着桌面的光线。窗面显示的室内场景,和室内真实场景在角度和位置上都保持着一致的对应关系。 第101章 待器 确认单压在硬币下面,没有移动,没有折叠,在桌面上保持了一整夜。第二天早晨,陆维桢在操作台前把硬币从确认单上挪开,重新叠好确认单,放进了文件袋中,夹在之前收纳的图纸复印件旁边。他用记号笔在文件袋封面写下“内窥探测器“四个字,在下方标注了交付日期。 上午,加密平板电脑收到外围组对检查井所在区域的早间观察摘要。摘要中的检查井状态与前几次一致,井盖表面没有异常,周边地面覆盖物没有新痕迹。摘要的末尾标注了当天的天气情况,没有特殊备注。 陆维桢在日志中记录了该摘要的接收时间,没有在记录中添加新的注释。 午间,他在工作站前打开了一份之前从物流园中继器存储卡备份目录中复制过来的设备接线示意图。示意图上的线缆接口形式与他从收发器外壳侧面观察到的接口形式相同,插槽的排列和引脚分布完全一致。他把示意图和封板内侧观察到的接口照片并列放在同一屏幕上,确认了线缆与接口之间的连接关系。 “接口形式匹配。“他在笔记中写道,“示意图与实物一致。“ 顾晏在下午从设备架前经过时,看了一眼桌上那枚硬币的位置,没有说话,在操作台前完成了h区记录器当日状态检查。三个记录器的数据存储余量充足,波形图在过去二十四小时内没有记录到异常信号或波动,摄像头的画面显示墙体表面正常。 周承岳在傍晚进入大厅。他没有走向操作台,在设备架前面停了一下,看了一眼微型信号探测器收纳格的盖板,确认盖板保持关闭,然后他在操作台侧面停下,站了片刻。他的视线在桌面上没有发现新物品,收回了目光,然后走出了大厅。 夜间,陆维桢重新看了一遍桌面上的文件袋,确认了文件袋封口处的胶条完好,边缘平整。他在笔记本上翻到了记录收发器位置的页面,把页面内容读了一遍,没有补充新的信息。他合上笔记本。 第二天上午,加密平板电脑收到了一组物流园中继器在凌晨时段的传输日志。日志显示中继器在例行回传窗口期间完成了一次标准传输,数据量未超出常规范围,未出现重传或超时标记。 他在日志中记录了该传输事件,在记录末尾添加了时间戳。 当天下午,他打开了仓储区地下管线综合图的电子版,将检查井到物流园中继器之间的管道路径做了一次截面视图测量。管道在绿化带下方约两米深处穿过,经过一段沿围墙方向延伸的路段,然后以转向方式接入中继器所在位置附近的配电箱区域。管道在配电箱区域沿墙体方向延伸到末端,在配电箱墙体根部以一条短线段封闭,与配电箱基础结构之间保持相邻关系。配电箱的底部与管道末端之间铺设了一段短管作为过渡段,使两者之间形成一个连续的通道。 “管道末端距配电箱位置约一米。“他在记录中标注了该段尺寸,“中间有短管过渡,保持连通。“ 他把测量结果添加到h区设备文件夹中,与收发器的路径记录放在同一位置。 傍晚,加密平板电脑收到了一条物流通知,显示管道内窥探测器已经发货。通知中没有注明发货地和收货地址,只列出了物流编号和承运单位。预计交付时间与确认单标注的日期一致。他在笔记本中更新了相关标注的日期,与物流通知中的日期保持一致。 第102章 窥径 探测器在约定时间的傍晚送达。一个尺寸约六十乘四十乘三十厘米的硬质运输箱被放在员工通道入口内侧的地面上,箱体表面没有标注发件人信息,只有一张电子面单显示为“仪器设备”。陆维桢把箱子搬进地下三层,放在操作台旁边的地面上,用一把美工刀沿箱盖的封条划开。箱内的内衬模压泡沫中嵌着一台金属灰色的圆柱形设备,长度约五十厘米,直径约七厘米,配有一组可更换的镜头模块和一根约六十米长的信号线缆。 他取出探测器机身,检查了镜头模块的密封圈和信号线缆的接口触点,确认所有部件完好后,把设备放回箱内,合上箱盖,放在设备架下面的空闲位置。 夜间,他提着运输箱到达检查井所在的位置,在夜色中蹲在井盖旁,用工具撬开了井盖的边缘。井盖被移开后,露出井口下方约三米深的井壁。井壁的混凝土表面附着一层薄薄的苔藓,空气湿度较高,底部有一层浅浅的积水。探照灯的光束射向井底时,在井壁侧面看到了一段管道开口,管口与预埋框架内部的线缆走向一致,直径约八十厘米。 他把探测器的信号线缆固定在井口边缘,然后将探测器主体对准管道开口,沿着管壁内壁缓慢向下放送。探测器在进入管道后以稳定的速度向前推进,信号线缆的刻度标记从他手中逐一通过,实时回传的画面显示管道内壁表面附着了一层细密的灰尘和微小的钙质沉积,但内壁整体光滑,没有堵塞物或明显的裂缝。 探测器继续推进,管道内的灰尘层厚度逐渐均匀,沉积物在管道底部的分布呈平行条纹状,与水流长期通过留下的痕迹一致。没有发现结构损坏或施工遗留物的迹象。陆维桢在推进过程中保持匀速操作,实时画面中的管道内壁在探照灯的照明下保持着一致的颜色和纹理。 推进到约三百五十米时,画面中出现了一段管壁表面的轻微色差——在管道侧壁靠近底部的位置,有一块约三十厘米长的区域颜色比周边略深,表面有一层薄薄的附着物,与周边的钙质沉积特征不完全相同,边缘呈不规则的锯齿状。他停止了探测器的推进,将镜头对准该区域,调整了焦距。深色域的表面附着物呈现为与周边不同的组织形态,上面覆盖着一层均匀的灰褐色薄膜,尺寸与收发器外壳接近,轮廓的直线边与管壁之间的间隙大小与固定支座的厚度一致。 他在笔记本上做了记录。 他继续向前推进探测器,线缆上的刻度显示当前进入管道约四百米。在探测器到达管道末端位置附近时,画面中出现了一段管壁的收口结构,收口处设有一组框架式的金属构件,与物流园中继器所在的配电箱基础结构的底部轮廓重合。构件表面有一组固定的线缆接口,其中一只接口上连接着一条细线缆,线缆的走向向上进入配电箱的内部空间,固定位置与收发器安装支架上的对应接口位置一致。 陆维桢把探测器停在收口结构前方的位置,固定住线缆,记录下了该处画面的完整影像。他停顿了片刻之后,开始将探测器缓慢回撤,在回撤过程中重新观察了管道内壁的整体状况,确认了管道沿线没有其他附属设备或接入点。 探测器完全退出管道后,他擦去表面的附着物,将其放回运输箱内,合上井盖,恢复了地面覆盖物。 回到地下三层后,他在操作台前连接了探测器记录的画面存储模块,把管道内的影像传输到工作站上,回放了收口结构处的画面。画面中的线缆接口与收发器背面的接口形式一致,固定构件的尺寸也与施工记录中的数据相符。他在操作台前坐了一段时间,专注于确认画面上部件的位置关系和结构特征。 天将亮时,他在记录中写道:“管道内发现一处接触点。线缆接口与收发器形式一致,固定构件的尺寸也与记录相符。管道内没有发现其他附属设备。“他记下了探测器的推进距离与画面中的位置关系,没有在记录中添加推测性描述。然后他合上工作站,在桌面边缘放着一本合上的笔记本,窗外的天色正在从深色转向浅灰色。 第103章 定道 天亮之后,陆维桢在工作站前重新调出管道探测的影像回放。他从中截取了管壁深色附着区域和末端收口结构的两段画面,分别标注了它们在管道中的位置和对应的距离刻度。他把h区机电小室的线槽走向、收发器外壳尺寸、管道内的线缆接口位置,连同收口结构处的固定构件的影像,逐一排列在同一屏幕上。 顾晏从设备架前走过来,站在工作站侧面看了一眼屏幕上的排列。她逐个看完了四幅画面,站的位置没有靠近屏幕,看完后走回了设备架前。 陆维桢在笔记本上整理了一条路径摘要:h区机电小室→墙体预埋框架→收发器→预埋管线→地下管道→检查井→管道末端→物流园中继器配电箱基础。他在摘要的末端画了一条短横线,表示路径到此结束。 下午,周承岳进入大厅。他走到操作台前,把一份新的地下管线综合图复印件放在桌面上。复印件上用红笔标注了检查井到物流园中继器之间的管道全线走向,并标出了一处管道与配电箱基础的交界位置。红笔标注的末端与他在管道末端画面中看到的收口结构位置一致。他又把一张标注着电力管线的电子版图片打开,放在陆维桢面前,图上用蓝色圈出了管道与配电箱基础之间的连接段,旁边写着一个大概的数字。 “管道与配电箱基础之间有连接段。“陆维桢说道。他在管线图的复印件上找到了连接段的位置,用铅笔在连接段旁画了一个小圆圈。 周承岳没有继续补充。他站在操作台侧面,视线在陆维桢的笔记本上停了一下,然后转身离开了大厅。 傍晚,陆维桢重新打开管道探测的画面,在末端收口结构的影像中找到了一处自己之前没有注意到的细节。在收口结构的侧面,一处构件表面有一串字符标记,字符的尺寸较小,处于画面边缘。他放大了该区域,字符逐渐变得清晰——是一行字母和数字的组合,与物流园中继器存储卡备份目录中记录的收发器设备序列号格式一致,只是数值不同。他比对了两个设备序列号的字符结构后,在末尾添加了一行备注:“序列号格式与收发器一致,值不同。位于连接节点处,可能是系统中的另一个组件。“ 陆维桢在操作台前坐下,视线回到屏幕上的字符标记位置。两个序列号之间的格式关联已经确认,连接节点处存在另一个组件,可能在管道末端与收发器之间形成数据传递。他将这个组件的发现与收发器、固定支座和线缆接口的影像放在同一份记录中,标注为同一路径系统下的关联组件。 他把笔记本翻到之前记录弱电间伪装风机的那一页,风机线缆的接口照片和管道末端线缆接口的影像并排放置在页面上。两者的外形轮廓虽然存在差异,但接口的引脚排列与收发器背面的接口形式一致。 顾晏在设备架附近看了一会儿,从收纳格中取出之前准备好的微型信号探测器,检查了电池电量和存储空间,确认设备状态正常后放回了原处。探测器在收纳格中的位置与周围物体保持着等距的空间,四周留有可供取用的空隙。 天完全暗下来以后,窗面上明亮的灯光倒影覆盖了玻璃表面。陆维桢在操作台前继续坐着,没有起身开灯。他在笔记本的新页上写道:“路径已确认。h区收发器通过地下管道与物流园中继器连接。收发器和管道末端连接节点之间存在数据传递的条件。连接节点的序列号与收发器序列号格式一致。“他在记录末尾补了一行:“下一个步骤取决于连接节点处的组件是否需要检修或更换。“他合上笔记本,在桌面上放了一会儿,然后把它收进了抽屉,留出桌面空间,只保留了键盘和鼠标垫的位置。桌面保持空置,方便他随时取用所需的设备和资料。 第104章 脉测 次日凌晨,陆维桢携带微型信号探测器再次到达检查井位置。他在井口边沿蹲下,打开探测器电源,将探测天线放入井口内部,调整接收角度对准管道入口的方向。探测器在待机模式下扫过了管道内部空间的电磁环境,在约两秒后捕捉到一组规律的窄带脉冲。脉冲的间隔均匀,载波频率稳定,特征与收发器类设备的节律信号一致,调制模式中的关键参数与物流园中继器存储卡中记录的某类协议的握手信号相同。 他把探测器维持在接收状态,观察了持续约三分钟的脉冲序列。脉冲的间隔、幅度和波形特征在这段时间内保持稳定,没有漂移或中断。他用记录仪录下了该段脉冲的完整波形,然后关闭探测器,取出井口,将井盖复位。 回到地下三层后,他把录制的波形文件导入工作站,用频谱分析软件读取了脉冲的载波频率、脉冲宽度和间隔周期。三个参数与物流园中继器存储卡中记录的通信协议参数一致,数据传输方式与预期相符。 “连接节点组件在运行。“他在记录中写道,“脉冲特征与中继器协议参数一致。连接节点组件处于工作状态,正在持续传输信号。“ 上午,他把脉冲波形图和物流园中继器存储卡中的协议参数记录做了对比,确认了完整的匹配后,关闭了对比界面。他在笔记本中整理了管道探测的影像资料和波形记录,按照h区墙体预埋框架到物流园中继器的顺序排列,使每段记录之间的连接顺序明确。整理完成后,路径的每一段都有对应的影像或波形记录作为确认依据。 中午,加密平板电脑收到外围组对检查井周边区域的观察报告。报告显示检查井井盖表面没有新的痕迹,周边地面的土壤状态和前几次观察一致,没有发现人员接近或车辆停靠的记录。他把报告添加到h区设备文件夹中,没有做任何标记。 下午,顾晏在设备架前取出了微型信号探测器的备用电池,更换了主电池仓内的旧电池,确认了新的电池接触正常。她关上电池盖,把备用电池放回收纳格中。 周承岳在傍晚进入大厅。他站在操作台侧面,陆维桢把脉冲波形图和他整理的路径记录展示在屏幕上,把各段记录的连接顺序描述了一遍。周承岳看完了屏幕上的内容,视线在波形图上多停了一会儿,然后沿着走廊走向出口。他的身影在走廊尽头消失后,走廊里传来了电梯门合拢的提示音。 当晚,陆维桢在笔记本中为连接节点组件建立了一条新的记录条目,载入了波形特征和协议参数匹配结果,并附上了管道末端画面的截图和脉冲波形的电子索引号。他在条目末尾添加了一行备注,关于该组件是否具备长期运行能力的确认有待进一步观察。 顾晏在晚些时候经过操作台,看到笔记本上的新条目后,她拿走了连接节点组件的逻辑归属记录,将归属关系标注为“收发器—连接节点—中继器“,以示明确。她把记录放回原处时,在笔记本的空白区域留了一行间隙,以适应将来扩展记录的需要。 陆维桢在睡前检查了一遍记录器的状态,确认h区三个记录器的信号强度和波形均在正常范围内,然后关掉了工作站的屏幕。 夜晚的灯光倒影笼罩着窗面,桌面的区域一片安静,便于随时展开操作。 第105章 接口 第二天上午,陆维桢在操作台前打开管道探测的影像回放,把画面停在管道末端收口结构处的线缆接口位置。他放大画面,逐帧检查了接口外壳的细节——外壳表面没有明显的磨损或腐蚀痕迹,固定螺栓的十字槽边缘清晰,没有拧动过的新鲜擦痕,螺丝刀接触留下的细碎金属碎屑在接口周边的缝隙中形成了一层极薄的粉末层。 “接口长期未维护。“他在笔记本中写道,“螺栓无新擦痕,碎屑分布均匀,接触不良的可能性低。“ 顾晏站在他身后看完了这段分析,保持站立姿态,目光在接口外壳的多个角度影像间来回移动,没有提出问题或建议,随后转身回到自己的工作站前。 午间,加密平板电脑收到一条来自物流园中继器周边环境监测系统的提醒,显示中继器所在的配电箱附近的供电线路在昨夜凌晨时段出现了一次短暂的电压波动,持续时间很短,未达到触发告警的阈值。监测数据中记录到的时间点,与连接节点组件的脉冲信号特征在波形记录中的某一处位置接近,两者之间的间隔较短。电压波动与脉冲信号之间虽然没有记录到直接的触发关系,但在时间上处于同一序列内。 陆维桢在日志中记录了电压波动事件的数据和时间点,并标注了其与脉冲信号在时间上的接近性,保持这两个事件之间的时间关系清晰可查。 下午,周承岳进入大厅,在操作台侧面停下,把一张物流园中继器配电箱的电气接线图放在桌面上。接线图上用铅笔标记了一处与管道末端收口结构位置对应的接口点,该接口点在配电箱内部走线路径中的位置比较靠下,靠近配电箱底部。接口点附近的导线走向经过了确认,没有分支,线路保持通畅。接线图上没有标注该接口点的功能或设备名称,仅以一段细线标出接口点与配电箱内一组接线端子之间的连接关系,在连接线的上侧留有一小段空白。 “接口点连接的是配电箱内部的端子排。“陆维桢在记录中添加了该信息,“没有标注功能或设备名称,连接线没有分支。“ 周承岳没有回答,他站在操作台边看了一会儿接线图上铅笔标记的位置,然后转身走向大厅出口,继续沿着走廊前行。 傍晚,陆维桢在加密平板电脑上打开了仓储区电力系统的相关图纸,在配电箱基础结构中找到了与之对应的接线端子编号。端子编号与管道末端收口结构的接口位置对应。他在接线图中查到了该端子的电缆型号和截面积,与收发器线缆的规格一致,测量的尺寸与收发器线缆的长度相当。 “接口点与收发器线缆型号一致。“他写道,“尺寸也相当。“ 他关闭了图纸,把平板电脑放在充电座上。 当晚,他在设备架前取出微型信号探测器,在不连接天线的情况下测试了探测器的接收灵敏度和存储余量。探测器通过了全部功能测试,显示屏上的各项指标保持正常。他关闭了探测器电源,放回收纳格,关上格门,保持了操作区域的整洁。然后他回到操作台前,在笔记本中添加了一条关于配电箱接口点的记录,注明接口点位于配电箱底部,电缆走向符合要求。他在记录末尾留出了一行空白。 窗外的夜色依旧安静,没有异常的光线或声音出现,桌面上也没有新的干扰物需要清理或移除。窗面上反射着室内的景象,与真实位置一一对应,形成了一个清晰而稳定的倒影。 第106章 闭环 第二天凌晨,陆维桢独自在操作台前,把管道探测的画面、脉冲波形记录和配电箱接线图做了一次最后的交叉验证。他把三个数据源的对应时间点、位置坐标和接口编号对齐到同一组参照系中,使每个接口点在三种记录中都能找到对应的记录项。 “管道末端接口点与配电箱接线端子编号一致。“他在记录中写道,“脉冲信号在对应接口点处可测。电缆型号匹配。参考系完整。“ 他合上笔记本,把它放在桌面边缘。清晨的光线开始从窗面透入,室内的倒影逐渐变淡。窗帘全部打开后,窗外的天光覆盖了桌面。他在操作台前坐了一会儿,把记录放在充电座上,在h区设备文件夹中为连接节点组件创建了最终的条目,载入了全部验证结果,然后在条目下留了一行空白供后续更新。 上午,加密平板电脑收到了一条来自外围组的消息,内容是物流园中继器所在区域在过去几天的交通和人员活动记录。记录显示该区域没有出现新的异常情况。配电箱周围的地面也没有新的足迹或车辆痕迹。电力供应和信号传输也保持正常。他把消息摘要添加到h区设备文件夹中。 中午,他在操作台前重新检查了h区三个记录器的信号状态,确认摄像头的画面与前期记录相比没有变化,声音记录器的波形图和信号接收器的频段读数保持正常。 顾晏在设备架前走过时,把微型信号探测器从收纳格中取出,重新测试了一遍,然后放回原处。 下午,周承岳进入大厅,在操作台前停下,把一份物流园中继器配电箱的竣工图放在桌面靠外的位置。图上标出了连接节点组件的安装位置,并标注了线缆在配电箱内部的实际走向,显示线缆从管道末端接口点进入配电箱后,沿着箱壁内表面的线槽向上延伸到中继器所在的设备层,然后通过一段短跳线接入中继器的通信端口。竣工图上的标注确认了连接节点组件在配电箱内的最终连接目标——物流园中继器的通信端口。该标注与陆维桢之前从收发器接口到中继器的推断一致。 “连接节点组件与中继器通信端口直连。“陆维桢在记录中添加了这一信息,“路径已闭合。“ 周承岳没有说话,把施工日志的复印件放在桌面上,转身沿着走廊离开了大厅。陆维桢收起桌面上的复印件,放入文件袋,合上文件袋的封口。 傍晚,他把文件袋放在设备架顶部的固定位置,没有锁入柜中。他把操作台上的笔记本合上,放回抽屉,把h区设备文件夹和物流园中继器存储卡的备份目录对齐排列到同一行,确认了路径的完整连续。窗外的天色正在转暗,窗面上的室内倒影逐渐增强,连接节点组件的路径在桌面空间中保持一条连续的线,两端分别指向h区和物流园中继器。线的末端保持了平直,没有分支或偏转,在桌面上形成了一段完整的路径。 第107章 循径 清晨,陆维桢在操作台前把物流园中继器的状态界面打开。界面显示中继器在晚间回传窗口期间完成了数据发送,传输记录正常,没有出现重传或超时。他把传输记录的时间戳与连接节点组件的脉冲信号时间做了对比——两者之间存在时间差,与收发器采集后经过管道传输、中继器接收处理的时序一致。 “传输时序与路径长度相符。“他在记录中写道,“数据从收发器到中继器的传输时间在预期范围内。“ 上午,他在加密平板电脑上打开了一份物流园中继器存储卡的文件目录,按照时间顺序排列了最近几次回传的数据包。数据包的大小和格式在几次回传中保持着一致,没有出现异常的数据量变化或文件结构改动。中继器的运行状态在传输记录中呈现为一组连续的基准线,在连接节点组件记录的信号出现次数和传输记录的对应关系上保持着规律的间隔。 他在笔记本中记录了该次检查的结果。 午间,h区三个记录器的状态检查完成。数据存储余量充足,摄像头的画面与前一天相比没有变化。 下午,周承岳从大厅入口走入,在操作台侧面站定,递来一张盖着收货章的签收单——物流园中继器配电箱备件仓库的领用记录,条目显示:一根定制信号线缆,型号与管道内收发器连接线一致。领用时间为当天上午,用途栏填写的是“线路维护备件“。 “有人领了同型号线缆。“周承岳的声音在操作台侧面响起,“今天上午。仓库没有记录使用地点。“ 陆维桢从笔记本上抬起头,接过签收单看了一遍。型号数字与收发器连接线的标注一致。他在笔记本上记录了这个条目,在用途栏的“线路维护备件“下面画了一条线,然后把签收单还给了周承岳。 “可能是正常备件申领,也可能和收发器有关。“他说。 周承岳收起签收单,没有回应这个可能性。他转身沿着走廊走向大厅出口,脚步声在走廊远处收窄的通道中逐渐减弱,直到从大厅可听范围中消失。 傍晚,加密平板电脑收到了一条外围组发来的消息。消息显示在当天下午晚些时候,有一辆白色厢式货车停在物流园中继器配电箱附近的路边,停留时间不长。货车在配电箱位置停留的期间没有人员下车,车身侧面没有任何标识,停靠期间车辆保持熄火状态。停留时间结束后,货车启动驶离,沿原路离开。 “停靠时间短,没有人员下车,没有标识。“陆维桢在日志中记录了这条消息,“停在配电箱附近的路边。与前一次观察到的情况相似。“ 他没有在记录中添加推测性内容,只记录了可确认的事实。他把平板电脑翻到背面,将屏幕朝下放在桌面上。他在桌面上坐了一会儿,窗外的天空已经变成深蓝色,窗面上倒映着室内的灯光。他用手指轻轻触碰了一下桌面的边缘,触感光滑,温度略低于室温。然后他移开了手。 第108章 收拢 第二天上午,陆维桢在白板前把h区收发器的路径图做了一次完整的视觉复描。他从操作台侧面取出一支新记号笔,沿着已经画好的路径线条重新走了一遍,笔尖在h区机电小室、墙体预埋框架、检查井和物流园中继器之间形成了四条连续的线段。四条线段在检查井处交汇成一个节点,然后继续向物流园中继器方向延伸,构成一个有固定节点的网络。他检查了四条线段的连续性和交汇点的位置关系,确认网段的结构清晰,然后放下了记号笔。 他在白板的右下角写下了一个日期,在日期下方画了一条短横线。 顾晏在上午时段从设备架前取出了微型信号探测器,做了再次自检后放回原处。 加密平板电脑在午间收到了外围组对白色厢式货车车牌信息的查询结果。结果显示车牌登记在邻市的一家物流公司名下,该公司在蓉城没有注册分支机构,但曾在仓储区周边路段出现过几次,没有固定的出入时间和频次。陆维桢读了查询结果,在笔记本中记下了车牌号和公司名称,没有添加推断性内容。 下午,周承岳从楼上下来,在操作台前站定,递来一张刚收到的领用记录更新页。页面上显示昨日有人领用的同型号信号线缆已经在当天上午归还到了仓库。归还时线缆的包装保持完整,没有开封痕迹。领用人在归还时没有提交使用报告或备注,归还记录上没有注明确认信息。 “线缆没有开封。“陆维桢看着更新页说,“领用了,然后原样还回来了。可能在领用时确认了仓库中有库存,但实际未使用。也可能是为了制造一个记录。“ 他放下了更新页,在操作台上保持了一段静止时间。周承岳接过更新页,放回夹克内袋,没有发表意见,转身沿着走廊走向大厅出口方向。 傍晚,陆维桢在加密平板电脑上打开仓储区周边的实时交通流量数据,查看了白色厢式货车可能经过的几条路线。交通数据显示,当天下午和傍晚时段没有与该车型匹配的车辆在仓储区周边出现,也没有发现其他异常停留或绕行记录。他在记录中标注了“当日无新出现“,关闭了数据界面。 入夜后,他重新在操作台前坐了下来,再次打开笔记本,翻到了记录收发器路径的页面。页面上的线条轮廓清晰,从h区开始,逐步延伸至物流园中继器。他在页面上新添了一行注释:“信号线缆已归还,未开封。货车未再出现。当前状态:路径完整,网络链路可确认。“ 他在该行注释下方画了一道横线,将之前记录的各种观察结果与当前的路径状态隔开。横线以下保持空白,没有添加新的记录。 窗外的夜色中看不到什么变化。他放下笔,视线从笔记本表面移向窗面。窗面上的灯光倒影没有波动。他在操作台前坐了一段时间,把笔记本翻回封面,没有再看里面的内容。 第109章 待令 第二天清晨,陆维桢在操作台前打开了物流园中继器的状态界面,检查了中继器在凌晨回传窗口期间的数据传输记录。记录显示中继器在窗口期间完成了数据发送,传输量保持在常规范围内,没有出现中断或重传。传输记录的末尾标注了传输完成的时间戳,在操作台屏幕上以稳定的绿点形式显示。 他在笔记本中记录了该次传输的完成时间,与连接节点组件的脉冲信号时间做了对比。两段时间之间的间隔在预期范围内,符合数据从收发器采集到中继器接收再向外发送的时序链条。他在笔记本中添加了一行标注:“时序链条完整,数据流通路正常。“ 上午,加密平板电脑收到外围组对物流园中继器配电箱周边区域的观察报告。报告显示配电箱附近的地面没有新痕迹,周围没有车辆停靠记录,检查井井盖表面保持原状。该区域在前一日没有再出现异常车辆或人员接近的情况。 午间,h区三个记录器的状态检查完成,各项指标正常,摄像头的画面与前一天对比无变化。 下午,陆维桢在设备架前打开储物柜,把管道内窥探测器取出检查了一次机身和信号线缆的状态,确认设备没有在运输或存放过程中受损,然后放回了柜中。 周承岳在下午进入大厅时,手里拿着一张打印好的仓储区周边道路监控点位分布图,走到操作台前,把图放在桌面上。图上用红笔圈出了物流园中继器配电箱附近的两处监控探头的覆盖范围,以及检查井所在区域对应的盲区位置。 “配电箱在监控覆盖范围内。“陆维桢看图后说,“检查井在盲区。白色厢式货车如果停在配电箱附近,会被拍到车牌。“ 周承岳没有回答,他在操作台侧面站了一会儿,把手机屏幕转向陆维桢。屏幕上是一段从监控画面截取的片段,显示一辆白色厢式货车停在物流园中继器配电箱附近的路边,停靠时间与外围组之前的报告一致。画面中的货车没有人员上下车,停靠结束后驶离,沿街道方向汇入主路车流。 “拍到了车牌,“陆维桢说,“和外围组之前查到的登记信息一致。“ 周承岳收回手机,在操作台旁站了片刻,没有移步。他站了一会儿后,沿着走廊走向电梯,脚步声在走廊尽头的电梯处消失。 傍晚,陆维桢在加密平板电脑上打开了之前记录的白色厢式货车的车牌信息页面,将页面上的内容仔细看了一遍。信息页上显示该车属于邻市一家物流公司,该公司在该区域没有分支机构。他在笔记本中记下了这组信息,但信息本身没有提供新的线索,也没有形成关联点。 窗外的天色在傍晚时分的过渡中逐渐变暗,窗面上开始出现室内灯光的倒影,桌面上没有被遮挡的视野。他在操作台前坐了一段时间,没有打开新的记录或文件夹,也没有移动桌面上的物品。窗面上的灯光倒影保持稳定,没有出现波动或变化。 第110章 驻留 第二天上午,陆维桢在工作站前重新打开了连接节点组件所在地的波形记录文件,从原始数据中筛选出连接节点组件在非回传窗口期间的脉冲信号,按照时间顺序排列成一组序列图。序列图显示连接节点组件在非回传窗口期间仍在持续发送低幅度的脉冲信号,而非处于完全静默的待机状态。脉冲的间隔在相邻回传窗口之间出现了规律的偏差——在窗口开启之前约四小时,脉冲间隔缩短了约五分之一,然后在窗口关闭后恢复到常规间隔。 他从笔记本中翻出之前记录的收发器型号参数,在参数表上找到了对应的待机模式描述——该型号设备的待机模式在非工作状态下通常会保持静默,不会主动发送周期性脉冲。如果收发器在非回传窗口期间持续发送脉冲,那说明它的运行模式与标准的待机状态不同。他查了收发器型号的技术参数表,在附录中查到该设备支持一种“低功率信标模式“,在这种模式下,设备会以降低的功率发送规律的脉冲信号,用于保持与接收端之间的同步校准。但附录提到这个模式需要由外部指令主动开启,而不是默认激活的。 “收发器运行在低功率信标模式。“他在记录中写道,“该模式需要外部指令开启,不是默认状态。脉冲间隔在回传窗口前四小时缩短,说明外部指令在定期调整设备的运行参数。“ 午间,加密平板电脑收到外围组对物流园中继器配电箱附近通信基站的信号日志查询结果。日志显示连接节点组件在非回传窗口期间的脉冲信号与通信基站的同步信号之间存在时间上的弱关联,两者的载波频率接近,脉冲出现的时段也与通信基站的某个维护窗口重叠。他在日志中记录了该结果,标注了“弱关联,非直接对应“,没有将两者建立为因果关系。 下午,陆维桢在白板上把收发器的路径图做了一次回顾。他在路径图中加了一行新的标注:“低功率信标模式开启,间隔在回传窗口前四小时缩短。外部指令定期调整。“他把标注放在路径图靠近h区端的位置,与收发器图标对齐。然后他放下笔,退后两步,检查了路径图上的标注与原有线条之间的位置关系。 顾晏从设备架前走过来,站在操作台侧面看了一眼白板上的新标注。她看了一眼标注的位置,没有说话,走回了设备架前。她站在设备架前,从收纳格中取出了微型信号探测器,检查了探测器的供电状态和存储容量,确认正常后放回原位。设备架上的收纳格在放置探测器后保持着前后的开合状态。探测器在放置过程中没有发出声音,收纳格的盖板在合上时也没有发出声响。盖板合上后与设备架的框架完全齐平。 傍晚,周承岳从大厅入口走进来,走到操作台侧面,在桌面上放下了一张打印好的通信基站维护记录页。页面上显示连接节点组件所在频段的基站曾在过去两周内进行过一次维护窗口的调整,维护窗口的时间段与脉冲间隔缩短的时间点对应。维护记录的签字栏里有一个名字,与弱电间伪装风机的施工记录上的签名相同。 陆维桢看着维护记录页上的签字栏说:“签字人和弱电间风机施工记录的签名一致。“他把这一信息记录在笔记本中,在页面上方加了一个日期,然后把页面放进了h区设备文件夹中。 周承岳在操作台侧面站了一会儿,保持沉默,然后转身沿着走廊向大厅出口方向走去。 入夜后,陆维桢在操作台前打开了连接节点组件在回传窗口前四小时的脉冲波形,放大了脉冲间隔缩短的部分,确认了脉冲间隔的偏差幅度与通信基站维护窗口的时间段之间存在固定的关系。他在记录中写道:“脉冲间隔缩短与通信基站维护窗口对齐。维护记录签名与弱电间风机施工记录一致。“ 他合上笔记本,在操作台前坐了一段时间。窗面上的灯光倒影没有变化,也没有出现新的声音或光线。他在操作台前又坐了一段时间,然后站起身,走向大厅出口方向,没有携带任何设备或记录工具。 第111章 巡边 陆维桢沿着员工通道走向地面,没有背包,没有工具,口袋里只有一把钥匙和手机。通道里的灯在感应到有人经过时逐段亮起,在他身后逐段熄灭。他走到地面层时,晚风从通道口灌入,带着围墙外绿化带草木的气味和城市远处传来的交通低响。他站在通道口边缘停了一下,等眼睛适应室外的低照度环境,然后沿着园区内部道路向北侧围墙方向走去。 围墙沿线的路灯间距约四十米,在路面上形成交替的光带和暗区。他沿着围墙内侧的巡逻步道以普通步速行走,经过三个路灯间距后,在围墙与一栋附属楼之间的夹道入口处停下。从这个位置望向仓储区的方向,可以看到检查井所在区域的上方,围墙顶部的铁丝网在路灯的反光下勾勒出一条细长的轮廓线。检查井的位置在围墙外约一百米处,从这个角度被围墙和绿化带的树冠遮挡,无法直接看到。 他在夹道入口站了一会儿,视线沿着围墙走向移动。没有移动的物体,没有异常的灯光或反光。他从口袋里取出手机,打开地图应用,确认了自己的位置与检查井之间的方位关系,然后关闭了手机,没有拍照或记录。 他沿着来路返回,经过员工通道入口时没有进去,继续沿着园区内部道路向西走了一段,在围墙转角处停下来。从这个位置,他可以看到物流园中继器配电箱所在区域的上方轮廓——配电箱本身被园区建筑遮挡,但配电箱旁边的一根照明灯杆从建筑群的天际线中突出,灯杆顶端的光源在夜空中形成一小团暖白色的光晕。光晕的亮度均匀,边缘轮廓清晰,没有闪烁或被遮挡的痕迹。 他确认了光晕的稳定状态,然后转身沿原路走回员工通道入口。 回到地下三层时,大厅里的灯光和离开时一样,操作台桌面上没有新增的物品。他在操作台前坐下,把手机放回桌面,把笔记本翻开到记录通信基站维护记录的那一页,在签字栏旁边用铅笔写了一个简写标记作为确认标记,然后合上了笔记本。 清晨,加密平板电脑在六点半收到了一条来自外围组的消息——一条记录显示在夜间巡查中,检查井附近的排水沟盖板表面出现了一片新的干涸水渍,面积约手掌大小,位于盖板边缘靠近围墙一侧。巡查人员在报告中注明该水渍在前一天的检查中未出现,周边地面没有其他湿润痕迹,周围也无水源外溢迹象。 陆维桢打开平板电脑时,水渍报告是当天第一条未读消息。他读完了报告,在日志中记录了水渍的出现时间和位置,并注明“前一天的检查中未出现“。他合上平板电脑放在桌面上。窗外的天色正在变亮,窗面上的室内灯光倒影逐渐变淡,边缘开始与窗外的天光交错。水渍的出现时间点与通信基站维护窗口的结束时间之间相隔较短,没有记录显示两者之间存在直接的关联。他把日志保存后,将平板电脑放在靠近窗户一侧的桌面上,与键盘之间保持了一段适当的距离。 第112章 验通 陆维桢放下平板电脑后没有立即移开目光。水渍报告的时间点正好落在维护窗口的边界区域,但水渍本身没有与任何已知的操作记录重合。他在日志中添加了一行标注:“水渍位于井盖边缘靠近围墙侧,前日不存在。未确认是否与人员接近有关。“ 他离开操作台,走到设备架前,从储物柜中取出一只小型金属箱,箱体尺寸约四十乘三十乘十五厘米,表面没有标识。他打开箱盖,箱内衬着减震泡沫,泡沫中嵌着一台手掌大小的黑色设备——信号注入器,配有可更换的天线接口和一条短数据线。他把金属箱放在操作台侧面的空处,没有取出设备,合上箱盖,放了回去,没有携带设备离开。 上午,顾晏从设备架前走过时,看到金属箱的摆放位置与之前不同,停了一下,然后走回了自己的工作站。 午间,加密平板电脑收到外围组对检查井排水沟盖板水渍的再次观察结果。报告显示水渍在当天上午经过日晒后已经蒸发,仅在盖板边缘留下了极浅的痕迹,无法提取液体样品或确定来源。周边地面没有发现其他湿润痕迹,排水沟内也没有异常的水流痕迹。报告没有提供进一步信息。 陆维桢在日志中记录了该次观察的结果,标注“水渍蒸发,无法提取样品“。 下午,周承岳进入大厅,在操作台前停下,把一张打印好的物流园中继器配电箱电气接线图放在桌面上。接线图上用红笔圈出了一条线缆的走向——从配电箱底部的接口点沿箱壁内侧向上延伸到中继器通信端口的位置。红笔圈出的线缆型号与收发器连接线一致,走线路径经过一个标注为“预留端子排“的中间节点。他在接线图的边角处写了一个数字,标注了该节点的编号。 “预留端子排。“陆维桢看着图上红笔圈出的位置说,“位于走线路径的中间节点。线缆经过预留端子排连接到中继器通信端口。“ 周承岳没有补充说明。他在操作台侧面站了一会儿,视线落在接线图的边角处,然后转身沿着走廊向电梯方向走去。他在穿过大厅出口的金属门框时放慢了步速,但保持连续,没有停顿。 陆维桢把接线图上的预留端子排位置与之前从管道末端画面中看到的线缆接口位置做了一次位置比对。两个位置在空间上对应,一个位于管道末端墙体内部,另一个位于配电箱内部走线路径上。中间由一段穿过配电箱基础结构的预埋管道连接。 他在操作台前坐了一段时间,然后从抽屉里取出一份空白的信号测试记录表。他把接线图上预留端子排的编号填写在测试记录表的“接口位置“栏中,在“连接方式“栏中写了“通过预埋管道连接“,没有填写测试结果或状态栏位。 傍晚,窗外的天色逐渐转暗。陆维桢在操作台前打开了物流园中继器的状态界面,确认了中继器的传输记录,传输记录显示当天没有出现新的异常事件。 他在笔记本中写道:“路径完整。预埋管道连接配电箱基础与管道末端接口点,中间经过预留端子排。连接节点组件处于运行状态,信号通道存在。当前步骤:验证通道与中继器之间的数据链路是否实际连通。使用信号注入器发送测试信号后,确认其能否到达中继器的通信端口。“ 他把笔记合上,搁在桌面上,然后拿起桌面上那只金属箱,走向设备架旁边的储物柜,打开柜门,从箱内取出信号注入器,将其安放在充电座上,用短数据线连接至工作站。注入器的接口指示灯在接通电源后切换到了待机状态的常亮,然后他开始等待指令。 第113章 注入 信号注入器在工作站侧面的充电座上亮着待机指示灯。陆维桢打开注入器的控制界面,设置了输出信号的频率、调制方式和传输速率,使其与连接节点组件的脉冲波形特征一致。他把目标地址设为物流园中继器的通信端口,用短数据线将注入器与控制界面连接后,在控制界面的输入栏中填写了与收发器传输协议匹配的测试数据包内容,然后保存了测试参数,没有按下发送键。 他在工作站前坐了一段时间,把注入器的输出功率和端口编号在记录表上重新确认了一遍。确认无误后,他合上记录表,按下发送键。信号注入器通过短数据线将测试数据包发送到工作站的输出端口,然后通过工作站与物流园中继器之间的网络连接发往目标地址。发送过程在控制界面显示为一条进度条,在不到一秒的时间内完成,随后界面显示“数据已发送“。 他打开物流园中继器的状态界面,刷新了传输记录。最新的记录条目在界面顶部显示,显示为一条新的数据接收日志,日志中包含了测试数据包的内容摘要。数据包的接收时间与发送时间之间的差值与预埋管道的长度匹配。数据包中没有触发告警或错误标记。 “测试数据包已到达。“陆维桢在记录中写道,“中继器接收并记录了测试数据包内容。数据包未触发告警。回路完整。“ 他关闭了信号注入器的控制界面,断开数据线,将注入器从充电座上取下放回金属箱内,合上箱盖,放回设备架下的位置。 清晨,加密平板电脑收到了一条来自物流园中继器周边通信基站的日志更新,显示在信号注入测试的时间段内,基站记录到了一次短暂的握手信号,信号源的位置与连接节点组件的安装位置接近,持续时间在可预期范围内。日志更新显示握手信号后被正常回复,没有出现错误或连接失败。 “基站记录到一次握手信号,源位置与连接节点组件接近。“陆维桢在日志中记录了该条目,“信号被正常回复,没有错误。“ 他合上平板电脑,重新打开物流园中继器的状态界面。中继器的状态显示为绿色,与连接节点组件之间的通信通道处于可通状态。 上午,顾晏从设备架前走过来,站在操作台侧面,问了一句:“注入的测试数据包包含什么内容?“ “一段与收发器传输协议匹配的测试序列。“陆维桢说,“持续时间和字段格式都与正常数据流一致。中继器把它当作常规数据接收了,没有触发告警。“ 顾晏没有说话,看了一眼信号注入器所在的位置,回到了自己的工作站。 中午,陆维桢在笔记本中整理了测试结果。他在路径图上画了一个闭环标记,表示收发器与中继器之间的数据链路已经验证通过。他在闭环标记旁边加了一行备注:“数据链路可通,中继器正常接收测试数据包。链路与传输记录的时间一致,符合预期。“ 傍晚,加密平板电脑收到了一条来自外围组对检查井周边区域的视频回放摘要。摘要显示在信号注入测试的时间段内,检查井区域没有出现人员或车辆接近的迹象,周边地面没有新的痕迹。 当晚,陆维桢把操作台上的信号测试记录表和路径图放在一起。他在记录表中补充了测试信号发送和接收的时间戳,与中继器传输记录中的对应条目做了对齐。他在桌面上安静地坐了一段时间,窗面上的室内灯光倒影在夜色中保持稳定,没有变化。窗面上的倒影与室内布局对应一致,桌面上各个物品的反射位置也在窗面上显示为清晰对应的镜像,没有发生错位或偏移。 第114章 测位 第二天早晨,陆维桢在操作台前把信号注入测试的结果重新读了一遍。测试数据包被中继器正常接收的记录条目仍然在传输日志的顶部,没有发生变更或被覆盖。他调出物流园中继器在过去几小时内的传输记录,查看了测试数据包之后的全部传输活动。测试数据包之后的传输记录恢复到常规状态,数据包格式和量级都与历史一致。 “测试数据包未触发后续异常。“他在笔记本中写道,“中继器没有因为收到非标准数据包而标记异常或中断传输。“ 上午,加密平板电脑收到了一条物流园中继器配电箱所在区域的环境监测报告。报告显示配电箱周围的信号背景噪底在测试数据包发送后的时段内没有出现明显变化,也没有记录到额外的数据包重传或握手请求。 “噪底稳定,无额外重传或握手请求。“陆维桢在记录中写道,“系统未检测到异常操作或故障。“ 午间,顾晏从设备架前走过来。她在操作台侧面停下,在桌面上放下了一页从物流园中继器存储卡备份目录中提取的接口协议说明。说明上标注了中继器通信端口支持的数据包类型列表,其中包含一种标记为“测试模式“的包类型,说明该模式用于在部署或维护期间检查链路的连通性,不触发告警或记录到正式传输日志中。测试模式数据包在被中继器接收到后会被存入临时存储区,然后在下一次回传窗口时随同常规数据一起发送出去,但在发送时它会被标记为测试数据。 “中继器支持测试模式数据包。“陆维桢读完说明后说,“测试数据包被存入临时存储区,在回传窗口时与常规数据一起发送,发送时带有测试标记。“ 他在操作台前坐了一会儿。测试数据包被中继器接收后存入临时存储区,并且会在下一次回传窗口时被发送出去——目的地是物流园中继器的主控端。测试数据包到达主控端时,它携带的测试标记会显示出来,告知主控端收到了一条来自中继器本地接口的测试信号。这不会触发告警,但会在主控端留下记录,表明有人在物流园中继器的本地通信端口上执行了一次连通性检查。 “测试数据包会出现在主控端的记录中。“陆维桢说,“操作员如果定期查看系统日志,他会看到这条测试记录。“ 顾晏站在操作台侧面,没有接话。她把接口协议说明留在桌面上,走回了设备架前。 下午,陆维桢在工作站上打开了物流园中继器的传输日志,查看了测试数据包在临时存储区中的状态。日志显示测试数据包已被标记为待发送,排入下一次回传窗口的发送队列。队列中的其他数据包均为常规数据,测试数据包在队列中的位置不显眼。 “测试数据包已排入发送队列。“他记录了这一状态,“将在回传窗口时随其他数据一起发送。“ 他关闭了日志窗口,在桌面上保留了接口协议说明的复印页。 傍晚,加密平板电脑收到外围组对物流园中继器配电箱周围人员在当天下午的观察摘要。摘要显示配电箱附近的街道交通正常,没有车辆长时间停留,没有人员接近配电箱或检查井区域。摘要中没有新增的异常信息。 陆维桢在日志中记录了该摘要的接收,没有添加标注。 周承岳在晚餐后进入大厅,走到操作台前,在桌面上放下了一张打印好的物流园中继器系统状态页面截图。截图显示中继器的系统状态栏中有一条“已接收测试包“的标注,标注旁边标注了时间戳和接口编号。截图下方的日志区域显示测试数据包的存储状态仍标记为“待发送“。 “主控端可能还不知道这条测试记录的存在。“陆维桢看着截图说,“测试数据包尚未被发送,暂时只存在于中继器的本地存储中。主控端要等到回传窗口时才会看到这条记录。“ 周承岳站在原地,视线看着截图,没有移动,然后转身沿着走廊向大厅出口方向走去。 当晚,陆维桢在操作台前把测试数据包的发送时间、接收时间、存储状态和预计发送时间整理成一条时间线,注明了各时间节点之间的间隔。他在时间线末端标注了主控端的可见性状态,并在状态旁边画了一个待定的标记,等待下一次回传窗口的确认。 窗外的夜色已经稳定,窗面上的灯光倒影完整地覆盖着玻璃表面。他在操作台前坐了一段时间,把接口协议说明的复印页和物流园中继器的状态截图放在同一侧,空出了桌面右侧的整块区域,并在空出区域的一角放了一叠备用纸张,方便随时取用。 第115章 待观 第二天上午,陆维桢重新打开物流园中继器的状态界面,查看了测试数据包的存储状态。日志显示数据包仍处于“待发送“队列中,没有提前发出或被移除。他在时间线上更新了状态,在“待发送“旁边标注了当前时间。然后他关闭了状态界面,没有刷新或重载。 午间,加密平板电脑收到了一条来自外围组对检查井排水沟盖板的观察报告。报告显示盖板表面的水渍已经完全消失,没有留下新的痕迹或变化。周边地面也没有出现新的脚印或物品放置痕迹。 周承岳在下午进入大厅,走到操作台前,把一张物流园中继器在当天上午的系统状态记录页复印件放在桌面上。复印件显示中继器的传输日志中,测试数据包的存储状态在记录页上仍然标记为“待发送“,位置就在队列中部,没有移动到前列。记录页的底部有一段系统自动生成的注释,注释内容是“队列状态正常,无异常延迟“。 陆维桢接过复印件,看了一遍。队列中的常规数据包持续排列在测试数据包前后,没有标记或被隔离。他在记录中写下“测试包在队列中维持待发送状态“,然后看了一眼周承岳的位置,后者在他查看复印件期间没有移动。他把复印件放回桌面,周承岳没有取回,转身沿着走廊向大厅出口方向走去。他的脚步声在走廊中逐渐减弱,经过电梯门时短暂停顿了一下,然后电梯门开启又合拢,脚步声随即消失。 傍晚,h区三个记录器的状态检查完成。声音记录器、摄像头和信号接收器都没有出现异常数据或状态标记。陆维桢在工作站前查看了摄像头的画面,画面显示盖板、地面和排水沟的可见区域的表面状态没有发生变化。他把检查结果记录在日志中。 天黑后,他在操作台前把信号注入测试的记录从头到尾又读了一遍。他从准备工作开始,依次读完了测试过程中的参数设置、测试数据包发送、中继器接收确认、测试数据包在传输日志中的存储状态等记录。他合上笔记本,把笔记本放在桌面上,在桌面上保留了一页打开的日志,窗口显示着物流园中继器的传输日志界面。日志界面的顶部显示最近的传输记录,测试数据包的存储状态在界面中段的一行中,显示为“待发送“,位置与之前查看时一致。界面的底部滚动条在固定位置停留了一段时间。 窗外的天色已经完全暗了下来,窗面上的室内灯光倒影覆盖了整块玻璃面,将操作台和桌面的景象完整地反射在窗面上。他在操作台前坐了一段时间,保持坐姿,视线落在窗面上的倒影里,窗面上桌面的轮廓与真实桌面位置一致,笔记本的倒影和桌面上笔记本的位置正好对齐。窗面边缘的深色边框把室内倒影约束在玻璃的范围内,光线的均匀分布使窗面上的景象在视觉上保持了连贯,整体画面占据窗面的全部区域。 第116章 明窗 回传窗口在次日凌晨两点开启。陆维桢在工作站前看到物流园中继器的状态界面从待机模式切换到传输模式,发送队列开始逐项处理数据包。界面上的进度条依次跳过一个又一个数据包,从队列头部向尾部移动。测试数据包在队列中部的位置,进度条经过时短暂停顿,随后继续推进,在日志栏中生成了一条新的记录条目。 他打开了日志文件,看到最新的记录栏中显示:“测试包已发出。“发送时间在窗口开启后的常规时段,发送状态标注为“成功“。界面上的进度条在窗口期间完成了全部发送任务后,于凌晨四点左右恢复到待机状态。 “测试包已发出。“他在记录中写道,“发送时间在窗口开启后的常规时段,发送状态为成功。“ 天亮后,加密平板电脑收到了外围组对物流园中继器周边通信基站日志的更新。更新显示在回传窗口期间,基站没有收到来自连接节点组件的额外信号,测试数据包的发出没有触发同地址的应答请求。 “基站未收到额外应答请求。“他在记录中补充了这一点,“测试包发出后无后续信号。“ 上午,顾晏在设备架前完成了一次常规巡检,确认了记录器的电池余量和存储余量,没有做更换。 午间,加密平板电脑收到了一条来自物流园中继器主控端的日志同步提醒,提醒内容为“数据包已接收“。他打开提醒的详细页面,看到其中显示在回传窗口期间接收到的数据包中,有一条被标记为测试模式,文件头部带有测试标记。 “主控端已接收测试包。“他在记录中写道,“测试标记已出现在主控端的日志记录中。“ 他没有在记录中添加推测性内容,只陈述了事实。 下午,周承岳进入大厅,在操作台前停下,把一张打印好的主控端日志记录页复印件放在桌面上。记录页上标注了测试数据包在接收端的处理方式:主控端接收到测试包后,将其存储在了日志归档中,没有触发告警或通知流程。 陆维桢看完复印件后放在桌面一侧,与之前存放的几份记录放在一起。 “测试数据包已经被主控端接收。“他在笔记本中写道,“主控端将其标记为测试包并归档,没有触发告警或通知流程。操作员是否已注意到这条记录目前未知。“ 他在笔记本的备注栏中加了一行字:“后续观察为主控端是否因为测试记录而对连接节点组件执行额外检查或重新配置。“ 傍晚,物流园中继器的状态界面显示当天的回传窗口已经结束,传输日志中没有出现与测试包相关的新条目或状态变更。顾晏在晚饭后经过操作台时,站了一会儿,看到那条备注后没有发问,只是确认了笔记本上已有的记录位置,然后走向设备架方向,把设备架上的几个储物箱盖子重新对齐了一次。她走回自己的工作台前,将未完成的记录补齐后便起身离开了工作台。 窗外的天色在夜间完全暗下来之后,操作台上的局部照明灯保持着低亮度的覆盖。他在操作台前坐了一段时间,窗面上映着室内桌面和灯光的倒影,与白天的状态一致。窗面边缘的深色边框把室内倒影约束在玻璃的范围内,窗面边沿的光线在倒影中形成一条均匀的亮线。窗面上的倒影在夜间光线条件下保持了持续的稳定,没有出现波动或变化,也没有在暗色背景上产生新的扰动或标记,只有桌面上照明灯的光线在窗面上形成一片均匀的亮区。 第117章 摆钟 测试包被主控端接收后的第三天,物流园中继器的状态日志中没有出现针对测试记录的任何操作反馈,没有额外的配置更新,没有参数变更,中继器的运行参数与测试前一致。陆维桢在每天例行查看状态界面时,注意到测试包发送后的两轮回传窗口内,连接节点组件的脉冲间隔没有发生预期外的变化,始终保持在低功率信标模式的常规间隔范围内。 “四十八小时无异常。“他在笔记本中记录道,“脉冲间隔未发生预期外变化,状态参数与测试前一致。“ 午间,加密平板电脑收到了一条来自航空动力研究所内部系统的通知——廖维的考勤记录显示他在当天上午九点四十分左右进入弱电间,停留约十分钟,然后返回岗位。弱电间在当天没有排定的检修任务或维护计划。 陆维桢打开平板电脑看完了通知,在笔记本中记录了廖维进入弱电间的时间点和停留时长,与弱电间配电箱侧壁上的散热风机位置做了位置对比。两处的位置相同,但时间点位于工作时间,与他在弱电间的常规访问时间一致。他把该次记录标注为“常规访问“,没有添加推测。 下午,周承岳从大厅入口走入,把一张打印好的物流园中继器系统日志截图放在桌面上。截图显示在凌晨的回传窗口期间,中继器的发送队列中有一项被标记为“测试包“的数据成功上传,随后的日志中有一条新的系统提示出现在截图末尾,内容为“建议在下一维护周期对该接口进行状态检查“。 陆维桢读完截图内容,在笔记本中记录下该提示,“建议接口状态检查。系统根据测试记录自动生成。“ 周承岳在操作台侧面站了一会儿,然后转身走向大厅出口,没有发表意见。 傍晚,陆维桢在工作站前打开了物流园中继器的状态界面,查看了当天的传输记录和系统日志。系统日志中没有出现与接口状态检查相关的执行记录或维护标记。他把这一情况记录在笔记本中,标明“未执行“。 “测试记录已被主控端接收。“他在当前节点总结中写道,“系统生成了建议检查提示,当前未执行。后续关注状态检查是否会被触发。“ 天色完全暗下来以后,陆维桢在操作台前重新翻看了从测试包发送到主控端接收这段时间内的全部记录。测试包成功发送、主控端成功接收、系统在日志中生成状态检查提示——三个关键点都已经确认。操作员方面到目前为止没有采取明显的外围行动。他检查了记录中所有相关的时间点和事件,在确认节点旁边的空白处画了一条短横线,然后合上了笔记本。 他在操作台前坐了一段时间。窗面上的夜色没有变化,也没有出现新的声音或光线。他在桌面上留了一页空白纸,笔搁在纸上方的位置。空白纸平铺在桌面上,周围没有其他物品,占据着桌面中央靠近键盘的区域,保持着一块干净、未使用的空间。 第118章 缓钟 第二天上午,陆维桢在工作站前打开物流园中继器的状态界面,查看了系统日志中“建议接口状态检查”的提示是否已被执行。提示仍然保持在日志的相同位置,没有被标记为“已处理”或“已忽略”,也没有新的操作记录出现在它周围。他刷新了界面,提示的位置没有变化,前后日志条目的顺序也没有发生新的排布。 “建议提示仍未执行。”他在笔记本中写道,“没有标记,没有后续操作,没有新记录。” 午间,加密平板电脑收到外围组对物流园中继器配电箱周边区域的观察报告。报告显示配电箱附近的地面没有新痕迹,检查井井盖表面保持原状,该区域在过去二十四小时内没有出现车辆长时间停靠或人员接近的迹象。报告末尾附了一段交通流量数据,数据表明配电箱所在路段的车流密度与前几日持平。 陆维桢读完报告后,在日志中记录了观察结果,标注了“无异常”。 下午,顾晏在设备架前做了一次常规设备检查,打开了储物柜,确认了管道内窥探测器和信号注入器的存放位置与上一次检查时一致。她检查了探测器的电池电量,电量没有明显下降,然后关上柜门,没有调整位置。她在检查单上勾选了对应的检查项,然后检查单填好后,放回了设备架顶部的文件夹中。 周承岳在下午晚些时候进入大厅。他走到操作台前,在桌面上放下了一张从航空动力研究所后勤系统调取的签字记录复印件——廖维在当天上午曾以“测试设备巡检”的名义在后勤系统申领了一副电工手套和一支小型手电筒。申领时间在上午十点左右,与弱电间访问的时间处于同一时段内。 “他申领了手套和手电筒。”陆维桢看着复印件说,“电工手套和手电筒,对弱电间的工作来说属于常规工具。” 周承岳没有说话,站在操作台旁边看了片刻,然后转身朝大厅出口走去。 傍晚,陆维桢在笔记本中把廖维申领工具的记录和弱电间访问记录放在同一页上。两段记录的时间区间重叠,都与弱电间的常规巡检时段一致。他在两条记录之间画了一条直线作为分隔,没有添加任何标记或注释。 天色暗下来以后,他在操作台前重新打开了物流园中继器的状态界面,查看当天回传窗口完成后的系统状态。回传窗口已经结束,传输记录中没有出现新的测试数据包或异常标记。系统日志中的建议提示仍然保持在原有位置,没有新增的响应记录或状态变更。中继器的运行参数和状态信息一切正常,各项指标都处在标准范围内,没有需要进一步操作或核实的异常。 窗外的夜色保持安静,路灯的光线在窗面上方形成一小片固定的光晕,边缘轮廓稳定。他在操作台前坐了一段时间,窗面上的光晕在暗色背景上保持着固定的位置,没有移动或改变形状。他过了一会儿后从桌面上拿起笔记本,打开到记录路径的那一页,那页上留着上一阶段写下的几行记录和线条,线条末端微微向上抬起,在页面上留出了充足的空间。他把笔记本放在桌面的空白区域,合上了最后一页,然后放下了笔。 第119章 压痕 凌晨一点,陆维桢走出员工通道时手里没有带工具。夜间的气温比前几晚低了几度,风从围墙方向吹过来时带着土壤和植被的湿润气味。他沿着园区内部道路走到北侧围墙的夹道入口处停下,没有沿围墙走向检查井的方向,而是折向偏西,穿过一片被建筑物遮挡的低矮绿化带,从一个平常不会使用的角度靠近物流园中继器配电箱所在的区域。 配电箱的路灯在夜空中形成一圈固定的暖白色光晕。他在距离配电箱约四十米处的一棵行道树后面停住,视线越过路灯的照明范围落在配电箱底部的接线接口位置。配电箱的侧面被路灯照亮了一部分,另一部分被箱体自身投下的阴影覆盖。接口位置正好处在阴影与照明之间的分界线上。 他在树后蹲了一段时间,保持不动。配电箱周围没有人员,路面上没有车辆。一段时间后他缓慢起身,走向配电箱方向,在距离配电箱约三米处弯腰看了一眼地面上的电气接线井井盖。井盖表面有一层均匀的尘土,尘土上有几道平行走向的细纹,像是某种柔性物件被拖过时留下的。细纹的宽度与一段线缆的外径相近,分布在配电箱底部接口的正下方。 他蹲在原地,用手机屏幕的微光照了一下细纹的方向。细纹从配电箱底部的接口位置向外延伸,朝向检查井方向,经过约一米后与地面的其他纹理混合在一起,无法继续追踪。细纹的边缘没有积尘,与周围有积尘的井盖表面形成了一处视觉上的分界。 他把手机屏幕关掉,起身沿原路返回。经过行道树时他放慢了速度,回到员工通道入口。 回到地下三层后,他在笔记本中写道:“配电箱底部电气接线井井盖表面有多条平行细纹,宽度与线缆外径相近。细纹从配电箱底部接口向外延伸,方向指向检查井。细纹边缘无积尘,形成时间在最近一次积尘之后。“ 他把这一发现单独列为一个条目,紧接在之前记录的“建议接口状态检查“之后。 天亮后,加密平板电脑收到外围组对配电箱底部电气接线井井盖的现场观察补充报告。报告确认了井盖表面的细纹确实存在,但无法确定其形成原因是线缆拖拽还是其他因素。 上午,顾晏走到操作台前,看到陆维桢笔记本上新添加的条目,翻到了上一页的测试包记录,将井盖上的细纹和测试数据包发送的时间做了轴向对比。两者之间的时间间隔与测试包被主控端接收后生成建议提示的周期相符。她没有添加任何标注,将笔记本放回桌面,然后走回了设备架前。 午间,加密平板电脑收到了一条来自航空动力研究所后勤系统的记录——廖维在测试包发送后的第二天申领了一卷绝缘胶带和一把管钳。申领记录上标注的用途是“弱电间线缆整理“。两件工具的组合与配电箱底部井盖和弱电间线缆的维护相符。 陆维桢在读完后,将廖维申领绝缘胶带和管钳的记录与井盖表面的细纹放在了同一页上。两段记录在页面上左右相邻,中间留有一小段横向间距。他没有用直线或箭头连接这两个条目,只是让它们在同一页上保持相邻。 周承岳在下午进入大厅,在操作台前站定,把一张配电箱底部电气接线井井盖的近景照片放在桌面上。照片上有一条细纹从井盖中心偏左的位置向外延伸,在靠近井盖边缘处与另一条更细的纹路交汇。两条纹路的交角与常见线缆的转弯半径一致。 陆维桢拿起照片看了一遍。两条纹路交角处有一小块灰尘被翻动过的痕迹,位于井盖表面与井圈之间的缝隙附近,表明有人曾将某种柔性物件穿过井盖缝隙,物件在通过时对缝隙边缘的灰尘造成了扰动,使灰尘的分布出现了局部偏转。灰尘的翻动方向从井盖表面向内延伸,与细纹的走向一致。 “井盖缝隙边缘的灰尘有局部翻动。“他在笔记本中写道,“翻动方向与细纹走向一致,与线缆穿过缝隙时可能产生的效果相符。“ 他把照片放在桌面上,与其他记录放在同一区域。窗外的光线在午后的过渡中保持着均匀的亮度,没有出现阴影移动或光线变化。他在操作台前坐了一段时间,窗面上没有出现新的倒影或干扰,只有窗外的植物枝叶在风中缓慢摆动,在窗面上形成一层不断变动但始终存在的浅色纹理。 第120章 定迹 照片留在桌面上,与绝缘胶带和管钳的申领记录隔着大约一掌宽的间距。陆维桢没有移动照片的位置,也没有把它挪近申领记录。他坐在操作台前看了一会儿两件物品之间的物理距离,然后打开笔记本翻到了新的空白页,在页面上方写下了日期。 他在日期下方画了一条横线,在横线下面写了一段文字:“测试包由中继器接收后,廖维在第二天申领了绝缘胶带和管钳。申领时间与他进入弱电间的时间重合。配电箱底部井盖表面的细纹形成时间与测试包被主控端接收后的时段一致。细纹方向指向检查井,灰尘在井盖缝隙处有局部翻动。“ 他在段落后方空了两行,然后继续写:“绝缘胶带和管钳的组合可用于弱电间线缆整理,也可用于打开电气接线井井盖后对线缆进行重新包覆或固定。申领时标注的用途是弱电间线缆整理,但工具同样适用于井盖区域的操作。“ 他合上笔记本,把笔放在桌面上的固定位置。 上午,加密平板电脑收到外围组对配电箱底部电气接线井井盖灰尘的进一步观察结果。观察结果基于一张从井盖上方约半米处拍摄的高清照片,照片上细纹在斜向光线下呈现出更清晰的轮廓——两条主要纹路从井盖中心偏左位置向外延伸至边缘,在接近井圈处与井圈内壁的灰尘边界交错。交错处有一小片灰尘的形态与周边的层状堆积不同,更接近被柔性材料擦过后的定向位移形态,位移方向与井盖表面的细纹走向一致。 “灰尘位移方向一致。“陆维桢在日志中记录了该观察结果,“与细纹走向一致,与工具申领时间接近。可确认井盖在最近一段时间内被打开过。“ 午间,周承岳从楼上下来,走到操作台前,在桌面上放下了一份签收单。签收单显示廖维申领的绝缘胶带和管钳已于当天上午归还,归还时包装完整,胶带的封口没有撕开,管钳的表面没有新的使用痕迹。签收单末尾有一行手写备注:“领用物品未使用,已原样归还。“ 陆维桢看完签收单后说:“胶带没有撕开,管钳没有使用痕迹。他可能不需要用这两样东西。也可能只是用它们来制造一个领用记录,与实际操作的关联需要通过现场痕迹来判断。“ 周承岳站在操作台侧面,视线落在桌面的签收单上,片刻后沿着走廊向大厅出口方向走去。 下午,陆维桢在工作站前重新打开了配电箱底部井盖的灰尘照片,把井盖表面细纹的走向与配电箱底部接口的位置做了轴向对齐。他将照片放大了井盖与井圈之间的灰尘翻动区域,确认了翻动方向从井盖中心向外延伸,与两根线缆外径的走向一致。他关闭了照片,在工作站上重新打开物流园中继器测试数据包被主控端接收后的日志记录,确认了建议提示的生成时间与井盖灰尘翻动时间的重合度。 他在笔记本上添加了如下内容:“绝缘胶带和管钳申领后被原样归还。井盖灰尘翻动的时间在测试包被主控端接收之后。从配电箱底部接口到检查井之间的地面上,存在线缆拖拽痕迹。这一系列观察结果与连接节点组件可能被检查或测试一致。“ 他在记录末尾标注了当天的日期,然后合上笔记本。 傍晚,加密平板电脑收到了一条外围组对配电箱底部井盖周边区域的观察报告,确认井盖表面没有被撬动的痕迹,周围地面没有新工具印迹或脚印,细纹仍可辨识。报告显示井盖的状态与白天观察一致。 陆维桢在日志中记录了该报告,标注“井盖状态与先前观察一致“。 天色暗下来以后,他在操作台前重新打开了笔记本,把记录连接节点组件的那一页从白板上的线条复原到了笔记本页面中。他在组件位置旁边加了一个标注:“在测试包被主控端接收后,线缆拖拽痕迹的走向与配电箱底部井盖到检查井方向一致,表面细纹与绝缘胶带申领记录的时间窗口重叠。该痕迹当前仍可辨识。“ 窗外的夜色中,路灯的光线在窗面上方的位置形成一小片固定的光晕,在暗色玻璃的衬托下占据了窗面顶部的小块区域。他在操作台前坐了一段时间,窗外没有新的声音或动静打破持续存在的背景环境音。 第121章 定态 第二天清晨,陆维桢在工作站前打开了连接节点组件的脉冲记录文件,将回传窗口前四小时的脉冲间隔数据与测试包发送前的历史数据做了逐项对比。两组数据在间隔缩短的量值和持续时长上没有差异,脉冲间隔的缩短幅度保持一致,缩短开始的时间点也与维护窗口的开启时刻对齐。他看到这些数据后,把两段数据在屏幕上并排排列,逐行对照了数值,确认没有发生变化。 “脉冲间隔的缩短模式在测试包发送后没有改变。“他在记录中写道,“缩短幅度和持续时长与历史数据一致。参数未发生变化。“ 他在笔记本中记录了该次检查的结果,并标注了检查日期。 上午,加密平板电脑收到了一条来自外围组对物流园中继器配电箱周边区域的观察报告。报告显示配电箱附近的地面没有出现新的痕迹。井盖表面的细纹在日间光照下与前一天相比没有扩大,灰尘的翻动方向保持了原有的走向。检查井区域的地面也没有出现新的脚印或车辆痕迹。 “井盖表面没有新增痕迹。“陆维桢在日志中记录了该观察,“灰尘状态与先前一致。“ 午间,顾晏从设备架前走过来。她走到操作台侧面,站了一会儿,然后开口说了一句:“记录显示井盖灰尘的翻动方向与线缆拖拽方向一致,申领工具与归还工具的时间窗口也都对应。当前没有证据表明操作员已经对连接节点组件做了任何物理改动。“ “是的。“陆维桢说。 顾晏没有继续追问。她站了一会儿后,走回了设备架前,打开了微型信号探测器的收纳格,没有取出设备,只是确认了盖板与设备架框架之间的密合状态,然后合上了盖板。 下午,陆维桢在工作站前再次打开了物流园中继器的状态界面,查看了当天的系统日志。系统中没有出现新的操作记录或状态变更。建议提示仍然保持在原有位置,没有新的响应记录出现在它周围。他在笔记本中补充了当天的状态记录,在记录末尾标注了时间。 傍晚,加密平板电脑收到了一条来自航空动力研究所后勤系统的更新记录——廖维当天没有申领新的工具或材料,考勤记录显示他在下午正常打卡下班,没有加班或晚间返回的记录。 周承岳进入大厅时天色已经开始变暗。他走到操作台前,把一张打印好的连接节点组件在近几天的脉冲信号摘要放在桌面上。摘要显示连接节点组件在测试数据包发送后的几次回传窗口期间一直保持在低功率信标模式下运行。 陆维桢看完摘要后,在笔记本中写道:“连接节点组件在测试包发送后持续保持低功率信标模式运行。未检测到参数重置、休眠或关机的记录。运行状态连续。“ 周承岳在操作台侧面站了一会儿,视线在桌面的摘要上停了一下,然后转身沿着走廊向电梯方向走去。他的脚步声在走廊中逐渐减弱,在电梯门的位置短暂停顿后消失。 天色完全暗下来以后,陆维桢在操作台前打开了笔记本,翻到了连接节点组件的那一页。他看了页面上的几行标注和日期,没有添加新的内容。窗外的夜色保持安静,窗面上方的光晕在暗色玻璃上占据着与前一天相同的位置,轮廓和亮度都没有变化,边缘在玻璃表面的反射中保持清晰。他在操作台前继续坐着,没有起身,窗面上的光晕在夜色中保持稳定,没有出现新的变化或移动。过了一会儿,他合上了笔记本,把它放回桌面。 第122章 静界 笔记本合上后,陆维桢的手指在封面上方停了一瞬,然后收回了手。他在操作台前没有开启新的界面或文件,也没有碰键盘。桌面上没有需要移动或调整的物品,笔记本、笔、记录纸和几页复印件都留在各自的位置,没有偏移或堆叠。 窗外光晕的轮廓依旧清晰,边缘与玻璃面的深色背景之间形成一条稳定的分界线。他坐了一段时间后起身走向设备架,打开储物柜看了一眼管道内窥探测器和信号注入器的存放位置。两件设备各自在隔层中保持固定,没有碰撞或移位,箱体表面的状态与存放时一致。柜门关上时,锁舌入位,发出一声短促的金属接触声。他回到操作台前重新坐下。 第三天上午,加密平板电脑收到外围组对物流园中继器配电箱周边区域的观察报告。报告显示配电箱底部电气接线井井盖表面细纹已经变浅,边缘的灰尘开始重新沉积。报告所附的照片显示细纹的轮廓已不如前两天清晰,部分纹路已被新落下的尘土覆盖。 “井盖表面细纹正在变浅。“陆维桢在日志中记录了该观察,“灰尘重新沉积。痕迹的可辨识度随时间降低。“ 午间,周承岳从电梯方向走入大厅。他在操作台前站定,看了一遍桌面上摊开的记录页面,视线逐一扫过这几天的记录和刚收到的观察报告。他看完全部页面后,没有做出指示或提出疑问,只伸手从夹克内袋取出一张折叠的打印纸,展开后放在桌面空余的位置上。纸上是一段从航空动力研究所弱电间配电箱周围提取的环境数据——在廖维进入弱电间的时间段内,配电箱附近的低频噪声水平出现了一次瞬时的尖峰,峰值出现的持续时间和结束时间与廖维在弱电间的停留时间存在部分重合。他没有说明尖峰的来源或指向,也没有在纸上做任何标记,然后转身沿着走廊离开了大厅。 陆维桢拿起打印纸看了一遍。配电箱附近的低频噪声尖峰可能与电气设备的瞬时负载变化有关,也可能是操作工具产生的感应信号。他在记录中标注了该时间段内低频噪声的特征,并将它与廖维在弱电间访问记录中的时间窗口对应起来,注明“时间窗口重合“。他把打印纸与桌面上已存放的记录放在同一区域。低频噪声的尖峰形态在记录页面上保持稳定,没有扩散或重叠到相邻的时间段内。 傍晚,加密平板电脑收到外围组对航空动力研究所周围区域的观察摘要。摘要显示廖维在当天的排班结束后正常打卡离开研究所,没有返回,也没有前往仓储区方向。 天色完全暗下来以后,他再次打开了连接节点组件的脉冲记录文件,将回传窗口前四小时的脉冲间隔数据与前几天的记录做了重叠比对。三条波形曲线在重叠后几乎完全重合,间隔缩短的幅度、持续时间和恢复后的间隔长度在三条曲线上保持一致,没有出现偏移。他在笔记本中写道:“脉冲间隔数据在三天的记录中保持一致。参数未发生变化。“ 他合上笔记本,在桌面上保留了一页空白纸。窗面上的光晕在夜色中仍然保持稳定,与前几天观察到的位置和亮度一致,边缘在玻璃表面形成了连续而对称的延伸线。他坐了一段时间,桌面上没有产生新的声音或光线扰动,窗外的环境没有变化,夜色在窗面的深色背景上持续保持平静,与室内桌面的光线形成对比。他保持坐姿,没有做多余的动作或操作,与桌面及周围环境共同维持着持续的静态。