硬盘是温的。
在报废了三年的机箱里,它不该是温的。
我握着那块老式机械硬盘,金属外壳上还有余温,像是刚被运行过。凯特和她的队员们围了过来,网吧里的客人意识到事情不对,已经悄悄溜了一大半。
“这不可能。”光头男——凯特介绍他叫汉森——皱眉说,“那台机器没通电。”
“是啊,没通电。”我转动硬盘,找到侧面一道几乎看不见的缝隙,“但有人给它装了独立电源,大概是一次性的,用完就烧毁那种。”
我用指甲撬开缝隙,硬盘外壳轻轻弹开。里面不是预想的碟片,而是一个微型装置,还在发出极轻微的嗡鸣,指示灯闪着微弱的红光。
“信号发射器。”凯特凑近看,“最新型号,有效范围五公里,用生物电池供电,能持续工作72小时。”
“而且,”我指了指装置底部一块焦黑的区域,“自毁装置启动过,但没完全成功。可能是因为我拆得太快。”
汉森拿出检测设备扫描:“有指纹吗?”
“有就怪了。”我把装置整个取出来,放在柜台上,“会用这种东西的人,不会留下指纹。但他们犯了个错误——”
我指向装置侧面一个几乎看不见的logo。
一只简笔画的蜘蛛,下面一行小字:ArachneTech。
“阿拉克涅科技。”凯特脸色沉下来,“三年前倒闭的瑞士安全公司,专为情报机构提供定制设备。倒闭原因是创始人意外死亡,公司数据全部销毁。”
“对,‘意外’。”我冷笑,“那家公司倒闭前三个月,我刚从他们的系统里黑出一份客户名单。猜猜谁在名单上?”
没人说话。
网吧里只剩下机箱风扇的低鸣,和远处街道偶尔传来的车声。烟雾在天花板下聚了又散,像解不开的谜。
“‘秃鹫’。”我轻声说,“暗网最大军火商,我的最后一个目标,周铭的死因。”
空气更冷了。
凯特盯着那个装置,冰蓝色的眼睛里闪过什么。她身后的队员们交换眼神,手重新放在腰间,这次更紧。
“所以这不是偶然。”汉森的声音很低,“‘幽灵’故意引我们来这里,故意留下线索,故意让你看到这个标志。”
“他们在玩一场游戏。”我说,“而我们是棋子。”
“也可能是猎人。”凯特突然说,抬头看我,“沈夜,当年‘捕鸟’行动,到底发生了什么?官方报告说你擅自行动导致队友死亡,但伊藤临死前给你留信息,现在‘幽灵’又用‘秃鹫’的标识——”
她没说完,但意思很明显。
“你以为我背叛了?”我笑了,但笑声里没温度,“女士,如果我背叛了,周铭不会死,伊藤不会死,我也不会在这破地方躲三年。”
“那为什么——”
“因为名单。”我打断她,从柜台下拿出笔记本电脑,接上硬盘里的装置,“伊藤说的名单。如果我猜得没错,是阿拉克涅科技的客户名单,完整版。我当年黑出来的只是冰山一角。”
电脑屏幕亮起,我手指在键盘上飞舞。黑色的命令窗口弹出,一行行代码飞快滚动。凯特和她的队员围在旁边,尽管看不懂,但神情专注。
“装置还在发射信号。”我说,“微弱,但持续。他们在用这个钓更大的鱼。”
“什么意思?”
“意思是有接收端在附近,五公里范围内。”我调出地图,一个小红点在闪烁,距离网吧只有八百米,“而且信号是双向的,不止发射,还接收。”
汉森立刻对着耳机下令:“定位,派两队人过去,要隐蔽——”
“别!”我按住他的手,“如果这是陷阱,你们的人过去就是送死。而且——”
我看着屏幕上跳动的数据流。
“——信号内容加密了,但我认识这种加密方式。军方级,而且是三年前就淘汰的版本。”
“淘汰的版本更安全?”
“不,但更私人。”我调出一个破译程序,开始运行,“用淘汰的加密方式,意味着只有特定人群能解读。就像用古英语写信,只有学过的人看得懂。”
破译进度条缓慢前进:1%,2%……
网吧里的挂钟滴答作响,每一秒都拉得很长。凯特的手下分散到网吧四周警戒,汉森守在门口,眼睛扫视着昏暗的街道。
5%,10%……
我点了根烟,盯着屏幕。三年前的画面在脑海里闪回:周铭的笑脸,东京深夜的小酒馆,伊藤举着清酒说“干杯”,还有最后时刻的枪声,血,无止境的血。
20%,30%……
“沈夜。”凯特突然轻声说,“如果你不想继续,我们可以换种方式。安全屋,证人保护,新身份,你可以重新开始。”
我看了她一眼。
“然后呢?躲一辈子?等‘幽灵’找到下一个知情人,再杀一个?下下个?”
“这是我们的工作——”
“这也是我的。”我打断她,烟在指间燃烧,“周铭是我兄弟,伊藤是我朋友。他们的血不能白流。”
进度条跳到50%。
电脑突然发出刺耳的警报声。
“被发现了。”我手指更快,调出防火墙,但已经晚了。屏幕上的数据流开始乱码,像是有什么东西在反向入侵。
“他们在反追踪!”汉森喊道。
“不。”我看着那些乱码,突然明白了,“他们在清理痕迹。要跑。”
话音未落,地图上的红点突然移动,以惊人的速度远离——车速,而且很快。
“他们动了!”凯特对着耳机喊,“所有单位注意,目标从东南方向撤离,车牌未知,车型未知,拦截!重复,拦截!”
耳机里传来回应,街道上响起引擎轰鸣。凯特的人出动了。
但我盯着屏幕,那种不对劲的感觉越来越强。太容易了,一切都太容易了。发现硬盘,追踪信号,对方逃跑——像写好的剧本。
“等等。”我喊住要冲出去的凯特,“不对。”
“什么不对?”
“速度。”我调出红点的移动轨迹,“从静止到时速八十公里,只用了三秒。什么车能做到?”
“跑车,改装车——”
“不,是故意做给我们看的。”我放大街道地图,指着红点出发的位置,“这里,老城区,窄巷,车根本开不快。除非——”
我调出实时监控,那片区是菜市场,凌晨两点,空无一人。但有几个摄像头是坏的,盲区。
“——除非车是假的,人在另一边。”
我切换程序,调用另一个数据源。屏幕分成两半,一半是虚假的红点在移动,另一半是热成像扫描——就在信号源最初位置的地下,有两个人形的热源,正在缓慢移动。
“地下室。”凯特反应过来,“他们还在原地!”
“对,在地下等我们的人追出去,然后从另一边溜。”我抓起外套,“给我枪。”
汉森看向凯特,凯特只犹豫了一秒,就从腰间拔出一把格洛克19,递给我。
“你会用?”
“周铭教的。”我检查弹匣,上膛,动作熟练,“他说我打游戏的手,开枪也不会差。”
我们从网吧后门溜出去,穿过堆满杂物的巷子。夜晚的老城区像迷宫,霓虹灯招牌在潮湿的空气里晕开,地上是积水和垃圾。凯特和汉森一左一右,另外四个队员分散在四周,呈战术队形前进。
目标建筑是一栋四层老楼,一楼是麻将馆,二楼以上是出租屋。信号源显示在地下室,入口在后巷。
“热成像显示两个目标。”汉森的平板上,两个红色人影在地下室一动不动,“可能在睡觉,或者埋伏。”
“我进去。”我说。
“不行。”凯特拉住我,“你是平民——”
“我是诱饵。”我甩开她的手,“他们在等我,不是吗?我不出现,他们不会动。”
“太危险了。”
“这三年哪天不危险?”我笑了,推开生锈的铁门,走进黑暗的地下室入口。
楼梯很窄,一股霉味和尿骚味混合的气味扑面而来。我打开手机手电筒,光束切开黑暗,照出墙壁上的涂鸦和蛛网。
下面很安静,太安静了。
我能听见自己的心跳,和身后凯特他们轻微的脚步声。他们跟下来了,但保持着距离。
楼梯到底,是一扇木门,虚掩着,门缝里透出微光。
我握紧枪,用脚轻轻推开门。
手电光照进去的瞬间,我看见了。
地下室很小,堆满破烂家具。正中央有张桌子,上面放着一台笔记本电脑,屏幕还亮着。桌子两边各坐一人,背对着门,一动不动。
“FBI!不许动!”凯特在我身后喊,队员冲进去,枪口对准那两人。
没反应。
汉森小心地靠近,用枪管碰了碰其中一人的肩膀。
那人倒了。
不,是那件外套倒了——里面是空的,用木棍撑着。另一个也是。
“假人。”汉森骂了一句。
但我盯着那台笔记本电脑。屏幕上是聊天界面,最后一条消息,发送于三分钟前:
“夜枭,你迟到了。”
消息发送者的ID,是一个简单的单词:Spider。
蜘蛛。
和硬盘装置上的logo一样。
“是陷阱。”凯特说,“调虎离山,他们不在这里——”
话音未落,头顶传来巨响。
整栋楼震动,灰尘簌簌落下。对讲机里传来急促的声音:“罗林斯长官!一楼发生爆炸!楼梯塌了!重复,楼梯塌了,我们被堵在地下!”
凯特脸色一变,冲向楼梯,但已经晚了。楼梯口被坍塌的水泥块堵死,只留下一个小缝,透进外面的光。
“他们在上面!”汉森对着对讲机喊,“请求支援!重复,我们被困在地下室,请求支援!”
但对讲机只有杂音。
“信号屏蔽。”我检查手机,无服务,“他们准备了干扰器。”
地下室里陷入短暂寂静,只有灰尘在光束中飞舞。六个FBI特工,加上我,七个人被困在不到二十平米的空间里,唯一的出口被堵死。
“氧气够用多久?”凯特问。
汉森检查设备:“这个空间,七个人,最多两小时。但如果他们放毒气或者灌水——”
他没说完,但意思都懂。
我走到桌子前,看那台笔记本电脑。屏幕还亮着,聊天界面停留在那句“你迟到了”。我尝试操作,但系统锁定了,需要密码。
“能破解吗?”凯特问。
“需要时间。”我坐下,从口袋里掏出一个小U盘,插上。这是我自己写的破解工具,本来是应付网吧里那些忘密码的客人的,没想到用在这里。
进度条开始读取。
头顶又传来声响,是脚步声,很轻,但很多,至少四五个人。他们在上面走动,说话声隐隐约约:
“都困住了?”
“七个,都在下面。”
“按计划,灌混凝土,二十分钟就能填满。”
凯特和队员们脸色变了。汉森冲向被堵住的楼梯口,用身体撞击水泥块,但纹丝不动。另一个队员试图用工具撬,但缝隙太小。
“冷静。”我说,眼睛盯着屏幕,“他们想让我们慌,慌了就会犯错。”
“不慌等死吗?”一个年轻队员声音发抖。
“等。”我敲下回车键,破解进度跳到30%,“他们不会直接杀我,否则没必要这么大费周章。这是一场游戏,而游戏需要玩家活着,至少活到游戏结束。”
头顶,有机器启动的声音,是混凝土搅拌机。然后是什么液体流动的声音,从楼梯的缝隙渗下来——灰色的水泥浆,带着刺鼻的气味。
他们真的在灌混凝土。
汉森脱下外套去堵缝隙,但根本堵不住。水泥浆像粘稠的血液,慢慢流进来,在地面蔓延。
“氧气会先耗尽。”凯特很冷静,但额头有汗,“混凝土完全封死前,我们会窒息。”
进度条:50%。
水泥浆已经漫到脚踝,冰冷,沉重。年轻队员在喘粗气,是恐慌的前兆。
“沈夜!”凯特抓住我的肩膀,“还要多久?”
“不知道。”我手指飞快,尝试绕过防火墙。但对方的防御很严密,每突破一层,就有新的一层。
60%。
水泥浆到小腿了。
机器声更响,更多的浆液灌下来。空气开始浑浊,带着水泥粉尘,呼吸变得困难。
一个队员开始咳嗽,另一个在发抖。汉森试图用工具在墙上打洞,但墙体是实心的混凝土,只有刮痕。
“沈夜……”凯特的声音有些不稳了。
70%。
我突然停下。
不对。
太顺利了。
破解虽然慢,但一直在推进,没有触发任何警报,没有自毁程序。这不合理,如果对方是能设下这种陷阱的人,不会留下这么明显的漏洞。
除非——
除非是故意的。
“等等。”我拔出U盘。
“你干什么?”凯特急了。
“这是诱饵。”我看着屏幕,那行“夜枭,你迟到了”在闪烁,像在嘲笑,“他们不是在阻止我破解,是在拖延时间。真正的出口不在这里。”
“那在哪?”
我站起身,水泥浆已经到膝盖。手电光照向四周,墙壁,天花板,地板。
地下室里堆满破烂:旧沙发,破柜子,废弃的洗衣机。我推开这些东西,敲打墙壁,听声音。
实心,实心,实心——
直到角落,一个旧书柜后面。
声音空洞。
“这里!”我喊。
汉森和另一个队员冲过来,合力挪开书柜。后面是一扇暗门,很旧,但门锁是新的电子锁,闪着红光。
“需要密码。”汉森试了试,锁死的。
“让开。”我举起枪。
“不行,可能连着警报——”
枪声在地下室回荡,震耳欲聋。电子锁冒出火花,门开了。
后面是一条狭窄的通道,有风吹进来,带着新鲜空气。
“走!”凯特下令。
队员们依次进入,凯特拉了我一把。我最后看了一眼地下室,水泥浆已经淹到桌子腿,那台笔记本电脑屏幕还亮着,那句“你迟到了”在浑浊的浆液中渐渐模糊。
我们沿着通道爬,通道很矮,只能弯腰前进。前面有光,是出口。
爬出去,是另一条巷子,离刚才那栋楼有五十米远。夜晚的空气从未如此清新,我大口呼吸,其他人也是。
“清点人数!”凯特低声命令。
“全员安全。”汉森回报。
远处传来警笛声,是凯特呼叫的支援到了。那栋楼的方向,混凝土搅拌机的声音已经停了,上面的人应该跑了。
“他们计划很周密。”汉森脸色难看,“我们完全被牵着鼻子走。”
“不。”我摇头,看着手里的U盘,“他们漏了一点。”
“什么?”
“他们在争取时间。”我说,“每一步,硬盘,假信号,假人,陷阱——都是在拖延。为什么?”
凯特沉思:“因为他们需要时间做别的事?”
“对。”我点头,“而最需要时间的事,是转移。他们在转移什么东西,或者什么人,不能让我们发现。”
对讲机突然响了,杂音很大,但能听清:“罗林斯长官,东区港口,第三码头,有异常情况。一艘货轮,注册在巴拿马,但船员全是东欧人,海关检查时发现武器。船名叫——”
信号突然中断。
但最后两个字,我听清了。
“——阿拉克涅。”
蜘蛛。
凯特和我对视一眼,同时开口:
“港口!”
我们冲出巷子,FBI的车辆已经赶到。凯特对着手下快速下令,汉森拉开一辆车的车门。
“沈夜,你留——”
“我也去。”我打断她,坐进车里,“游戏还没结束,不是吗?”
凯特犹豫了一秒,坐进驾驶座,发动引擎。
车冲进夜色,警灯闪烁,但没开警笛。凌晨的街道空荡,车速很快。**在座椅上,看着窗外飞速倒退的城市光影。
笔记本电脑屏幕上的那句话在脑海里挥之不去:
“夜枭,你迟到了。”
迟到了什么?
三年前的任务?周铭的死?还是别的什么?
车转过街角,港口的轮廓出现在远处,灯塔的光在黑暗中旋转。
那里,会有答案。
也会有更多问题。
但这一次,我不会再逃了。
有些债,必须用血来还。
无论那是谁的血。

