第七章 数据深渊,我攥住了魔鬼的尾
仓库门在身后合拢,沉闷的声响隔绝了外界的嘈杂。
灰尘在从门缝挤入的光柱里张牙舞爪。空气浑浊,混合着陈年纸张的霉味、电子元件受热后的塑料焦味,还有一股淡淡的、铁锈似的腥气。杂物堆砌的阴影里,仿佛藏着无数双窥探的眼睛。
阿澈的手还攥着我的手腕。掌心滚烫,力道未松。皮肤相贴处,脉搏的跳动清晰可辨,分不清是他的,还是我的。
“干得漂亮。”
那四个字,像羽毛搔刮过心尖最敏感的褶皱,带起一阵细密的战栗。
我抬眼,在昏暗光线里撞进他的视线。帽檐阴影下,他眼眸深处不再是纯粹冰冷的审视或压抑的暴戾,而是翻滚着一种更为复杂的、灼热的东西——赞赏,或许还有一丝……后怕?
“手。”他忽然开口,声音低哑,松开了我的手腕,指尖却顺着我的小臂下滑,虚虚拂过我袖口那片深色的可乐渍。“没溅到身上?”
“没有。”我摇头,声音有点干。被他触碰过的皮肤,残留着奇异的麻痒。
他收回手,转身,不再看我,而是将注意力投向仓库深处。“蟑螂”正满头大汗地在一个废弃服务器机柜后面翻找,嘴里不住嘟囔着“马上好,马上好”。
外面网吧似乎恢复了点生气,隐约传来压低的议论和游戏音效,但再没有之前的放肆喧闹。阿澈刚才那一砸,镇住了场面。
很快,“蟑螂”抱着一个落满灰尘的纸箱和一个老旧的移动硬盘,畏畏缩缩地蹭过来。“东、东西……部分交易记录,纸质和电子的都在这里了……那台‘xx07’的主机,真的、真的拆了,就剩这几个可能相关的硬盘……”
阿澈没接话,走过去,单手掀开纸箱盖子。里面是乱糟糟的收据、手写便条和一些打印的聊天记录截图。他快速翻检着,手指沾上厚厚的灰。他的动作精准而冷静,目光如扫描仪,掠过那些模糊的字迹和数字。
我也凑近。纸箱里散发出的陈旧灰尘味更浓了,呛得人想咳嗽。阿澈忽然抽出一张皱巴巴的送货单,指尖在某一行停顿。
收货人签名栏,是一个极其潦草的花式英文签名,但隐约能辨出“Zhou”的轮廓。日期,恰好是周渊失踪前一周。
“这单‘配件’,送的地址是哪里?”阿澈问,声音听不出波澜。
“蟑螂”凑过来看了一眼,脸色更白:“这、这个……时间太久,记不清了,可能、可能是……”
“可能是什么?”阿澈抬眼,目光如冰锥。
“可能是……西郊!对,西郊那个老电子厂后面的仓库区!当时……当时送货的小弟回来说,地方挺偏,接货的是个戴鸭舌帽的,没看清脸,但说话腔调有点……有点不像本地人。”“蟑螂”语速飞快,急于撇清。
西郊仓库区。又一个地点。
阿澈将那张送货单单独抽出,塞进自己口袋。然后拿起那个移动硬盘,掂了掂。“这里面,有什么?”
“就、就是些客户资料备份,还有……还有那段时间的监控录像备份……不多,真的!”“蟑螂”急忙道,“兄弟,你要的都给了,能……能放我走了吧?我保证,今天的事,一个字都不会往外吐!”
阿澈看着他,忽然扯了扯嘴角,那笑容毫无温度。“你的保证,值几个钱?”
“蟑螂”腿一软,差点跪下。
“听着。”阿澈上前一步,逼近他,声音压得更低,却每个字都像淬了毒的钉子,“今天你没见过我们。这个仓库,你从没打开过。‘xx07’的主机,早就当废铁卖了。如果外面有半点风声,或者我查到你有半点隐瞒……”
他顿了顿,目光扫过仓库角落堆积的、一些明显来路不正的电子配件和包装盒。
“你猜,警察对你这些‘小生意’,还有你帮人‘处理’敏感信息的那些勾当,会不会感兴趣?”
“蟑螂”面如死灰,连连点头:“懂!我懂!绝对没有风声!我今晚就、就出城回老家待段时间!”
阿澈不再看他,抱起纸箱,拿起硬盘,朝我偏了偏头。“走。”
我们一前一后走出仓库,穿过依旧弥漫着紧张气氛的网吧大厅。那些上网的少年们低头噤声,无人敢直视。那个代码男和他的破电脑已经不见了,只剩地上一滩未干的可乐渍和碎片。
推开玻璃门,夜晚清冷的空气猛地灌入肺叶。温差让我打了个寒颤。阿澈拉高连帽衫的领子,走入街灯昏暗的巷道。我跟在他身后半步,心脏还在为刚才仓库里的一切剧烈跳动,但一种奇异的、并肩作战后的踏实感,悄然滋生。
我们没有原路返回。阿澈带着我钻进更复杂的巷网,中途甚至穿过一个夜间营业的嘈杂大排档,利用气味和人流短暂掩盖行迹。最后,我们在距离老街区几个路口外的一条僻静小街打了辆车。
车内昏暗,收音机里流淌着舒缓的爵士乐,与刚才的刀光剑影格格不入。阿澈报了一个我陌生的地址,靠近城市另一端的某个老旧居民区。
他靠在座椅上,闭着眼,怀里还抱着那个脏兮兮的纸箱。侧脸在窗外流动的光影里明灭不定,疲惫清晰地刻在眉宇间,但紧绷的肌肉线条并未放松。
“去那儿安全吗?”我压低声音问。
“暂时。”他没睁眼,“‘蟑螂’不敢立刻告密,但他背后的人发现失联,迟早会查过来。我们需要一个地方,尽快把东西理清楚。”
“你腿怎么样?”我看向他被牛仔裤包裹的左腿。
“死不了。”依旧是这句话,但语气少了些冷硬。他忽然睁开眼,看向我,“刚才,害怕吗?”
我没想到他会突然问这个。犹豫了一下,老实点头:“怕。但更怕……帮不上忙,反而拖累你。”
他沉默地看着我,眸光在昏暗车厢里闪烁。良久,才低声道:“你没拖累。你做得……很好。”
不是“干得漂亮”,是“做得很好”。评价更具体,也更……郑重。
我低下头,看着自己同样沾了灰尘和可乐渍的袖口,没说话。脸颊有点热。
车子在一个看起来很有年头的小区门口停下。楼房外墙斑驳,楼道感应灯多半坏了。阿澈显然对这里很熟,领着我在黑暗中爬上五楼,用钥匙打开一扇锈迹斑斑的防盗门。
屋子不大,一室一厅,家具简单到近乎简陋,但收拾得异常整洁,甚至有种刻意的、无人居住的冰冷感。客厅里只有一张桌子,几把椅子,和靠墙摆放的几个密封纸箱。空气里有淡淡的樟脑丸和灰尘味。
“安全屋之一。”阿澈简短解释,将纸箱和硬盘放在桌上,打开了灯。冷白色的节能灯光照亮房间,也照亮他脸上未褪的疲惫和那道已经结痂的细长血痕。
“先处理这个。”他拿起那个移动硬盘,连接到桌上的一台看起来普通、但显然经过改装的笔记本电脑。
屏幕亮起蓝光。他操作了几下,眉头渐渐拧紧。
“有加密。而且不是普通商用加密。”他快速敲击键盘,尝试了几个破解路径,进度条缓慢地爬行,然后弹出错报。“手法专业。‘蟑螂’手下那个代码男,没这个水平。”
“需要多久?”我问。
“常规破解,时间不够。可能触发自毁。”阿澈盯着屏幕,眼神锐利。他忽然看向我,“你之前……在群里‘纠正’低级PS错误时,展示过逆向分析能力?”
我愣了一下,点头:“写过一些简单的分析脚本,主要是针对图像篡改痕迹和 metadata 擦除……”
“过来。”他打断我,将电脑往我这边转了转,调出加密外壳的算法特征和几段日志碎片,“看看这个。用你的思路。”
这不是询问,是直接下放任务。一种被全然信任和需要的感觉,猝不及防地击中我。
我深吸一口气,压下杂念,拉开椅子坐下。屏幕的蓝光映着我的脸。键盘的触感冰凉。我凑近,仔细查看那些十六进制代码和异常调用记录。大脑飞速运转,剥离无关信息,寻找规律和可能的弱点。
“这不是标准的AES或RSA……”我喃喃自语,手指无意识地在空中虚划,“有自定义的混淆层……看这里,这个异常跳转,像是为了兼容某种老旧硬件的指令集……还有这个校验片段,模式很眼熟……”
记忆深处,某次为了分析一张被高度PS过的、用来黑周澈的“绯闻照”,我曾深入研究过某个小众图像处理软件的早期版本加密算法,那家公司后来被收购了,算法也改了,但一些底层逻辑……
我猛地抬眼:“能连外网吗?我需要查一个很老的、可能已经消失的开源代码库存档。”
阿澈深深看我一眼,没问为什么,直接起身,从角落一个箱子里拿出一台未拆封的、预付费的无线网卡设备,快速激活,插到电脑上。“用这个。痕迹我会处理。”
我点头,接入网络,手指在键盘上飞舞。时间一分一秒过去。房间里只剩下敲击声和空调低沉的送风声。阿澈坐在旁边另一张椅子上,闭目养神,但我知道他没睡,耳朵捕捉着一切。
汗水从我额角渗出。找到了!那个古老开源项目的残存镜像站!下载,解压,快速浏览源代码……就是它!一个早已被淘汰的、基于特定硬件序列号进行变种加密的冷门算法!
“我可能……有思路了。”我声音带着压抑的兴奋,“这个加密,需要原始生成环境的一个硬件特征码作为一部分密钥。‘蟑螂’的备份硬盘,很可能就是用他那台‘xx07’主机自带的某个特殊芯片序列号加密的!我们需要那个序列号,或者,模拟出那个环境!”
阿澈立刻睁开眼。“‘xx07’的主板或芯片,可能在那个纸箱的‘配件’里。”
我们同时扑向那个纸箱。灰尘扬起。顾不得脏,将里面的破主板、旧内存条、生锈的CPU散热器一股脑倒出来,借着灯光快速翻找。
冰冷粗糙的电子元件,尖锐的焊脚。手指被划了一下,沁出血珠,我也顾不上。
“这里!”阿澈从一堆杂物底部,抽出一块布满灰尘、型号古老的主板。他擦去表面污垢,借助手机的微光,仔细辨认板载芯片上极其微小的蚀刻编号。
“CX-9987-Beta……”他念出一串字母数字组合。
“就是它!”我扑回电脑前,将那段代码输入我刚刚调整好的破解脚本。心跳如雷鼓。
进度条再次开始爬行。1%……5%……20%……
缓慢,但坚定。
阿澈站到我身后,手撑在桌沿,俯身看着屏幕。温热的气息笼罩下来,带着他独有的、硝烟与青草交织的气味。
60%……80%……95%……
电脑风扇发出轻微的嗡鸣,像是负荷到了极限。
100%!
“咔哒”一声轻响,不是来自音箱,更像是意识中的幻听。
加密外壳瓦解。
文件夹列表弹出。
最上方,一个标注着“监控备份-西郊仓库-周”的文件夹,赫然在目。
还有下面,几个以代号命名的子文件夹,其中一个代号,让我和阿澈的瞳孔同时骤缩——
那个代号,与阿澈曾给我看过的一份、关于他哥哥周渊最后接触的某个境外资本背景的调查报告里,提到的某个中间组织代号,高度吻合!
我们不仅找到了地点。
我们可能,直接摸到了那根连接着资本黑手与周渊之死的、冰冷的数据链条!
屏幕的蓝光,映亮我们两人凝重而灼热的脸庞。
阿澈的手,不知何时,轻轻按在了我的肩膀上。
力道很沉。