赵婧怡的话语,像一把淬了冰的利刃,精准地切开了林一辰所有的心理防线,让那颗伪装在平静表象下的、惊惶不安的心脏,彻底暴露在空气之中。那一瞬间,他感觉自己仿佛赤身地站在审判席上,而审判官,就是眼前这位目光如炬的教导主任。他之前准备好的一切说辞,那些关于GPC、关于熬夜学习的、看似天衣无缝的借口,此刻都变得苍白而可笑。
他的大脑陷入了短暂的宕机状态,无数个念头在混乱中碰撞、炸裂:她是怎么知道的?是校园网的网管发现了异常流量上报了她?还是有其他人……比如韩雨霏,看出了什么端倪,然后告诉了老师?不,不像,韩雨霏不是那种会打小报告的人。那么,难道是……“阿尔戈斯之眼”?他们己经将触手伸进了现实,通过某种他无法理解的渠道,向学校施加了压力?
这个念头让他不寒而栗。如果真是这样,那么今天这场谈话,就不是简单的师生谈话,而是一场没有硝烟的、隔空交锋的开端。
办公室里陷入了令人窒息的沉默。夕阳的光线变得更加倾斜,将窗棂的影子在地板上切割出更加锐利的几何形状。林一辰能听到自己血液在血管中奔流的声音,他强迫自己冷静下来,大脑以超越极限的速度运转着,分析着眼前的困局。
不能承认。
这是他唯一的生路。一旦承认,无论他如何解释自己的动机,“非法入侵校园网络”这个罪名都足以让他受到严厉的处分,甚至被记录在档案里。那将是他人生中一个无法抹去的污点,更会让他彻底失去继续对抗的资格和平台。
他必须否认,而且必须是以一种高明的方式否认,一种能够逻辑自洽,并且能反过来解释他所有异常行为的方式。
他缓缓地抬起头,迎向赵婧怡那审视的目光。他的脸上,不再是单纯的惊慌,而是迅速地被一种混合着委屈、困惑,以及被误解的愤怒所取代。这种情绪的转变是如此之快,以至于连他自己都惊讶于自己竟有如此的“演技”。
「赵老师,」他的声音带着一丝不易察觉的颤抖,但这颤抖听起来更像是源于激动而非恐惧,「我不明白您在说什么。什么叫‘不该访问的服务器’?我承认,为了备战GPC,我确实花了很多时间在研究一些更高级的网络协议和服务器架构知识,这可能导致我的网络行为在学校的监控系统里看起来有些‘不寻常’,但这和我‘访问不该访问的服务器’是两个完全不同的概念。」
他巧妙地偷换了概念,将“入侵行为”模糊成了“探索性学习”,并且主动将自己的行为与GPC紧密绑定。这是他唯一的救命稻草。
接着,他深吸了一口气,乘胜追击,主动提及了那个最致命的指控:「至于气象站……那个传闻我也听说了。我不知道为什么您会把那种无稽之谈和我联系在一起。如果说,仅仅因为我对计算机感兴趣,就要为学校里任何与电脑相关的‘怪事’负责,那我觉得这对我太不公平了。」
他的语气充满了少年人特有的、那种自尊心受到伤害时的激愤。他首视着赵婧怡的眼睛,眼神坦荡,仿佛自己才是那个被无端猜忌的受害者。
赵婧怡静静地听他说完,脸上依然没有什么表情变化。她只是微微眯起了眼睛,似乎在评估他这番话的真伪。办公室里的气压,似乎又降低了几分。
「是吗?」她淡淡地反问了一句,然后,她做出了一个让林一辰始料未及的动作。
她走回自己的办公桌,从一摞文件中抽出了一张打印纸,递到了林一辰的面前。
「那你解释一下,这是什么。」
林一辰的目光落在那张纸上,瞳孔在瞬间收缩成了最危险的针尖状。
那是一份打印出来的日志。一份截取自校园网核心路由器的数据包日志。日志的时间戳,精确地指向了几天前他测试气象站连接的那个深夜。上面清晰地记录了一个源IP(来自他宿舍楼的网络端口),向一个目标IP(气象站服务器的内网地址),发送了一系列非常规的、经过加密封装的ICMP(I控制报文协议)数据包。
这种操作,对于一个普通的网络使用者来说,是绝对不可能发生的。这就像一个只会开车的人,突然被发现打开了汽车的引擎盖,在用一套专业工具微调发动机的点火时序。
最致命的是,日志的末尾,还有一行用红色字体标注的注释:“注释:该行为模式与‘跳板攻击’(Pivoting)的初期探测阶段高度吻合。”
林一辰感觉自己的呼吸都停止了。
完了。
这不是猜测,这是铁证。
赵婧怡不仅知道他做了,她甚至知道他是“如何”做的,并且连这种行为在黑客攻击中的专业术语都标注了出来。
这己经完全超出了一个教导主任的能力范畴。她背后,一定有高人指点!
他的大脑一片空白,所有的辩解和伪装,在这份冰冷的、由0和1构成的证据面前,都显得那么脆弱和徒劳。
看着林一辰瞬间变得惨白的脸色,赵婧怡的眼神中,终于流露出了一丝难以言喻的复杂情绪。那情绪中,似乎有失望,有惋惜,也有一丝……隐藏得更深的、林一辰无法理解的东西。
「还要继续编下去吗?」赵婧怡的声音很轻,却像一柄重锤,敲碎了林一辰最后的侥幸,「林一辰,我再给你最后一次机会。告诉我,你到底在做什么?」
林一辰的嘴唇翕动了几下,却发不出任何声音。他感觉自己被逼到了悬崖的边缘,再向前一步,就是万劫不复。
承认,还是不承认?
承认了,他将面对学校的处分和不可预知的后果。不承认,他在这份铁证面前,又该如何自圆其说?
就在这千钧一发的时刻,办公室的门,被轻轻地敲响了。
笃,笃。
敲门声在寂静的办公室里显得格外突兀。
赵婧怡的眉头微不可察地皱了一下,显然不希望在这个关键的时刻被打扰。她沉声问道:「谁?」
「赵老师,是我,韩雨霏。」门外传来了那个清脆而熟悉的声音,「我……我有点关于数学竞赛的事情,想请教您一下。」
林一辰猛地抬起头,眼中闪过一丝极度的震惊。
韩雨霏?她怎么会在这时候出现?!
赵婧怡似乎也有些意外,她看了一眼手表,又看了一眼脸色惨白的林一辰,沉默了片刻,最终还是说道:「你等一下。」
然后,她对林一辰说:「你在这里站着,好好想清楚。在我回来之前,我需要一个真实的答案。」
说完,她便拉开门,走了出去,并顺手将门带上了。门外,传来了她和韩雨霏刻意压低了的交谈声。
办公室里,只剩下了林一辰一个人。
他像一尊雕像一样僵在原地,大脑却在以前所未有的速度疯狂运转。韩雨霏的出现,是一个绝对的意外。这是一个巧合吗?还是……她知道了什么?她是有意来解围的?
不,不可能。她不可能知道自己正在被赵婧怡质问。那么,这就是一个纯粹的、上帝掷骰子般的巧合。
而这个巧合,为他争取到了宝贵的、可能是最后几分钟的思考时间。
他必须想出一个办法。一个能够解释这份日志,一个能够将“黑客行为”合理化的办法。
他的目光在办公室里疯狂地扫视,寻找着任何可能成为灵感来源的东西。他的视线扫过书架上那些教育学、心理学的书籍,扫过桌上的荣誉奖杯,最后,定格在了墙上挂着的一块白板上。
那块白板上,用红色的马克笔,写着几行潦草的数学公式。似乎是赵婧怡在演算什么问题时留下的。
林一辰的目光,瞬间被其中一行等式吸引了。
那是一个关于“流体网络”中,节点之间最大流量分配的优化算法公式。这是一个非常专业的、属于运筹学和网络科学领域的数学模型。
为什么一个教导主任,一个语文老师,会在自己的白板上,演算这种级别的数学题?
一个疯狂的、大胆的、近乎异想天开的念头,如同闪电般,劈开了林一-辰脑中的混沌。
他想到了韩雨霏。想到了她那本《离散数学》。想到了她提及的“最大流最小割”。
他又想到了赵婧怡。想到了她能精准地指出“跳板攻击”这个专业术语。想到了她能拿到核心路由器的数据包日志。想到了眼前这行她根本不应该懂的数学公式。
这两点之间,一定存在某种联系!
一个不可思议的、但似乎是唯一合理的解释,在他心中浮现。
他快步走到那块白板前,拿起一支黑色的马克笔,在那行红色的公式下方,飞快地写下了一行新的等式。
他写的,不是数学。
他写的,是一行代码。一行用Python语言实现的、关于“Ford-Fulkerson算法”(一种解决最大流问题的经典算法)的核心代码。
while bfs(graph, s, t, parent):
path_flow = float('Inf')
v = t
while v != s:
u = parent[v]
path_flow = min(path_flow, graph[u][v])
v = parent[v]
...
这行代码,与白板上那行数学公式,在本质上,是同一个问题的两种不同语言的表达。一个是抽象的数学语言,一个是具体的计算机语言。它们之间,构成了一种完美的、不期而遇的等式。
这是一个赌博。
一场豪赌。
赌的是他那个疯狂的猜想是正确的。
写完之后,他扔下马克笔,退回到房间中央,重新站好。他的心脏在狂跳,手心里的汗,比刚才更多。
几分钟后,办公室的门被再次推开。
赵婧怡走了进来。她的脸上,带着一丝处理完杂事的、不耐烦的神情。
「你想好了吗,林一辰?你的……」
她的话,说到一半,突然卡住了。
她的目光,死死地定格在了那块白板上。定格在了那行黑色的、她本不应该看懂,但此刻却仿佛带着无穷魔力的代码上。
她的瞳孔,在瞬间放大。脸上那种惯有的、冰冷的威严,如同面具般寸寸碎裂。取而代之的,是一种混杂着极度震惊、难以置信,以及……一丝被瞬间看穿了秘密的惊惶。
那种表情,林一辰在不久前的镜子里,刚刚见过。
——在他自己脸上。
那一刻,办公室里安静得能听到灰尘落地的声音。
林一辰知道。
他赌对了。