下一章 上一章 目录 设置
4、第 4 章 ...
-
莫斯科的冬天来得猝不及防,十一月的第一场雪在夜间悄无声息地覆盖了整座城市。
柳芸芷醒来时,房车窗外已是白茫茫一片。她裹着毯子爬到工作台前,七块屏幕在晨光中幽幽发亮。
“又下雪了,”她对着空气说,“真麻烦。”
瓦列里娅从她的房间出来,已经穿戴整齐。迷彩裤、黑色高领毛衣,头发扎得一丝不苟。她看了一眼窗外,没有说话,径直走向厨房烧水。
“你知道吗,”柳芸芷转着椅子,“莫斯科每年冬天的降雪量平均是……”
“六十二厘米。”瓦列里娅接话,声音还带着刚醒的低哑。
柳芸芷挑眉:“你查过?”
“常识。”
“无聊的常识。”柳芸芷撇嘴,把毯子裹紧了些,“我需要做点有趣的事。天气这么沉闷,城市这么沉闷,一切都这么……按部就班。你不觉得吗?”
瓦列里娅把烧开的水倒进两个杯子,一个给自己,一个加了三块糖。她把杯子放在工作台边缘,退到窗边,看着外面飘落的雪花。
“今天有什么安排?”她问。
“游戏。”柳芸芷眼睛亮起来,“我想做个游戏。”
瓦列里娅没有问什么游戏。
她已经逐渐了解这个十九岁雇主的行事风格:柳芸芷口中的“游戏”,通常意味着某种精巧的且绝对会引起混乱的数字恶作剧。
“需要我做什么?”瓦列里娅啜了一口热水。
“什么都不用做,”柳芸芷说,“看着就好。不过……可能需要你开车。我们得换个地方,这里太偏了,网络延迟高得令人发指。”
她迅速敲击键盘,调出莫斯科市区的网络节点图。红色的线条代表光纤主干,蓝色的点是公共Wi-Fi热点,绿色的则是她这些年悄悄植入的“后门”。
“这里,”她指着地图上的一点,“特维尔大街和花园环线的交叉口。那里有全市最大的户外广告屏群,十二块屏幕,每块都有独立的网络接入,但共享一个愚蠢的中央控制系统。三年前某个官员亲戚的公司中的标,用的是我十五岁时就能破解的加密协议。”
瓦列里娅看着那些闪烁的光点:“你要黑掉广告屏。”
“不是黑掉,”柳芸芷纠正,“是……借用。短暂地借用一下,给这个沉闷的城市增加一点趣味。”
她站起身,毯子滑落到地上。里面是一件印着卡通企鹅的睡衣,瓦列里娅第一次注意到这个抽象的图案,嘴角几不可察地动了一下。
“你笑什么?”柳芸芷敏锐地捕捉到了。
“没笑。”
“你嘴角动了。”
“那是正常的生理现象。”
柳芸芷盯着她看了两秒,然后放弃似的摆手:“算了。去换衣服,我们出发。记得带上你的装备,虽然可能大概率用不上,但万一呢?”
半小时后,她们坐上那辆黑色的奔驰G63。雪还在下,不大,但足够让路面变得湿滑。
瓦列里娅开得很稳,车速保持在限速以下,时不时看一眼后视镜。
柳芸芷抱着平板电脑,手指在屏幕上飞舞。她已经远程接入了广告屏的控制系统,正在破解最后一层防火墙。
柳芸芷三年前就发现了一个漏洞:控制系统每月的第一个星期二凌晨三点会自动备份数据,备份过程中加密密钥会以明文形式在内存中停留零点几秒。
她写了个脚本,抓取那个瞬间。
现在脚本正在运行,进度条缓慢地向前蠕动。
“无聊,”柳芸芷嘀咕,“为什么总要用这么无聊的加密?就像在门上装了十道锁,却把钥匙放在门垫下面。”
瓦列里娅打了转向灯,驶上花园环线。早高峰还没完全开始,但车流已经开始聚集。
莫斯科的交通永远是这样:要么堵死,要么快要堵死。
“你需要多久?”瓦列里娅问。
“五分钟……四分钟……好了!”柳芸芷欢呼一声,平板屏幕上弹出一个绿色的“ACCESS GRANTED”。
她迅速调出莫斯科动物园的官网,找到企鹅馆的实时监控摄像头。画面里,十几只帝企鹅在人工雪地上摇摇摆摆地走动,偶尔滑倒,笨拙又可爱。
“完美。”柳芸芷笑着,开始编写程序。
她要做的很简单:劫持那十二块广告屏,把原本的商业广告和市政宣传全部替换成企鹅馆的实时监控画面。配上文字:“看看真正的官僚怎么走路”。
这当然是个幼稚的玩笑,但柳芸芷喜欢其中的讽刺意味。莫斯科的官僚系统就像这些企鹅:臃肿、笨拙、在人为制造的环境里自以为是地踱步,却不知自己的一举一动都在被观看、被嘲笑。
“三、二、一……”她按下回车键。
几乎同时,车窗外,特维尔大街十字路口那面巨大的LED广告屏闪烁了一下。原本播放的汽车广告消失了,取而代之的是企鹅摇摆的画面。然后是第二块、第三块……短短三十秒内,十二块屏幕全部变成了企鹅馆的实时监控。
文字滚动出现,俄语和英语双语:
“看看真正的官僚怎么走路”
“Watch how real bureaucrats walk”
路口的行人停下了脚步。有人抬头看屏幕,困惑地皱眉;有人拿出手机拍照;有人大笑,指着屏幕说着什么。
车流慢了下来,司机们纷纷看向那些突然变成动物园直播的广告牌。
柳芸芷趴在车窗上,看着外面的反应,笑得肩膀发抖。
“你看你看,”她指着窗外一个穿着西装、提着公文包的男人,“他表情多精彩!就像看见自己的灵魂出窍了!”
瓦列里娅没有看窗外。她在看后视镜,看两侧的街道,看任何可能出现的异常。她的右手搭在方向盘上,左手放在大腿旁,这样离藏在车门夹层里的手枪就只有十厘米,方便应对突发情况。
“有趣吗?”柳芸芷转过头,眼睛亮晶晶的。
瓦列里娅沉默了两秒:“会惹麻烦。”
“我知道。但你不觉得很有趣吗?这些人在日复一日地重复同样的生活,上班、下班、堵车、抱怨。现在突然有了点不一样的东西,一点意外的幽默。这不好吗?”
“这不是幽默,”瓦列里娅说,“这是挑衅。”
“挑衅谁?”
“掌控这些屏幕的人。掌控这座城市的人。”
柳芸芷的笑容淡了一些,但眼神里的兴奋没有消退:“那就让他们知道,他们掌控的东西有多脆弱。一道防火墙,几行代码,就能把他们的权力象征变成动物园直播。这不是很有趣吗?”
瓦列里娅没有回答。她看了一眼导航,然后打了右转向灯,驶离主路,拐进一条小街。
“你去哪?”柳芸芷问,“我们不是要看效果吗?”
“效果看到了,”瓦列里娅说,“现在该走了。”
她说得对。柳芸芷透过车窗看到,已经有警车闪着灯朝十字路口驶去。
两个穿制服的警察从车上下来,仰头看着那些企鹅屏幕,对着对讲机说着什么。
“好吧,”柳芸芷耸肩,但没掩饰语气里的遗憾,“真扫兴。我才看了三分钟。”
瓦列里娅加速,G63在莫斯科的小街巷里穿行。
她显然对这座城市的路网非常熟悉,专挑那些没有监控摄像头的老街。
即便如此,她还是在一个路口停了下来。
那里有一个交通摄像头,装在电线杆上,红色的指示灯在雪中闪烁。
瓦列里娅解开安全带:“等我一下。”
她下车,从后备箱拿出一个小工具包,走到电线杆下。
摄像头离地大约四米,但对于瓦列里娅的身高来说不是问题。
她助跑,起跳,抓住电线杆上的脚踏,几个引体向上就爬到了摄像头的高度。
柳芸芷从车里看着。瓦列里娅的动作流畅有力,像某种大型猫科动物。
她打开工具包,拿出一把特制的螺丝刀,拧开摄像头外壳,然后从口袋里掏出一个小小的电子设备。
一个信号干扰器,柳芸芷认出来了。
瓦列里娅把干扰器贴在摄像头电路板上,设定好时间:十五分钟。足够她们离开这个区域,又不会引起系统长时间的异常报警。
她滑下来,拍拍手上的雪,回到车上。
“继续。”她说,重新系好安全带。
她们又经过了两个有摄像头的路口,瓦列里娅重复了同样的操作。
每次下车、爬杆、安装干扰器、返回,整个过程不超过两分钟。
高效,精确,没有任何多余动作。
回到车上时,她的头发和肩膀上落了一层薄雪。柳芸芷递过去一张纸巾。
“擦擦,”她说,“你头发湿了。”
瓦列里娅接过纸巾,简单擦了擦脸和脖子。她的手指冻得有些发红。
“你经常这么做吗?”柳芸芷问,“清除痕迹。”
“必要的时候。”
“教教我。”
瓦列里娅看了她一眼:“你不是数字世界的幽灵吗?物理世界的事,我来做就好。”
“但我想学,”柳芸芷坚持,“万一有一天你不在呢?”
这句话说出口,两人都愣了一下。
车厢里突然安静下来,只有引擎的低吼和雨刷刮擦挡风玻璃的声音。
瓦列里娅转过头,看着前方的路。雪下得更大了,世界变成一片模糊的白色。
“会有那一天的,”她最终说,“所有雇佣关系都会结束。”
“那我们可以不结束,”柳芸芷说得很快,快得她自己都惊讶,“一直续约。我给你涨工资,很多很多钱。你可以一直保护我。”
瓦列里娅没有回答。她专注地开车,仿佛这句话只是一阵无关紧要的风,吹过就散了。
但柳芸芷看到了她握着方向盘的手在战栗。
车继续前行,驶离市区,朝着郊外的方向。柳芸芷回头看了一眼,莫斯科的城市轮廓在雪幕中渐渐模糊,像一幅被水浸湿的水彩画。
那些广告屏,那些摇摆的企鹅,那些困惑或大笑的行人都留在了身后,变成这座城市又一个短暂的、荒诞的注脚。
她转回身,打开平板。屏幕上是动物园监控的实时画面:企鹅们还在那里,摇摇摆摆,对发生在人类世界的混乱一无所知。
关掉平板,靠在椅背上,看着窗外飞驰而过的雪景。
车已经驶上了通往郊外的公路。两侧是光秃秃的白桦林,树枝上积着雪,偶尔有鸟雀飞起,抖落一片白色的碎屑。
“我们去哪?”柳芸芷问。
“安全屋,”瓦列里娅说,“我准备的。离这里二十公里,废弃的集体农庄,没有网络,但很隐蔽。住一晚,等风波过去。”
“一晚?”柳芸芷皱眉,“我没有带服务器!”
“你有平板。”
“那不够!我需要算力,需要带宽,需要……”
“需要活着,”瓦列里娅打断她,声音平静但不容置疑,“今天的事会有人调查。虽然你清除了数字痕迹,但物理世界有目击者。他们会追踪到那个区域,会查监控!如果我刚才没有清除那三个摄像头的话,他们已经看到这辆车了。”
柳芸芷张了张嘴,想反驳,但发现没有理由。
瓦列里娅是对的。她总是对的,在这种现实的事情上。
“好吧,”她妥协了,但语气里带着不甘,“就一晚。明天我要回房车。”
“看情况。”
“不,明天一定要回去。我有个很重要的算法要跑,需要……”
“明天再说。”瓦列里娅的语气结束了对话。
柳芸芷闭嘴了,但心里涌起一种奇怪的感觉。
从小到大,很少有人这样打断她、否定她、给她划定界限。
父亲总是纵容她,母亲只会用物质补偿她,老师们要么畏惧她的天才要么试图“矫正”她。
但瓦列里娅不一样。她只是平静地陈述事实,划定安全的边界,然后坚守它。像一堵墙,柔软但不可穿透。
柳芸芷偷偷看了她一眼。瓦列里娅专注地看着路,侧脸在雪光中显得冷硬,灰蓝色的眼睛映着窗外飞逝的白色。
“你在想什么?”柳芸芷问。
“路线。应急预案。可能的追踪方式。”瓦列里娅简短地回答,“以及你下次想玩游戏时,我该怎么提前准备。”
“你生气了吗?”
“为什么生气?”
“因为我惹了麻烦。因为你要加班。”
瓦列里娅沉默了几秒。“这是我的工作,”她最终说,“你付钱,我处理麻烦。没有生气。”
“但你看起来不太高兴。”
“我看起来从来不高兴。”
柳芸芷愣了一下,然后笑了。
真的,她没见过瓦列里娅高兴的样子。
甚至没见过她除了平静之外的其他表情。
情绪,在这个女人身上像是被过滤掉了,只剩下一种恒定的平静。
“你知道吗,”柳芸芷说,“你很像那些企鹅。”
瓦列里娅终于转过头,看了她一眼,眉毛微挑。
“不是说你笨拙,”柳芸芷赶紧补充,“是说……你生活在一个被设定好的环境里。孤儿院,战场,雇佣兵的世界。那些都是人为的、冰冷的系统。但你适应了,你在里面找到了自己的步调,摇摇摆摆但坚定地往前走。而且……”她顿了顿,“而且你也在被观看。被我观看。”
瓦列里娅转回头,继续看着路。
她的手指在方向盘上轻轻敲了两下,这是柳芸芷第一次看到她表现出这种类似紧张的小动作。
“我不喜欢被观看。”她说。
“但你已经在了,”柳芸芷轻声说,“从你签下合同的那一刻起,你就在我的观察范围里了。就像那些企鹅,它们也不知道自己在被监控,但它们确实在。这是现代生活的代价,瓦丽娅。我们都在玻璃后面。”
车驶进一条更窄的路,两旁是破败的木栅栏和倒塌的谷仓。雪地上有动物的脚印,可能是狐狸,也可能是野狗。
远处,一栋低矮的砖房出现在视野里,烟囱里飘出细细的炊烟。
明显是瓦列里娅提前设定的伪装,让房子看起来有人居住。
“到了,”瓦列里娅说,“今晚住这里。我检查过了,基本设施都有。发电机在地下室,燃料够用一周。食物和水足够三天。”
她停下车,但没有立刻熄火。而是先观察栅栏有没有被破坏的痕迹,雪地上有没有新的脚印,烟囱的烟是否正常。
柳芸芷看着她做这些,突然意识到一件事:瓦列里娅不仅仅是她的保镖。她是她的守护者,她的清道夫。没有她,柳芸芷那些游戏,极有可能很快就会引来反击。
这个女人,正在用她的方式,为柳芸芷的任性兜底。
“谢谢。”柳芸芷说,声音很轻。
瓦列里娅看了她一眼,似乎有些意外。
“拿好东西,”她说,“我们进去。雪要下大了。”
她们下了车,踩着积雪走向砖房。柳芸芷抱着平板电脑和一个小背包,瓦列里娅提着武器箱和一个应急医疗包。
雪落在她们肩上、头发上,世界寂静得只剩下踩雪的咯吱声。
开门前,瓦列里娅又一次停下,侧耳倾听。几秒钟后,她掏出一把老式的黄铜钥匙,插进锁孔,转动。
门开了,里面是简单的陈设:一张木桌,两把椅子,一个铸铁炉子,角落里堆着木柴。楼上应该还有卧室。
瓦列里娅让柳芸芷先进去,自己最后检查了一遍门外,才关上门,落锁。
温暖瞬间包裹了她们。炉子里有几点火星,瓦列里娅添了几块木柴,又扔了根火柴,火焰很快重新燃起,发出噼啪的声响。
“坐吧,”她说,“我去弄点吃的。”
柳芸芷坐在炉子旁的椅子上,看着瓦列里娅在简易厨房里忙碌:打开罐头,加热,切面包。
炉火的光在她脸上跳动,让那些冷硬的线条柔和了一些。有那么一瞬间,柳芸芷觉得她看起来不像雇佣兵,而像……像什么?像一个在森林里独居的猎人,一个守护着自己小小领地的野兽。
“给。”瓦列里娅递过来一个盘子,上面是加热过的炖菜和黑面包。
柳芸芷接过,用叉子戳了戳炖菜:“这是什么肉?”
“可能是牛肉。也可能是别的。罐头标签掉了。”
“哦。”柳芸芷吃了一小口,味道意外地不错,咸香浓郁,“你自己经常住这种地方吗?”
“任务需要的时候。”
“不会觉得……孤独吗?”
瓦列里娅在她对面坐下,开始吃自己的那份。她吃得很安静,很专注,每一口都充分咀嚼。
“孤独是常态,”她吃完一口后才说,“习惯了。”
柳芸芷看着她,突然很想问:你从什么时候开始习惯的?在孤儿院的时候?在战场上?还是在那些辗转于各个安全屋的夜晚?
但她没问出口。
有些边界,即使是她也不敢轻易跨越。
她们沉默地吃完饭。
瓦列里娅收拾了盘子,在屋后的水井打了水清洗。
柳芸芷抱着平板,但网络信号太弱,什么都做不了。她只能打开之前下载的电子书,但看了几行就看不下去。
无聊。还是无聊。
窗外的雪越下越大,已经看不清远处的树林。世界变成一片旋转的白色,把这座小砖房包裹成一个孤岛。
“我去楼上铺床,”瓦列里娅说。
“你不睡楼下吗?”
“阁楼视野更好,可以看到整片区域。”
“哦。”
瓦列里娅上了楼,木楼梯发出吱呀的声响。柳芸芷听着她的脚步声在头顶移动,然后是拖动东西的声音,应该是她在布置警戒装置。
她走到窗边,看着外面的雪。一片一片,无穷无尽,像是要把整个世界都掩埋。
突然,她有了个主意。
她打开平板的绘图软件,开始画企鹅。不是动物园里那种帝企鹅,而是卡通版的,圆滚滚的,戴着小小的礼帽,拿着手杖。她画了一只,又画了一只,很快画了整整一群。
然后在画面底部,她写上:
“致我的守护企鹅:谢谢你不让我变成落汤鸡。”
她保存图片,设置为平板的锁屏壁纸。
阁楼上传来瓦列里娅下楼的脚步声。柳芸芷赶紧关掉平板,假装在看书。
“床铺好了,”瓦列里娅说,“你可以去睡了。炉子我会看着,不会让火熄掉。”
“你不睡吗?”
“后半夜睡。前半夜我守。”
柳芸芷点点头,抱着平板上楼。
阁楼很小,但很干净,床铺上铺着厚厚的毛毯,摸起来粗糙但温暖。
墙上有个小窗户,可以看到外面的雪夜。
她躺下,盖好毯子。楼下传来瓦列里娅添加木柴的声音,还有她轻轻走动的脚步声。
那些声音很轻,但在寂静的夜里异常清晰。像心跳,像呼吸,像某种生命的证明。
柳芸芷闭上眼睛,第一次觉得,在这样一个与世隔绝的雪夜里,在这样一个简陋的安全屋里,她竟然感到了……安全。
她渐渐沉入睡眠。梦里没有代码,没有屏幕,只有漫天的雪,和雪中一个高大沉默的身影。
楼下,瓦列里娅坐在炉火旁,手里拿着一本破旧的《战争与和平》。
但她没有看,只是拿着它,眼睛望着窗外。
雪还在下。
她想起柳芸芷说的那句话:“你也在被观看。”
是的,她在被观看。被这个十九岁的女孩观察、分析、记录。这让她感到不安,就像在战场上暴露在开阔地带。
但奇怪的是,她并不讨厌这种感觉。
也许是因为柳芸芷的观看里没有评判,只有好奇。
也许是因为在这个女孩眼中,她不是工具,不是武器,而是……一个有趣的观察对象。
瓦列里娅放下书,走到窗边。雪地上没有任何痕迹,只有她们来时的那串脚印,正在被新雪慢慢覆盖。
她伸手摸了摸玻璃,冰冷透过指尖传来。
明天要早起,要检查周边,要确保没有追踪者。
如果安全,就送柳芸芷回房车。
回那个充满屏幕和代码的世界,回那个女孩的王国。
她会继续守在那个王国的边界。
炉火噼啪响了一声,火花溅到石质地面上,很快熄灭。
瓦列里娅回到炉边,重新坐下。
雪夜还很长。