下一章 上一章 目录 设置
9、第 9 章 招安 ...
-
茶舍的灯光是暖黄色的。不是那种刺眼的亮,是纸灯笼笼着一层薄绢透出来的光,将整间茶室染成旧画里才有的颜色。木格窗棂外,老槐树的影子在风里慢慢移动,像一只看不见的手,在青砖地面上反复描摹同一幅画。
花清月坐在这幅画里。
从季寒声离开到现在,已经过去了一刻钟。茶凉了,檀香燃尽了,院子里的光从暖金变成了橘红,她还没有走。
不是不想走。是走不了。腿是软的,心是乱的,脑子里全是刚才那个女人说“跟我”时的眼神。不是命令,不是请求,是一种让人想把“不愿意”三个字永远吞回去的笃定。
她端起那杯凉透的铁观音,又喝了一口。涩味在舌尖化开,苦的,没有回甘。
“混蛋。”
花清月放下杯子,盯着杯底残留的茶叶,小声骂了一句。骂的是季寒声,也是自己。季寒声凭什么这么笃定她会去?她凭什么真的想去?
她把帆布挎包甩到肩上,起身,拉开茶室的门。院子里空无一人,只有老槐树的叶子还在落。她穿过院子,推开木门,走进胡同。秋天傍晚的风从胡同口灌进来,吹得她长发乱飞,木兰香从衣领间飘散,被风卷走。
她走了几步,停下来。
掏出手机,打开和季寒声的短信对话框。屏幕上是那两行字——季寒声发来的“花清月。明天下午三点,西城区杨梅竹斜街‘聆风茶舍’。”和她自己回的那句“几点”。
没有多余的话。没有“好的”,没有“再见”,没有“今天谢谢你”。
花清月盯着屏幕看了几秒,然后打了一行字:“明天几点?”
发出去的那一刻,她恨不得把手机扔进垃圾桶。说了不去,说了不稀罕,手指却比嘴诚实一万倍。
对面没有立刻回复。
花清月站在胡同里,盯着屏幕等了十秒。没有动静。三十秒。没有。一分钟。
她把手机塞回口袋,加快脚步走向地铁站。走出一段路,手机震了。
她几乎是本能地把手机掏出来,屏幕亮起,季寒声的回复只有两个字:“两点。”
没有“明天见”,没有“不准迟到”,就是一个时间和一个句号。花清月盯着那两个字,嘴角压不住地往上翘,又拼命往下压,最后整张脸皱成一团,不知道是笑还是生气。
她把手机塞回口袋,加快了脚步。走进地铁站的时候,闸机的“滴”声响了一下,她突然想到一个问题——
明天穿什么?
这个问题让她站在站台上愣了三秒,直到地铁进站的风从隧道里涌出来,把她的长发吹到脸上,她才惊醒,快步走进车厢。
车门关上的那一刻,她看到玻璃门上映出的自己——泪痣,微红的耳尖,还有怎么压都压不住的、藏在眼尾的那一点点弧度。
花清月对着玻璃皱了皱眉。
“不许笑。”
玻璃里的那个人没有听她的。
第二天下午一点五十八分,花清月站在公安部网安技术中心的实验室门口。她提前到了,但没有提前进去。在走廊里站了两分钟,深呼吸了四次,把昨天排练好的拒绝台词在脑子里过了一遍——谢谢您的邀请,但我对自己的现状很满意,暂时没有合作的打算。礼貌,得体,不留余地。
完美。
她抬手,指节在门上敲了两下。
“进来。”
花清月推门进去。季寒声站在主控台前,今天穿的是白衬衫,袖口卷到小臂,露出一截冷白手腕和那只老式欧米茄。乌木簪将黑发盘成低髻,银框眼镜架在鼻梁上,整个人站在冷白色的灯光下,像一尊刚从冰窖里取出的瓷器。
她正在泡茶。紫砂壶,白瓷杯,动作行云流水。茶汤从壶嘴倾泻而出,琥珀色的液体在杯中旋转,升起一缕极细的白烟。
“坐。”季寒声没有抬头。
花清月走过去,在昨天坐过的那把椅子上坐下。椅子是皮的,有点凉,她把帆布挎包放在腿上,手指无意识地摩挲着拉链头的银色圆片。今天她没穿嫩黄色——换了一件浅蓝色的薄针织衫,领口微宽,露出一截锁骨。下身是奶油白的直筒裤,脚上是那双鞋边泛黄的帆布鞋。头发扎了个低马尾,左眼角下的泪痣在灯光下格外醒目。
季寒声抬起头,看了她一眼。那一眼很淡,扫过她的脸,落在她的泪痣上,停了不到半秒。
“今天穿蓝色。”季寒声说。
不是疑问,不是评价,只是陈述。像是天气很好,像是茶很香,像是——她注意到了。
花清月的耳朵热了一下。“嗯”了一声,没有解释。她不想承认今天早上在镜子前站了十分钟,把衣柜里所有的衣服翻了一遍,最后选了这件浅蓝色——因为嫩黄色太刻意了,薄荷绿太亮了,白色太素了,蓝色刚刚好,不张扬,不沉闷,像秋天的天空。
“昨天的问题,想清楚了吗?”季寒声把一杯茶推到她面前。白瓷杯里的茶汤是琥珀色的,透亮,冒着极细的白气。
花清月没有端杯子。她看着季寒声,嘴唇抿成一条线,脑子里的拒绝台词在这一刻全部蒸发——不是紧张,是因为季寒声今天戴了一副她没有见过的眼镜。银框的,和平时那副差不多,但镜腿的弧度不同,更细,更精致,衬得那双狭长的眼睛格外沉静。
“想清楚了。”花清月开口,声音比自己预想的要稳,“我不需要跟任何人合作。”
季寒声端起自己的杯子,浅啜一口,没有说话。
花清月等着她反驳,等着她说“你一个人走不远”,等着她用那双沉静的眼睛看着她,让她的所有理由都变成借口。可季寒声什么都没说,只是放下杯子,转过身,手指在主控台的键盘上敲了几下。大屏幕上弹出一份数据流图,节点密密麻麻,路径纵横交错,比昨天那张更复杂,更刁钻。
“这份数据流图,是‘6·17’案件的核心节点拓扑。”季寒声的声音恢复了讲课时的平稳,“我需要你在不借助任何工具的情况下,手动找出所有伪节点和蜜罐。”
花清月愣了一下:“这是考试?”
“是验证。”季寒声转过身看着她,银框眼镜后的目光平静如水,“你说你不需要任何人。那让我看看,你一个人能走到哪一步。”
花清月看着大屏幕上那张密密麻麻的拓扑图,心跳加速了。不是因为紧张,是因为兴奋。她知道这是激将法,知道季寒声在用这种方式逼她证明自己,但她不在乎。因为她确实想证明——我不需要任何人,我一个人也能做到最好。
她站起来,走到主控台前,目光落在屏幕上。数据流在她眼前展开,节点之间以各种方式连接,数据包在通道里来回传输。她的大脑开始高速运转,将所有信息拆解、分析、重组。
她的目光从第一个节点开始扫过,手指在主控台边缘轻轻叩击,哒,哒,哒,节奏越来越快。实验室里安静极了,只有服务器的嗡鸣声和她的心跳声。
季寒声站在她身后半步的位置,双臂交叉,安静地看着。从她的角度看过去,能看到花清月的侧脸——清瘦的轮廓,微微拧起的眉,左眼角下的泪痣,还有她专注时微微抿起的嘴唇。浅蓝色的针织衫在冷白灯光下显得格外柔和,锁骨在领口若隐若现,右手食指上的银色骷髅头戒指在键盘上方移动,反射出细碎的光。
季寒声的目光在那颗泪痣上停留了半秒,然后移开。
“第三排第七个节点。”花清月伸出右手,食指指向屏幕上的一个节点,指尖停在空中,离屏幕只有几厘米,“这个是伪节点。它的数据包TTL值比正常节点多了0.7毫秒,说明它在做额外的数据复制。”
“判断依据。”
“TTL值异常,配合节点响应时间的波动曲线。”花清月的声音很快,带着她自己都没意识到的自信,“伪节点为了模仿真实节点的响应特征,会在数据包上做手脚,但TTL值的波动范围很难做到和真实节点完全一致。多出来的0.7毫秒,就是证据。”
季寒声没有说对,也没有说错。她的目光落在花清月伸出的那只手上——手指修长但不骨感,指甲修剪得整齐,没涂颜色,指尖因为用力而微微泛白。右手中指戴着银色骷髅头戒指,戒指的纹路在灯光下清晰可见。
“继续。”
花清月的手指在屏幕上移动,一个一个点过去。第七个,第十二个,第二十四个。每指出一个节点,都会给出判断依据,数据包大小、响应时间、流量特征、协议栈行为,每一个理由都精准、扎实、无法反驳。
她整个人都在发光。不是比喻,是一种真实的感觉——她的眼睛比平时亮了很多,语速比平时快了很多,整个人散发着一种少年人特有的、意气风发的朝气。
季寒声看着她,眼底有什么东西在慢慢融化。不是冰,是她自己都没意识到的那层壳。
十三分钟后,花清月停下手指,转过身看着季寒声。“十一个伪节点,六个蜜罐。”她的呼吸有一点急促,眼睛里全是光,泪痣在灯光下亮得像一颗星,“全找出来了。”
季寒声看着她,沉默了两秒。
“正确。”她说。
花清月的嘴角翘了起来,压都压不下去。她知道自己在得意,知道自己不该这么得意,但她控制不住。被季寒声肯定,和被这个世界上任何其他人肯定,都不一样。
“但是。”季寒声说。
花清月的嘴角僵住了。
“你用了十三分钟。”季寒声的声音没有起伏,“如果是实战,对方有十三分钟的时间完成数据转移、痕迹清理、节点销毁。你找到了所有陷阱,但你——太慢了。”
花清月攥紧了桌沿。她不甘心,想反驳,想说“这已经是最快的速度了”,想说“换任何人来做都不会比我更快”。可她知道季寒声说的是对的。如果是实战,她没有十三分钟。对手会在这十三分钟里把所有证据销毁,然后消失得无影无踪。
她松开桌沿,垂下眼,睫毛微微颤着。
“那我该怎么办?”她问。不是“教我”,不是“你告诉我”,是“那我该怎么办”——她在问自己,也在问季寒声。
季寒声看着她低下去的那颗头,看着那缕从马尾里滑落的长发,看着她抿紧的嘴角。
“你不是一个人了。”季寒声说。
花清月抬起头,看着她。
季寒声站在主控台前,白衬衫的领口在冷白灯光下显得格外干净。她看着花清月,银框眼镜后的目光平静,但有一种说不出的认真。
“你有天赋,但不该做独行侠。跟我合作。”季寒声的声音不轻不重,每一个字都清晰地落在花清月耳里,“不是因为我需要你。是因为你需要一个人,在你跑得太快的时候,提醒你慢下来;在你跑得太慢的时候,推你一把。”
花清月盯着她的眼睛。那双狭长的单眼皮眼睛,沉静的,深不见底的,像结了冰的深潭。可在那层冰的下面,有一团极淡极淡的、不易察觉的光。不是温柔——季寒声和这个词不沾边——是认真。是那种“我是认真在邀请你”的认真。
花清月的嘴唇动了好几次。她想说“我不需要”,想说“我一个人也能行”,想说“我不喜欢被任何人管”。可她看着季寒声的眼睛,那些话一个一个地碎掉了。
“我不会穿警服。”花清月听见自己的声音,很小,很硬,像一颗不肯融化的冰糖。
季寒声的薄唇微微动了。不是笑,是某种更克制的东西。“没有人让你穿。”
“我不会叫你老师。”花清月的声音大了一点,底气足了一点,“也不会叫你季工,更不会叫你领导。”
“那你叫我什么?”季寒声问。
花清月张了张嘴,脑子里冒出一个字——“季”——然后被自己吓了回去。她不能叫那个字。那个字太短了,太轻了,太像某种她不敢承认的关系。
“季寒声。”她说,声音硬邦邦的。
季寒声看着她,微微点了一下头。“可以。”
花清月的心跳漏了一拍。不是因为季寒声说了“可以”,是因为季寒声看她的眼神变了。不是审视,不是确认,是——接纳。像是等了她很久,终于等到她点头,然后说“进来吧”,云淡风轻,好像这一切都不重要。可花清月知道,重要。对季寒声来说,重要。
“我还有一个条件。”花清月说。
季寒声微微抬眉。
花清月深吸一口气,把在心里憋了一整天的问题问了出来:“你是怎么锁定我的?”
季寒声看着她,沉默了一秒。“你的编码习惯。你截胡数据用的指令序列,和你三年前发表在技术博客上的代码片段,有相同的节奏和偏好。”
花清月瞪大了眼睛:“你翻了我三年前的博客?”
“是你放在公开平台的。”季寒声的声音平淡得像在念天气预报,“既然公开了,就不算翻。”
花清月张了张嘴,想骂人,但发现自己骂不出口。因为她想起三年前那个博客——她刚上大学,学了一堆新技术,迫不及待地想分享,写了几篇技术分析,放了几段代码片段。后来觉得太高调了,就关了。她以为关了就没人看到了,以为那些代码片段早就消失在互联网的汪洋大海里。
可季寒声看到了。在三年前。在她还不是Celeste的时候,在她还没有截胡任何数据的时候,季寒声就看到了她的代码。
“你——”花清月的声音有一点抖,“你三年前就知道我?”
季寒声端起茶杯,浅啜一口。动作很慢,很稳,像是在让时间慢下来。
“当时不知道你是谁。”她放下杯子,“但那段代码写得很好。我记住了。”
花清月愣在原地。她不知道该怎么反应。被人记住代码,对她来说,比被人记住脸更让人心跳加速。季寒声记住了她的代码,在三年前。在季寒声还不知道她是谁的时候,就已经觉得她的代码“写得很好”。
“你——变态。”花清月骂了一句,声音软得像在撒娇。
季寒声没有否认,没有解释,只是看了她一眼。那一眼的意思很明确——还有问题吗?
花清月抿了抿嘴唇。“没有了。”
“那明天下午两点,准时。”季寒声转身走回主控台,手指落在键盘上,恢复了工作时的专注,“不准迟到。”
花清月站在主控台前,没有走。她看着季寒声的侧脸——冷白的,锋利的,像刀裁出来的。银框眼镜的镜片反射着屏幕的蓝光,让人看不清她眼底的情绪。那只极漂亮的手落在键盘上,修长的,骨节分明的,指甲修剪成完美的椭圆形,每一下敲击都精准有力。
花清月突然问:“你一个人走了多久?”
季寒声的手指停了。
花清月不知道自己为什么要问这个问题。可能是刚才那十三分钟里,她站在主控台前分析数据流的时候,突然想到——季寒声一个人走了多久?十三年?十五年?从十五岁保送清华,到现在三十三岁,中间这些年,有多少个深夜是她一个人站在这个实验室里,面对冰冷的屏幕和永远抓不完的漏洞?
季寒声没有回答。她没有转身,没有回头,只是手指在键盘上停了两秒,然后继续敲击。
“比你久。”她说。
花清月站在原地,看着季寒声的背影。白衬衫,乌木簪,冷白的脖颈。那个背影很直,很稳,像一棵不会弯腰的松。
“那你不累吗?”花清月听见自己的声音,比刚才小了很多。
季寒声的手指又停了。这一次,她放下键盘,转过身,看着花清月。银框眼镜后的目光平静如常,但花清月看到——在很深很深的地方,有一层极薄的、几乎看不见的裂隙。
“累。”季寒声说。
一个字。
花清月的心猛地疼了一下。不是比喻,是真实的、物理意义上的疼——左胸口那个位置像被人攥了一下,酸涩的,闷闷的,从心脏沿着血管蔓延到指尖。
“但我等到了。”季寒声说。
她说这句话的时候,语气没有任何变化,没有强调“等到”,没有加重语气,没有刻意放软。就是平平淡淡地说出来了,像是在说“今天天气不错”或者“这条路往左拐”。
可花清月听懂了。
等到了什么?等到了她。
花清月攥紧了帆布挎包的带子,指节泛白。她想说点什么来缓解这种让她喘不过气的氛围,想说“你别说得好像我是你的救世主”,想说“我什么都没答应你”。可她什么都说不出来。
她低下头,看着自己的帆布鞋。左脚鞋带松了,她蹲下去,系鞋带。动作很慢,系了两遍才系好。站起来的时候,她的眼睛有一点红,但她确定季寒声没有看到。
“明天两点。”花清月的声音闷闷的,“不准迟到。这是我说的。”
她没有等季寒声回答,转身走向门口。拉开门,迈出去,关门。门关上的那一刻,她听到身后传来季寒声的声音——
“花清月。”
她停了一下,没有回头。
“明天见。”
三个字。清冷的,平稳的,不带任何感情的。可花清月听到了一种她从未在季寒声的声音里听到过的东西——不是温度,是重量。像一只手,轻轻地、稳稳地,放在了她的肩上。
花清月没有回答。她加快脚步,走进走廊,走进电梯。电梯门关上的那一刻,她靠着电梯壁,闭上眼睛。脑子里是季寒声说“累”时的声音。只有一个字,可她听到了这些年所有的深夜、所有的屏幕、所有的一个人。
电梯到了一楼。门打开,她走出去。穿过大厅,走出大门,秋天的风迎面扑来,带着梧桐叶的干燥气息和远处糖炒栗子的甜香。她走进风里,长发被吹起来,木兰香被风裹着散开。
她掏出手机,打开备忘录。上面还留着那行字——“明天下午两点。不准迟到。——不是季寒声说的,是我说的。”
她盯着那行字看了两秒,然后往上翻。上面还有更早的记录——“季寒声。很强。”再上面——“下次,我会让你说‘你说得对’。”
花清月看了一会儿,退出备忘录,锁屏。她把手机塞进口袋,仰头看着天空。秋天的天很高,很蓝,云很少,太阳在西边慢慢往下沉,将整片天空染成橘红色。
她看着那片橘红色的天,嘴角翘了起来。不是笑,是——在想一个人的时候,控制不住的表情。
你一个人走了很久,很累。
从今以后,你不用一个人了。
我没有说我要陪你。我只是——刚好要去同一个方向。
花清月低下头,把这句话从脑子里甩出去。太肉麻了。她绝对不能说出口。
她迈开步子,走进秋天的风里。帆布鞋踩在落叶上,发出细碎的脆响。浅蓝色的针织衫被风吹得贴在身上,勾勒出清瘦的轮廓。
她不知道的是,十二楼的窗户边,站着一个人。
白衬衫,乌木簪,银框眼镜。
季寒声站在窗边,看着楼下那个浅蓝色的身影越走越远,消失在梧桐树的荫蔽里。她的手上还端着那杯凉透的茶,没有喝,只是端着。目光落在那道背影上,直到完全看不见,才收回。
她低头,看了一眼自己的手。那只极漂亮的手,骨节分明,指甲修剪成完美的椭圆形,在冷光下像一件精致的瓷器。
刚才,花清月问她“你不累吗”的时候,她的右手在桌下微微握了一下。不是克制,是——怕自己伸出手去,触碰什么不该碰的东西。
季寒声放下茶杯,转身走回主控台。屏幕上还留着花清月刚才分析过的节点拓扑,光标在最后一个节点旁边一闪一闪的,像是在等她回来。
季寒声看着那个光标,看了一会儿。然后她抬手,用食指推了推银框眼镜。动作很慢,很轻,像在确认什么东西已经落位。
窗外,梧桐叶还在落。浅蓝色的身影已经消失在胡同的尽头。
季寒声收回目光,重新落在屏幕上。她的手指落在键盘上,开始工作。一切如常,只是那只敲键盘的手,比平时轻了一些。
像是在克制什么。
又像是在等待什么。