第2章牧羊犬的嗅觉
门锁的响应速度,比他预想的更快。
锁舌回缩的轻响,像一根钉子楔进林远的耳膜。
他没有开灯。
留给他的时间,最多十秒。
身体比大脑先动了,右手抄过椅背上的双肩包,Ghost_Code的硬盘和备用本全在里面;左手抓起外套,人贴着墙根滑进卧室。
卧室的窗是老式推拉窗,六楼,正对着楼体外侧那道锈死多年的维修梯。
物业五年前就撤了,这道梯子成了废铁,也成了这栋楼里唯一没人盯着的路。
他单手拧开窗锁,窗框发出一声干涩的呻吟,凌晨的冷风裹着湿气,兜头浇了他一脸。
林远把背包甩上后背,翻身跨上窗台,脚跟探向第一级铁梯。
铁梯冰得像一块冰。
锈渣簌簌往下掉,扎进他的领口。
双手交替扣住栏杆,整个人顺梯下滑,鞋底蹭着铁管当刹车,掌心被锈刺扎出一片细密的刺痛。
降到五楼窗沿高度时,头顶传来“哐”的一声闷响。
不是铁梯。
是他家防盗门被彻底推开的声音。
紧接着,一个男声从六楼飘下来,冷静得像在念购物清单:
“目标不在。数据残留温度较高,离开不超过两分钟。”
林远扣着栏杆的手指,猛地收紧。
数据残留温度。
对方连他刚断电的机箱余温都摸得到。
这不是普通的追债,也不是私家侦探。
他咬死后槽牙,加快下潜,铁梯在夜风里轻轻晃,每晃一下,都像在替楼上的人指路。
四楼。三楼。
他翻身撞进三楼楼道的矮窗,膝盖磕在消防栓铁皮箱上,钝痛顺着腿骨炸开。
他硬是没吭声。
楼道的声控灯没亮。
林远贴着墙摸下防火梯,绕开正门,从小区后墙的豁口翻了出去。
凌晨两点半的街道空得像被抽走了魂,只有红绿灯还在机械变色,照着一地无人认领的影子。
他不敢打车。
打车要实名,要人脸,要留下轨迹。
林远压低帽檐,专挑没监控的小巷,步行二十多分钟,在一条背街口看见了那块蓝光招牌:
“极速网咖·24小时”。
玻璃门里,收银小哥趴在台子上打盹,屏幕冷光把半张脸照得发青。
林远抽出三张百元现金,推门,纸币拍在台面上。
“包夜,最里面的机子,不办卡。”
小哥迷迷糊糊抬眼,看看现金,又看看那顶压得极低的帽檐,什么都没问。
现金,是这个时代最后的匿名权。
037号机在最里侧的墙角,两侧被立式机箱挡死,头顶是排风管道,监控的盲区。
他坐下,第一件事是拔掉前面板的麦克风线,才按下开机键。
风扇转起来,蓝光漫上屏幕。
登录界面弹出的瞬间,林远的手指悬在键盘上,停了两秒。
惯用的匿名节点,还敢不敢用?
他先挂了一层海外代理试探。
刚握手成功,响应里就弹出一行小字:
【此节点已被标记:关联异常流量】
换第二个。
【访问被拒绝】
第三个,连接超时。
林远盯着屏幕,指尖一点点凉下去。
他埋了三年的那几条路,全废了。
不是巧合。
对方能在他家装监控,能深夜发短信,能让门锁自动开,顺手掐掉他的匿名通道,只是动动手指的事。
而且他们没封死整个网络。
只封死了“林远会走的路”。
这是留给他的窄巷,逼他自己钻进去。
林远深吸一口气,放弃老渠道,摸进灰产圈口口相传的一个论坛,没有域名,只有每六小时换一次的洋葱地址,圈子里叫它“下水道”。
页面加载得极慢,像素一行行往上爬。
置顶帖三个加粗大字,扎进他的眼睛:
【深潜专区】
帖子列表长得吓人。
《深潜三年,我从社恐熬成了团建之王》
《带瘫痪老母进去,她如今会自己网购了》
《说真的,深度模式比女朋友还懂我》
点赞清一色九千起步,回帖里全是“泪目”“真实”“神作”。
林远一条条点开,手指越滑越快。
不对劲。
这些帖子是同一种腔调,同一种排版,连感叹号的位置都像复制粘贴的。
而它们底下,偶尔夹着几个画风突兀的楼层:
“我哥进去了三个月,账号注销了,人呢?”
“求证:神经反馈模块是不是会偷偷……”
每一层后面,都跟着同一个刺眼的灰字:
【该内容已被删除】
往上一页。
同样的话,换个账号,又发了一遍。
再翻,再发,再删。
像有人拿粉笔在浪头上写字,写一笔,抹一笔。
海浪从不疲倦。
写字的人也不。
林远的喉咙发干,在这些残骸之间继续翻找“幽灵代码”,翻到十几页时,一个ID撞进视线——
雨中的纸飞机。
帖子标题:《我的脸被偷走了,深潜AI替身线下实录》
发布时间:十七天前。
详情页下方躺着那行灰字:【该内容已被删除】。
但灰字上方,是同一个ID、同一个标题的第四次重发。
时间戳:六小时前。
四次。
四拨人用同一个名字,把同一段视频顶回浪头。
林远点开了还有缓存缩略图的楼层。
画面加载出来。
一个二十出头的女孩,宿舍背景,素颜,眼下两团青黑,嗓子哑得像被砂纸磨过:
“我叫何雨彤。”
“上个月十九号晚上,我在图书馆闭馆自习。校园卡、门禁、签到记录,全都有我。”
“可同一个晚上,另一个‘我’,出现在城东的深潜线下粉丝会。”
“有照片,有视频,有人跟她合了影。”
“那张脸,是我的脸。眉毛、痣、笑起来左边的梨涡,一模一样。”
“可那个人不是我。”
女孩突然凑近镜头,整张脸怼满屏幕,眼睛红得像泡过血:
“最可怕的是什么?我报警了。巡捕调了粉丝会签到——‘何雨彤’三个字,笔迹和我的一模一样。”
“我爸妈说,那晚给他们打电话的就是我,连声音都是我。”
“现在全世界都觉得我疯了。”
“只有我知道,有什么东西把‘我’偷走了,正顶着我的脸,活在世上。”
视频最后三秒,画面剧烈晃动,像被人夺走手机,最后定格在半张惊恐的脸和一道被推开的门缝。
黑屏。
网咖的冷气嗡嗡地吹,林远后背的汗却一层层往外渗,把椅子洇出一小片湿意。
脸能被偷走。
轨迹能被伪造。
那弟弟那条“主动注销、退还押金、流程合规”的登录记录:
“啪”的一声,在他脑子里对上了榫。
那不是林安注销的。
那是“林安”。
就在这个念头炸开的同一秒:
屏幕右上角的网络图标闪了一下。
红叉。连接。红叉。连接。
紧接着,037号机的屏幕自己黑了,两秒后重新亮起,弹出一个蓝色界面:
【系统更新】
【检测到重要安全更新,请勿关闭计算机。配置中……17%】
进度条下,一行小字:来自您网络服务商的推荐更新。
凌晨三点,城中村黑网吧,ISP主动推送系统更新?
林远攥紧鼠标,掌心的汗黏在塑料壳上。
中间人攻击。
对方接管了这条线路,把他的机器重定向进一个伪装的隔离界面,等进度条走完,浏览记录、缓存、那个视频,全部一锅端。
他们甚至懒得把进度做快,笃定他跑不掉。
拔电源?异常中断本身就是信号,楼下说不定就候着一辆车。
硬拼,是死路。
那就给这条他们亲手修好的路——喂一点他们咽不下的东西。
Ghost_Code.7z解压时他做过全量校验,文件结构深处嵌着一小段独立校验串,二百五十六位,不服从任何现有协议。
当时他以为那只是弟弟的签名习惯。
现在他明白了。
这是一枚专门捅别人锁孔的探针。
林远的手指在键盘上敲出残影。
本地脚本,三十行,不落地:把校验串封装成最高优先级数据包,标头伪造成保活心跳,顺着攻击者搭好的重定向通道,反向灌回去。
路是你们修的,就别嫌我倒东西。
回车。
伪更新的进度条走到23%。
数据监控曲线猛地竖起一道尖峰,像心电图上垂死者最后的那下挣动。
通道另一端,那台正归拢千条数据流的服务器,收到了这个包。
先读标头——标头说:我不可丢弃。
再拆内容,二百五十六位,无协议、无格式、无一处可解析。
解析失败。
重试。
失败。
重试队列开始堆叠。
每个心跳包都自称最高优先级,服务器疯狂自我复制、重发、向上级索要确认——
一条用来麻醉猎物的导管,被人从里面塞进了炸药。
同一时刻,城市另一头,一辆熄着灯的深灰商务车里。
三块屏幕同时花了。
吴峰坐在副驾,指间捻着一枚磨得发亮的旧硬币,动作停在半空。
三个虚拟追踪节点的ID后面,齐刷刷跳出同一行血红小字:
【协议冲突·节点离线】
一个。两个。三个。
整整齐齐,像被人一口气掐灭了三根烟。
车里静了两秒。
“呵。”
吴峰低低笑出声,不怒,反倒像收藏家撞见了一件真品。
“链条回切,留一个节点盯出口。”
硬币在他指间转了半圈。
“这个姓林的……有点东西。”
网咖,037号机。
蓝色界面剧烈一闪,进度条从23%倒卷回9%,又弹到41%,死死卡住。
错误代码弹出,重定向通道的握手彻底失效。
对方那条路,塌了。
从过载到节点掉线,整整三秒。
林远要的就是这三秒。
双手同时开工:左手清空记录、覆写缓存;右手摸到机箱后侧,拔掉网线,水晶头脱离网卡的脆响,轻得像掐灭一根火柴。
长按电源,硬切断。
屏幕黑掉的瞬间,他抽走那截网线塞进包里,椅子弹回原位,掌心在键盘鼠标上飞快抹了一遍。
从坐下到起身,七分钟。
他拎起背包,穿过一排排东倒西歪的睡影,摸向堆满纸箱的消防后门。
推门出去,后巷里横七竖八晾着夜市收摊的塑料凳,馊水味混着油烟呛进鼻腔。
林远靠着砖墙,把憋了七分钟的那口气缓缓吐出来,白雾散进冷风。
湿透的衬衫贴在背上,凉得像一层冰壳。
手机在口袋里震了一下。
还是那个陌生的11位号码。
短信只有两行。
一串坐标。
一句时间:
“明早9点,城南废弃数据服务中心,如果你想活着知道林安看到了什么。”
林远捏着手机,站在巷子的阴影里,一动不动。
想活着知道。
五个字,先拿“林安”当饵挂上钩,再顺手告诉你:你的命,从这一刻起是他们手里的筹码。
巷口方向,城市主干道的夜色里,忽然漫开一大片流动的红光。
林远下意识抬头。
马路对面,写字楼整面玻璃幕墙上,一百多平米的户外广告屏正循环播放一支广告——深潜新品发布会的预热片。
画面**,一个虚拟形象缓缓抬起头。
完美的骨相,挑不出瑕疵的皮肤,嘴角挂着一度被三万次调校过的微笑弧度。
深潜的代言人,全网粉丝破亿的数字人。
隔着一条马路,隔着雾一样的夜色,那张十米高的脸,缓缓转了过来。
正对着巷口。
举报