下一章 上一章 目录 设置
19、战时状态 ...
-
凌晨三点四十七分,安全屋的空气凝固得像一块未经雕琢的混凝土。
这间临时改造的攻坚场所位于大学老校区一栋实验楼的地下室,厚重的混凝土墙体隔绝了外界的一切信号,也隔绝了时间流逝的感知。墙面刷着上世纪八十年代的淡绿色涂料,部分已经斑驳脱落,露出里面更深的颜色。唯一的光源来自六盏可调角度的工作灯,它们被精准地投射在房间中央拼接起来的三张长桌上——那里铺满了设计图纸、结构计算书,以及三台物理隔离的高性能工作站。
空气里弥漫着旧纸张、电路板发热,以及过量咖啡因混合而成的独特气味——一种知识在高压下燃烧的味道。
沈墨渊坐在长桌一侧,面前的三块屏幕分别显示着不同的内容:左侧是遭受攻击前的最后完整数据镜像,中间是正在重建的模型实时渲染,右侧则是密密麻麻的日志文件和验证脚本输出窗口。他的手指在键盘上以几乎恒定的节奏敲击着,偶尔停顿,盯着某行代码或某个参数沉思几秒,然后继续。他的白衬衫袖口卷到小臂中间,露出清晰的手腕骨骼线条,以及一块表盘简洁的机械腕表——指针正在完成又一轮无意义的循环。
十二米外的房间另一头,顾怀序站在一块贴满便签纸的白板前。那些便签纸按照时间轴、任务模块、待验证假设、已知问题四个维度排列,用不同颜色的笔迹标注,形成一个精密而残酷的作战地图。他左手握着一支黑色白板笔,笔帽尚未取下,右手食指轻轻点在其中一张黄色便签上——“内存一致性验证:优先级1”。
他已经保持这个姿势四分钟了。
整个空间里只有三种声音:沈墨渊键盘敲击的清脆回响、工作站散热风扇低沉稳定的嗡鸣,以及两人几乎同步的、被刻意放缓的呼吸声。
这种绝对的专注持续了又二十分钟。
“边界条件七。”沈墨渊忽然开口,声音因为长时间沉默而有些干涩,但异常清晰,“验证通过。误差万分之三点二,在预设容差范围内。”
顾怀序没有立刻回应。他的视线从白板上移开,投向沈墨渊右侧屏幕上的验证结果输出流。那些滚动的数字和符号在他眼中迅速被解析、重组、评估。三秒后,他取下笔帽,走到白板前,在对应的黄色便签上画了一个简洁的对勾。
“记录时间。”他说,声音同样平静,“这是第二个核心模块。”
沈墨渊在键盘上输入一行命令,时间戳被记录进项目日志。他的目光没有离开屏幕:“按照当前进度,主模型重建可以在五十六小时内完成。但‘保险丝’备用路径的应力模拟需要额外十二小时。”
“去掉冗余迭代。”顾怀序回到白板前,用笔尖点在另一组蓝色便签上,“我们不需要证明它完美,只需要证明它在所有失效场景下都能接管系统。把收敛精度标准降低一个数量级。”
“那样会损失百分之十五的优化空间。”
“用时间换空间。”顾怀序转过身,终于看向沈墨渊。工作灯的光线从他侧后方打来,在他脸上投下深刻的轮廓阴影,只有那双眼睛在暗处依然明亮如常,“评审委员会要的不是数学上的优雅,而是工程上的绝对可靠。证明它能工作,比证明它工作得有多好更重要——在现在的局势下。”
沈墨渊的手指悬停在键盘上方。他理解这个逻辑,甚至在顾怀序说出前半句时就已经推演出了后半句。但这种主动放弃优化、接受次优解的策略,与他一贯追求极致的本能相悖。他沉默了两秒——这是他与自己工程师洁癖斗争所需要的时间——然后敲下回车。
“标准已调整。”他说,“预计可节省九小时。”
“好。”顾怀序重新转向白板,继续审视作战地图。他的姿态没有丝毫松懈,仿佛刚才的决策只是行军途中调整了一下背包带。
但沈墨渊知道不是这样。
在过去的三十七小时里,他们完成了正常情况下需要一百二十小时的工作量。这种效率并非来自什么奇迹,而是来自顾怀序每一个决策的精准,以及他们之间已经不需要语言来解释的协作模式。顾怀序定义问题框架和优先级,沈墨渊攻坚技术实现;顾怀序掌控全局节奏,沈墨渊确保每一个局部的最优解;顾怀序判断什么时候该投入资源,沈墨渊知道如何让这些资源产生最大效用。
这是一种超越了单纯专业合作的同步——更像两套精密仪器在共享同一套时钟信号。
清晨六点零三分,门外传来三下规律的敲门声。
顾怀序走到门边,拉开那道厚重的隔音门。苏予晴站在门外,手里提着两个保温袋,脸上带着掩饰不住的疲惫,但妆容依然精致得无懈可击。她身后还跟着一个穿着灰色连帽衫的年轻人,背着鼓鼓囊囊的双肩包,眼神警惕地扫视着走廊。
“早餐。”苏予晴递过保温袋,“还有你要的人。”
年轻人走进房间,没有寒暄,直接走向长桌一角空着的第四台工作站。他放下背包,取出自己的键盘和鼠标开始连接设备,整个过程沉默高效。
“秦风,网安专家。”顾怀序简洁地介绍,“他会帮我们重建被攻击那部分的日志链,尝试追查入侵路径。”
沈墨渊朝秦风点了点头,对方只是抬眼回了一个简短的示意,双手已经在键盘上开始工作。
苏予晴没有进门。她站在门口,压低声音对顾怀序说:“警方那边有进展了。攻击使用的漏洞利用代码,在暗网市场上有过三次交易记录,最后一次买家的支付路径经过三个空壳公司,最终指向一家注册在开曼群岛的投资基金。”
“和天枢有关联吗?”
“间接关联。那支基金持有天枢设计百分之八的股份,也在过去两年里投资了另外三家与陆天珩有私人关系的初创公司。”苏予晴从包里取出一个平板,调出一份复杂的股权结构图,“最重要的是,攻击发生的时间点——周末清晨五点——正好是天枢的OA系统自动执行安全日志归档的时间。这意味着对方不仅知道漏洞,还知道我们的运维习惯。”
顾怀序的眼神沉了下去:“内部有人提供信息。”
“可能性很高。”苏予晴收起平板,“警方已经对项目组所有有系统权限的人员进行背景排查,重点是天枢前员工,或者与陆天珩有私交的人。但这个过程需要时间,而且如果没有直接证据——”
“我明白。”顾怀序打断她,“继续推进。另外,评审委员会那边?”
“李老的态度有所松动。我昨晚把你们已经完成核心模块重建的消息透给了他,他回复说‘还算有点担当’。”苏予晴嘴角勾起一个讽刺的弧度,“王工那边依然坚持要看到完整的风险评估报告,但不再提‘伦理风险’这种大帽子了。舆论战场我们暂时稳住,但真正的胜负还是得靠你们在这里拿出来的东西。”
“知道了。”
苏予晴离开后,厚重的大门重新关闭。房间里又恢复了那种与世隔绝的寂静,只是现在多了一个人敲击键盘的声音——秦风的节奏更快,更密集,像是在进行某种高速的电子战攻防。
顾怀序将保温袋放在桌边,打开,里面是还冒着热气的三明治和咖啡。他拿起一份走到沈墨渊身边,放下,没有说“休息一下”或者“吃点东西”之类的废话,只是放在那里,然后回到自己的位置,开始处理苏予晴带来的新信息。
沈墨渊看了一眼三明治,又看了一眼屏幕上正在运行的模拟进度条。进度百分之六十三,预计还需要四十七分钟完成这一轮。他伸出手,拿起三明治咬了一口,味觉系统反馈出培根、煎蛋和黄芥末酱的味道,但他几乎是在机械地完成咀嚼和吞咽的动作。咖啡是黑咖啡,没有加糖,苦味在舌根炸开时带来一丝清醒的刺痛。
他一边吃,一边眼睛依然盯着屏幕。某个参数的变化曲线引起了他的注意,他放下食物,快速调出相关的子程序代码,修改了两行,重新提交计算。
整个过程中,顾怀序也在工作。他站在白板前,用红色记号笔在几张便签上画了圈——那些是与“内部信息泄露”可能性相关的任务模块。然后他走到秦风身后,低声询问了几个技术细节,得到简短回答后,在另一张白纸上快速绘制着什么。
时间以代码行数、模拟迭代次数和咖啡杯空掉的次数为单位,缓慢而坚定地向前推进。
上午十一点左右,沈墨渊完成了主模型第七个核心模块的验证。当最终那个绿色的“PASS”出现在屏幕上时,他身体深处某个一直紧绷的弦,极其轻微地松弛了零点几毫米。
就是这个瞬间,困意如潮水般涌了上来。
过去五十多个小时里,他累计睡眠时间不超过四小时,而且都是碎片化的二十分钟小憩。此刻,在阶段性目标达成的短暂空隙里,身体的本能终于压倒了意志力的防线。他的视线开始模糊,屏幕上的代码变成跳动的光斑,头不由自主地向前点了一下。
他猛地惊醒,用力眨了眨眼,试图重新聚焦。
但三分钟后,同样的情况再次发生。这一次,他的额头几乎要碰到键盘。
一只手伸过来,轻轻按在了他的肩膀上。
沈墨渊抬起头,看见顾怀序站在他身侧。房间的灯光在他身后,让他的面容有些模糊,只有那只手传来的温度和重量是真实的。
“去沙发上躺二十分钟。”顾怀序的声音比平时更低,带着一种不容置疑的平静,“模型在下个模块开始前需要二十分钟的数据加载时间,你可以用那个间隙。”
“我——”
“这是效率最优解。”顾怀序打断他,用的是纯粹理性的语言,“你现在的错误率在上升,虽然还控制在可接受范围内,但趋势是向上的。二十分钟的休息可以让错误率回归基准线,避免后续返工消耗更多时间。”
沈墨渊想反驳,但大脑里负责逻辑的部分告诉他顾怀序是对的。他看了一眼进度条——确实,下一个模块需要等数据加载完毕才能开始,这段时间他除了等待什么都做不了。
他站起身,脚步有些虚浮地走向房间角落那张陈旧的黑皮沙发。坐下时,皮革发出轻微的吱呀声。他向后靠去,闭上眼睛,准备用冥想的方式度过这二十分钟。
但疲惫是如此彻底,几乎在他合眼的瞬间,意识就开始下沉。
半梦半醒之间,他感觉到有人走近。然后是某种轻柔的织物覆盖在身上的触感——是顾怀序挂在椅背上的那件深灰色羊绒开衫。织物上带着极淡的、属于顾怀序的气息,一种冷冽的木质调混合着旧书纸张的味道。
他没有睁眼,但在这个被那气息包裹的瞬间,他清醒地意识到一件事:顾怀序就在两米之外,正在继续他未完成的工作。而他被允许在这里,在这个人的气息笼罩下,获得短暂的休憩。
这种认知带来的安心感,比任何催眠药物都更有效。
他沉沉睡去。
顾怀序站在沈墨渊刚才的位置,目光快速扫过三块屏幕上的所有信息。模型重建进度、验证结果、待处理问题列表……一切都在掌控之中。他调出沈墨渊刚才修改的那段子程序代码,仔细阅读了一遍,然后在某个注释行后添加了一行更优的算法建议。
做完这些,他看向沙发方向。
沈墨渊已经睡着了,身体微微侧向一边,呼吸平稳而深沉。那张总是过于平静的脸上,此刻因为放松而显露出某种与年龄不符的稚气。羊绒开衫很好地覆盖在他身上,只露出一只搭在沙发边缘的手——手指修长,指节分明,虎口处有长期握笔留下的薄茧。
顾怀序注视了那只手大约五秒钟。
然后他移开视线,走向房间另一头秦风的工作站,压低声音询问:“溯源有进展吗?”
秦风头也不抬:“攻击者很专业,用了三层跳板,日志被清洗过。但他们在某个环节犯了个错误——用了同一个算法生成所有的加密文件名,而那个算法有可预测的种子模式。”
“能定位到源头机器吗?”
“理论上可以,但需要时间做模式匹配。”秦风终于停下手,抬头看向顾怀序,“更重要的是,我在被加密的文件里发现了一些不属于项目资料的东西。”
顾怀序的眼神锐利起来:“什么?”
“一些看起来像是私人邮件和日程表的碎片,恢复度不高,但能看出是某个人过去三个月的通信记录。”秦风调出一个文件列表,“接收者都是同一个邮箱,发件人各不相同,内容涉及项目进展、会议纪要、还有一些……个人行程安排。”
顾怀序看着那些文件名,沉默了三秒。
“能确定是谁的邮箱吗?”
“正在尝试,但加密破坏了元数据,需要更深的恢复。”秦风说,“不过,从时间戳来看,这些文件的最后修改日期,都比项目资料要新。也就是说,攻击者在加密我们的项目文件后,还额外从某个地方拷贝了这些私人文件,一并加密了。”
“这意味着什么?”
“两种可能。”秦风靠回椅背,神情严肃,“第一,攻击者在系统里停留的时间比我们预估的要长,他们在完成主要目标后,还在四处翻找,这些私人文件是顺手拿走的战利品。第二……”
他顿了顿。
“第二,这些私人文件,本身就是目标之一。”
房间里陷入更深的寂静。只有工作站风扇的嗡鸣,和远处沈墨渊平稳的呼吸声。
顾怀序走到窗边——那里其实不是真正的窗户,而是一面封死的玻璃砖墙,透光不透影。朦胧的天光从外面渗进来,在地下室投下模糊的光斑。他站在那里,背影挺拔得像一柄入鞘的剑。
“继续恢复那些文件。”他终于说,声音里听不出情绪,“但优先级放在项目重建之后。另外,这件事暂时不要告诉第三个人。”
“明白。”
顾怀序回到白板前,拿起黑色记号笔,在最上方新增了一行字:
“战场不止一处。”
他在这行字下面画了两条平行的横线,然后回到自己的座位,开始处理苏予晴刚刚发来的最新邮件。邮件里附着评审委员会发来的正式函件,要求他们在七十二小时内提交完整的白皮书草案。
时间,正在以分钟为单位倒计时。
沙发上,沈墨渊在睡梦中无意识地动了一下,将脸更深地埋进那件羊绒开衫的织物里。那上面残留的气息,在这个充满数据、代码和阴谋的房间里,是唯一柔软的东西。
而顾怀序在工作的间隙,又一次看向了那个方向。
这次他的目光停留了整整十秒。
然后他收回视线,重新投入与时间的赛跑。
战争还在继续,但至少在这个瞬间,这个由混凝土、电缆和绝对意志构筑的堡垒里,有一种无声的默契正在成型——它比任何誓言都更坚固,比任何契约都更牢靠。