array(5) { ["chapterid"]=> string(8) "49409205" ["articleid"]=> string(7) "7300050" ["chaptername"]=> string(8) "第12章" ["content"]=> string(8133) "教室里只剩下林墨、苏晚晴和周可然。

空调还在嗡嗡地吹。投影仪关了之后教室暗了一半,只有窗户透进来的光。七月正午的阳光很硬,照在地砖上白晃晃的,照在人身上发烫。林墨把窗帘拉上了一半。

周可然在收拾东西,把MacBook装进一个朴素的帆布包。她的动作很慢,但不是因为磨蹭——林墨注意到她在听林墨和苏晚晴的每一句话,同时假装在看手机。手机屏幕是黑的。

"你有什么要说的吗?"林墨直接问她。

周可然抬头,摘下眼镜擦了擦。镜片上有一层雾气——教室里空调和体温的温差造成的。

"你出的Misc题,音频文件里有一个低频载波。"她把眼镜戴回去,"那个载波不是白噪声的一部分。"

"你查过它的来源吗?"

"查了。"她从帆布包里拿出一张折叠的A4纸,打开。上面是她手画的频谱图,用铅笔标注了低频载波的频率范围和调制方式。字很小,但整齐得像印刷体。"FSK调制信号,载波频率在300赫兹左右。内容看起来像一串十六进制数据。我解码了一部分——前四个字节是ZDP-。"

教室里安静了三秒。空调的嗡嗡声突然变得很明显。

苏晚晴先开口了。她的声音比平时低了半个调。"你从Misc题的音频文件里,解出了ZDP的信号?"

"只是前四个字节。"周可然把纸折好,放回包里。"后面的数据太短,信噪比不够,解不出来。但这说明出题用的音频素材本身包含了一段被隐藏的信号。这段信号不是出题人加的——它来自原始音频素材。"

"原始素材。"林墨重复了一下。

他的Misc题音频是从网上找的一段免费白噪声素材。如果那段素材里包含了ZDP的隐藏信号——那意味着这个信号不是随机存在的,而是被某个人有意植入到了一个公开可下载的素材文件里。任何人下载这段素材、用它做任何事,都会无意识地携带上这个信号。

"有人在向互联网投毒。"林墨说,"把带有ZDP标记的信号植入公开素材,让所有使用这些素材的人不知不觉成为载体。"

周可然戴上眼镜,看着林墨。

"你在查ZDP?"

林墨没有回答。但他看到了周可然问这句话时的样子——她不是在好奇。她在确认。她已经自己在暗中追过这条线,现在在确认林墨是不是也在追。

"你知道ZDP。"林墨说。

周可然没有马上回答。她把帆布包的拉链拉上,背到肩上。拉链的声音在安静的教室里很清脆。

"我在法国交流的时候,导师的研究课题是侧信道攻击中的信号隐藏技术。"她说,"我在整理实验数据的时候,发现了一段来自公开音频素材库的样本文件里包含了异常调制信号。我追踪了那段素材的来源——它最早出现在一个叫暗网锚点的论坛的公开资源区。"

"七年前被关闭的那个论坛。"

"对。论坛关了,但资源区的内容被镜像到了其他节点。那段音频素材被下载了超过两万次。"

两万次。两万个下载者,两万个潜在的ZDP信号载体。

林墨看了一眼苏晚晴。她的嘴唇抿成了一条线,手指无意识地捏着签到名单的边角,把纸角捏出了一个褶。

"下周二,方老师办公室。"林墨对周可然说,"把你手上的数据都带上。"

周可然点了点头,推门走了。她走的时候帆布包在肩上晃了一下,门关上的时候带起一阵风,签到台上剩下几张没用的A4纸被吹得动了一下。

教室里剩下林墨和苏晚晴。

投影幕布已经关了,但排名页面的画面还在林墨脑子里——陈逸飞的名字排在第一位,后面的"3/3"白底黑字。三道题,全部最快。没有悬念,没有意外,像是来散步顺便拿了第一。

"七个人。"苏晚晴说,"但我觉得我们需要的不是七个人。"

"我们需要的是能信任的人。"林墨说,"陈逸飞的技术没问题。但他的来历我查不清。"

"你打算怎么办?"

"让他自己暴露。"林墨关掉教室的灯。日光从窗户涌进来,把苏晚晴的侧脸照得很亮。"一个人可以藏身份,但藏不了习惯。他的每一个操作习惯都在告诉我同一件事——他不是自学的。"

"你怀疑他是什么人?"

"不知道。但全国赛之前,我会弄清楚。"

苏晚晴没有接话。她把签到台的名单收好,签字笔放进笔袋,动作跟来的时候一样快。走到门口,她停了一下。

"周可然的问题。"

"什么?"

"她知道ZDP,但她没有主动说过。直到今天Misc题碰巧暴露了信号,她才摊牌。"苏晚晴看着林墨,"要么是巧合,要么她在等一个合适的时间点。"

林墨想了一下。"她不像在等。"

"不像。"苏晚晴同意,"但也不像不在等。"

她推开门走了。走廊里的声控灯亮了一串。

林墨拿起笔记本,最后看了一眼空教室。二十一张桌子,大部分桌面已经空了,只有几个被遗忘的矿泉水瓶和一张揉皱的草稿纸。空调还在吹,对着空椅子吹。

他走出教室,下楼,推开工科楼B座的侧门。

正午的阳光砸在脸上。七月的苏州,空气是白色的,热得发亮,远处的教学楼都在晃。林墨眯着眼睛走下台阶,在那一瞬间余光扫到了什么。

工科楼对面的法国梧桐树下,站着一个人。

深灰色卫衣,帽子拉起来,看不清脸。三十七度穿卫衣,本身就够奇怪了。那个人站在树荫里,似乎在看着工科楼的方向。

林墨停下脚步。

那个人转身走了。不快不慢,像是根本不在意是否被看到。

林墨追了过去。穿过草坪——草被晒得发黄,踩上去沙沙响——绕过路口,到达法国梧桐树所在的位置。那个人已经消失了。树荫下只有一片被踩得有些凌乱的草,和一只被踩扁的易拉罐。

地面上有一张纸。被折成四分之一大小,压在树根和路沿石之间。

林墨捡起来,打开。

纸上的字跟图书馆B3那张纸条的字体一模一样——打印体,没有手写痕迹:

`你选对人了。但那个陈逸飞——查他的过去,不是他的现在。`

林墨站在树荫下。阳光从梧桐树叶的缝隙里漏下来,在他身上投下一片一片的光斑,随叶子的晃动慢慢移。远处校园广播开始播午间新闻,播音员的声音在空旷的广场上飘,说的是什么校际交流项目,他没听。

他看着纸条上的字。选拔赛今天才开始。陈逸飞的名字今天才第一次出现在校队的候选名单上。但留纸条的人——他在选拔赛开始之前就知道陈逸飞的存在。

而且他在告诉林墨:陈逸飞不是今天才出现的。

林墨把纸条折好,跟B3的信封放在一起,塞进口袋。口袋里的手机震了一下——苏晚晴发来的消息,两个字:

"名单。"

附了一张图。七人校队的初步名单,陈逸飞排第一,赵一鸣第二,周可然第三。

林墨收起手机。他站在法国梧桐的树荫边缘,前面是白晃晃的阳光和被晒得发软的柏油路,后面是工科楼灰色的墙面。树上的蝉叫得很响,一声接一声,像在催什么。

他往实验室走。口袋里的纸条和信封贴着大腿,随步伐一起一伏。ZDP在音频素材里。ZDP在HTTP请求头里。ZDP在机箱序列号上。ZDP在图书馆B3的信封里。ZDP在选拔赛的Misc题音频里。

而他手里现在有了七个人。

一个速度极快但纪律松散的Pwn手。一个来历不明但技术近职业水准的OSINT手。一个在音频隐写里发现ZDP信号的密码学学者。一个逼他入队的战术指挥。还有一个他知道底牌但不知道全部底牌的导师。

还有他自己——一个刚被拉进局里的人,口袋里揣着别人留给他的线索,站在树荫和阳光的交界线上。

林墨迈出树荫,走进阳光里。" ["create_time"]=> string(10) "1785963695" }