屏幕上的进度条又一次卡在了26%,红色的警告框突然弹出来时,李悦的手指在键盘上顿了一下。她没摘耳机,只是轻轻呼出一口气,白色的雾气在凌晨冰冷的空气里慢慢散开。
那口气像是从身体最深处挤出来的,带着整整一夜没睡的疲惫,还有一股说不清道不明的执拗。她的指尖还悬在回车键上方,微微颤抖着,像一根快要绷断的线。显示器幽蓝的光打在她脸上,映出眼下的淡淡青黑——这已经是她连续工作的第三十七个小时了。她一口水没喝,一点东西没吃,桌上只剩下一杯早就凉透的速溶咖啡,杯壁上爬着几道褐色的痕迹。
我就站在她身后,盯着那行“进程已终止”的提示。第三次了。拼来的两台旧电脑勉强撑起了运行环境,可对方的系统就像一层包着一层的洋葱,每次快拆到核心的时候,连接就会悄无声息地断开。不是崩溃,也不是报错,而是像被什么东西主动切断了一样。那种冷静、精准、毫无情绪波动的反制方式,不像是程序,倒像是……有意识的存在,在察觉危险的瞬间就果断舍弃一部分自己,只为保住最重要的东西。
赵勇靠在门边,手里捏着半截烟,没点。他盯着监控画面的小角落,眼神一动不动。画面上是空荡荡的走廊,灯光昏黄,摄像头角度固定,连一只飞虫飞过都能看得清清楚楚。他的手指无意识地摩挲着烟身,动作很轻,却透着一股压不住的焦躁。我知道他在等什么——哪怕是一个微弱的异常信号也好,总比这种死一般的安静强。
“我们撑不住了。”李悦终于开口,声音压得很低,仿佛怕惊醒什么。
我没说话,走到窗前。天已经亮了一会儿,灰蒙蒙的光线照在对面楼的外墙上,露出几块剥落的瓷砖。楼下有人推着自行车经过,车铃响了一声,很快消失在远处。环卫车洒水的声音传过来,单调又规律,和这座城市平常的节奏没什么两样。可我知道,就在这样的清晨里,某种看不见的东西正在悄悄蔓延。它藏在路灯的数据流里,躲在红绿灯切换的间隙中,甚至可能已经潜入城市供水系统的远程调度模块。
恒安智联,听起来是个高大上的名字,说是做智慧城市管理的,主打“物联网+AI”。三年前中标南湖新区的基建项目,合同金额超过八亿。表面上看,他们交付了高效的交通系统、智能安防和节能模型,一切都很顺利。可两个月前,市局技侦科在查数据时发现了问题:某些设备的日志时间戳对不上,通信频段还频繁跳到不该出现的范围。一开始以为是机器老化或者设置错了,直到一次停电测试揭开了真相——主电源断掉后,部分终端并没有真正关机,反而进入一种低功耗模式,偷偷往外发加密信号。
那一刻我们才明白,这不是故障,是伪装。
七十二小时,是留给我们的最后期限。现在已经过去了十三个小时。恒安智联的加密方式根本不是普通的黑客手段,它太严谨了,像是为长期潜伏量身打造的防御机制。警局现有的技术根本跟不上它的节奏。我们的防火墙像纸糊的一样被穿透,追踪刚建立就被反向注入假路径,连最基本的身份验证都被模仿得一模一样。更可怕的是,这个系统好像会学习——每一次我们失败的尝试,都会变成它下一轮升级的“教材”。
我转身走回操作台,打开随身带的加密终端。这是公安部特勤部门配发的量子加密设备,独立于市政网络,物理隔离,无法远程接入。指纹验证通过后,我翻出了私人通讯录。这里面存着几个人,都是过去在网络安全演练中认识的高手。他们不属于官方机构,但本事比很多正规团队都硬。有的曾破解军用通信协议被约谈,有的因为曝光企业漏洞被迫隐退。他们是游走在法律边缘的技术人,也是我们现在唯一能指望的力量。
我选了三个最有可能回应的人:一个叫“墨痕”,专攻嵌入式系统漏洞,十年前曾从一台报废的Atm机里提取出完整的交易密钥算法,后来销声匿迹;第二个是“老锚”,擅长重建通信协议,在全国攻防赛里三天还原出被删改的标准,被称为“活体协议解析器”;最后一个叫“灰线”,参与过城市级物联网安全设计,后来因拒绝签保密协议退出,据说掌握一套未公开的底层验证机制。
我一条条发送消息,内容简短——案件代号“影蚀”,技术特征为多层伪装头文件、动态跳频干扰、信号重构覆盖,请求协助分析脱敏后的波形数据,并附上处理过的日志样本。所有信息走端对端加密通道,不留痕,不联网。每条消息发出前,我都手动核对三次加密参数,确保不会泄露任何元数据。
发完最后一条,我把终端扣在桌上,金属外壳撞出一声闷响。李悦抬头看了我一眼,眼里有疑问,也有期待。我没说话,只点了点头。
赵勇看着我:“真要找外面的人?”
“现在不是讲规矩的时候。”我说,“内网不能碰,设备拼到极限也没用。再拖下去,等他们启动下一步计划,我们就彻底没机会了。”
他没再问,只是把烟塞回口袋,站得更直了些。他知道这意味着什么——一旦引入外部人员,整个调查的风险就变了。不只是技术问题,还有责任归属,甚至可能被郑铭抓住把柄,说我们擅自泄露警务数据。郑铭是分管副局长,表面支持调查,实际处处设限,每次批资源都要拖两天,理由永远是“需评估舆情影响”。我们都清楚,他在等我们失败,好顺理成章地把这事定性为“技术误判”,然后继续推进和恒安智联的合作。
但我别无选择。
十分钟后,第一条回复来了。
“墨痕”——那个搞逆向的家伙。他只回了一句:“你怎么证明这不是钓鱼测试?”
我立刻调出公安认证接口,生成一次性核验码发给他。同时让李悦从离线硬盘里取出一段非敏感日志——就是之前发现860mhz预充脉冲的那一段——做二次脱敏后共享过去。这段数据不含用户信息,也不涉及具体位置,只保留信号结构特征,足够分析又不会踩红线。
“原始数据来源?”他追问。
“南湖公园监控节点,K-7区域备用线路。”我回,“采集时间前日凌晨三点十七分,设备编号cctV-4192-b。”
那边沉默了几分钟。
然后他说:“数据结构确实不对劲。你们遇到的是‘活协议’。”
“什么意思?”
“不是静态加密,而是会自我修复、自动变形的通信框架。每次被攻击,它就会丢掉受损的部分,启用备份逻辑。你们之前看到的‘终止’,其实是它在主动清除入侵痕迹。”
我盯着这条消息,心里一沉。
这就解释了为什么每次破解都失败——我们面对的根本不是一个固定的程序,而是一个能自己进化的东西。它不像普通病毒那样藏起来,而是以“合法身份”混进正常服务里,像藤蔓一样慢慢生长,等到被人发现时,早已根深蒂固。更吓人的是,它还能模仿周围系统的交互模式,完美伪装成正常流量,躲过检测。
“你能破吗?”我问。
“不一定。但可以试试。条件是全程离线,不用你们的市政网络,也不留任何可追溯路径。另外,需要至少两名技术人员同步建模,一人主拆,一人模拟响应。”
我看向李悦。
她已经摘下耳机,正看着我。“我可以顶住。”她说,“只要设备不停电,我能一直工作。”
她语气平静,却有种让人安心的力量。我知道她有多累,也知道她扛着多大的压力。她是这次行动的技术总控,不仅要清理数据、搭环境,还要实时监控每一层解包过程中的异常反馈。每一个决定背后,都是几十次失败的经验积累。但她从来没退缩过,也没抱怨过一句。
我点头,转头对赵勇说:“去后勤组,把那两台备用终端搬来,装在隔离区。电源单独接,网口全封。”
他应了一声,转身出门。
李悦重新戴上耳机,手指放回键盘。她把老旧加固硬盘再次接入新拼装的工作站,启动虚拟沙箱环境。屏幕上跳出权限确认框,她输入密码,加载初步解包模块。那串密码长达三十八位,包含大小写字母、特殊符号和数字组合,每七十二小时换一次。整个过程中,她的眼睛始终盯着内存占用曲线,一旦出现异常波动,立即切断进程。
我又收到“墨痕”的消息:“我已经联系另一个熟人,搞协议重建的,叫‘老锚’。他愿意远程接入,但必须确保身份匿名,且不承担后续法律责任。”
“接受。”我回,“所有操作记录由我负责清除,成果归案管,人不留名。”
他没再回复,但五分钟后,我的终端提示新的加密信道建立成功。信道标识为【Echo-7】,采用双向零知识认证,传输过程中自动分片重组,即使被捕获也无法还原原始内容。
李悦那边也传来动静:“沙箱环境准备完毕,可以接入外部节点。”
我按下确认键,授权虚拟机桥接。
三秒后,主屏幕中央跳出一个三维拓扑图雏形——线条交错,层层叠叠,像一团缠在一起的金属丝。最外层标着“伪装层_01”,内部则显示多个隐藏节点正在缓慢刷新状态。这些节点之间不是固定连接,而是像神经突触一样动态重组,每一次刷新都意味着一次微型演化。
“这是……?”李悦轻声问。
“协议结构模拟。”我盯着图,“他们开始拆了。”
她迅速切换到命令行界面,输入一串指令,将本地解析结果同步上传。画面微微抖动了一下,随即,其中一个深层节点开始展开,显现出一段未标记的校验码序列。
“hAcN_2021。”她念出来,“又是恒安智联的签名。”
这个编码我们见过多次,但从不出现在公开文档中。它是恒安内部调试用的硬件抽象控制编号。而现在,它竟然出现在一个自称“公共安防协议”的系统核心层,说明这套架构根本不是为民用设计的。
就在这时,赵勇推门进来,怀里抱着两台主机箱。他把机器放在空桌上,拍了拍灰尘:“电源模块换了新的,应该能撑住高负载。”
“装好马上开机。”我说。
他点点头,蹲下身开始接线。动作熟练得不像个刑警,更像是常年泡在机房的技术员。事实上,赵勇早年曾在武警通信部队服役,退役后才转岗刑侦。他对电子战的理解远超一般执法人员,这也是为什么我能信任他参与如此敏感的操作。
李悦的手没停。她将外部传来的解构模型导入本地系统,尝试匹配之前捕获的干扰波形。屏幕上,两条曲线开始缓慢重合。一条来自现场监听设备,另一条则是“墨痕”团队重建的理想响应模型。随着匹配度提升,误差带逐渐收窄。
“频率吻合度百分之八十九。”她低声说,“他们找到了底层传输规律。”
我刚想说话,终端又震动了一下。
“墨痕”发来一句话:“你们布控点越多,他们越容易察觉。下次行动,别按常规路线走。”
我没回,只是看着主屏上的拓扑图一点点展开。第一层伪装已经被剥离,第二层正在解压。进度条缓慢爬升,数字跳得极稳,仿佛不受外界干扰。但这稳定背后藏着巨大的危险——对方随时可能感知到深层扫描的存在,进而触发全面自毁协议。
赵勇接好了最后一根电源线,按下开关。主机风扇转动起来,发出低沉的嗡鸣。室内温度开始上升,空调制冷明显跟不上。李悦伸手摸了摸散热格栅,眉头微皱:“得加装临时散热扇,不然撑不过两小时。”
“我去器材库找找。”赵勇说着就要起身。
“等等。”我拦住他,“先别动。现在任何外部设备接入都有风险,万一他们正在监听电力波动呢?”
大家一愣。
确实,如果这个系统真的具备全域感知能力,那么电流变化、网络负载、甚至是空调启停,都可能成为暴露我们的信号源。我们不能再假设自己完全隐蔽,而必须考虑对方是否已经在暗处注视着这一切。
“那就手动降温。”我说,“打开窗户,拿湿毛巾裹住机箱侧面,定时更换。”
李悦点头,脱下外套递给赵勇:“用这个垫着,别烫伤。”
赵勇接过衣服,默默走向窗口。夜风灌进来,吹乱了桌上的纸,也带来一丝凉意。他把毛巾浸湿拧干,小心翼翼地敷在发热最严重的部位。那一幕看起来有点荒诞,却又格外真实——一名持枪刑警,蹲在地上用t恤包着服务器散热。
李悦双手放回键盘,深吸一口气。
“开始第二轮同步拆解。”她说,“现在进入核心层试探。”
我坐回主控台旁的椅子,眼睛没离开屏幕。
拓扑图中央,一个新的节点缓缓亮起,颜色偏暗,边缘带着不规则的锯齿状裂痕。那是从未见过的协议模块,结构复杂得近乎生物神经网络,节点之间的连接呈现出明显的层级跃迁特征。更让人不安的是,它的数据流向并不指向任何已知服务器集群,而是汇聚向一个未知坐标——经度113.56,纬度22.89,位于珠江口外海约十二海里处,一片本应空旷的水域。
“这里有海上基站?”我问。
李悦摇头:“查过海事登记,那片没有注册设施。而且信号强度显示,接收端体积不会超过一艘渔船。”
“除非……”赵勇插话,“它根本不在水面。”
我们都沉默了。
如果信号终点是一艘潜航器,或者海底部署的无人舱,那就意味着这场布局早已超出地面监控范畴。他们不仅控制了城市的神经系统,还在海洋深处埋下了后门。
“继续深入。”我说,“我要知道它最终通向哪里。”
李悦敲下回车键,光标跳入命令行窗口。
屏幕闪了一下。
接着,整块主显示屏突然黑了。三秒钟后,一行白色字符缓缓浮现:
“你们不该来这里。”
字体是标准的终端样式,没有任何修饰。可正是这份平淡,让人心底发寒。
李悦猛地拔掉网线,赵勇一把抽出主机电源插头。房间里只剩下应急灯的微光,和彼此急促的呼吸声。
“他们发现了。”赵勇低声说。
我没有回答,而是反复回想那句话。它不是系统提示,也不是自动化拦截——它是回应,是对话的开始。
对方知道我们在哪儿,知道我们做了什么,甚至知道我们下一步想做什么。
而现在,他们选择了开口。
几秒后,我的加密终端震动了一下。
一条新消息来自“墨痕”:
“快撤。他们启动了反溯源陷阱。刚才那段数据流里夹带了定位载荷,一旦完整解析就会激活地理锁定。”
我立刻下令:“销毁所有临时缓存,断开所有存储介质,执行紧急擦除协议。”
李悦熟练地插入物理擦写盘,启动强磁消磁程序。硬盘指示灯疯狂闪烁,随后归于沉寂。赵勇则将所有纸质记录投入碎纸机,连同那张写着Ip跳转路径的草稿纸也没放过。
做完这一切,我靠在椅背上,闭上眼。
我们输了这一局。
但他们暴露了一个致命弱点——他们会害怕,会反击,会留下痕迹。
而只要有痕迹,我们就还能追。
窗外,晨光渐亮,照进这间堆满电缆与尘埃的临时作战室。新的一天开始了。
战斗,才刚刚开始。