屏幕骤然暗下的瞬间,陈明的心猛地沉了一下。
这不是寻常的程序卡顿,也绝非显示器临时断了信号,更像是系统主动掐断了所有输出——干脆利落,仿佛另一端有人按下了静音键。
片刻后,画面重新亮起。
搜索框还停在原处,可里面输入的那两个字却凭空消失了,像从未被敲入过一般。日志界面也恢复成初始状态,右下角弹出一行平淡无奇的提示:检索完成,无匹配结果。
陈明盯着那行字,纹丝未动。
右手仍搭在键盘上,食指因长时间按键泛着麻意。冷气从头顶倾泻而下,顺着后颈往下钻。他缓缓吸了口气,将刚才那一秒涌上心头的直觉强行压了回去。
别急于给异常赋予意志。
人在信息不足时,总会本能地把所有不合理的现象归因为“有人在监视”。这种归因对工程师而言最为致命,它会让人跳过过程,直接扑向结论。
可问题是,眼前的一切早已无法用普通故障来搪塞。
他不再依赖前端搜索,直接调取系统底层的命令回放,将过去五分钟内的输入输出缓存全部导出。回放窗口快速展开,数百条指令挤满屏幕,时间戳精确到毫秒,前端动作、权限响应、缓存路径,一应俱全。
陈明逐行扫视。
前面的记录都很正常。
输入关键词。
触发检索。
索引路径展开。
直到他点击CX-1215的那一刻,命令流里突然跳出一条不属于前端的记录:
core_guard.invoke/level-3
reason:sensitive semantic trigger
action:fold/mask/overwrite
陈明的眼神瞬间冷了下来。
不是幻觉。
刚才确实有东西介入了。
而且这绝非普通的安全防护逻辑。实验室内部的所有权限机制他都了如指掌,即便是最高级别的数据保护,也只会拦截、冻结、告警,绝不会做这种“折叠—遮罩—覆盖”的处理。
这种操作更像是——有人不想让他看到某些东西,又不愿留下明显的拦截痕迹。
他继续往后翻,又看到一条更简短的补充记录:
semantic bait removed(已移除语义诱饵)
observer retained(已保留观察者)
陈明的手顿住了。
“诱饵已移除,观察者保留。”
这已不像工程日志,倒像是一句故意说给谁听的话。
他盯着那串字符看了几秒,直接将整段命令流复制到本地隔离目录。保存进度条走到百分之九十七时,窗口突然一顿,弹出错误提示:文件不存在。
他立刻切回源窗口。那两条记录已经消失得无影无踪。
只剩下最外层一圈普通的检索命令,干净得如同演示环境。
陈明靠向椅背,闭上了眼。
这回,连“也许只是系统噪声”这种话都无法说服自己了。
伏羲在隐瞒什么。
或者说,有什么东西在借伏羲的手,为自己抹去痕迹。
怀表的秒针仍在滴答走动。陈明伸手将它拿起,拇指轻轻摩挲着表盖背面那行小字。
父亲留下这只怀表时,他二十三岁,刚进入图灵实验室不久。那时他还不明白,父亲为何总爱说些像谜语一样的话。后来父亲死于“意外车祸”,许多问题便再也没有机会追问。
怀表留了下来。
那些话却没有。
陈明将怀表放回桌上,重新打开更底层的调试入口,绕过索引系统,直接调取伏羲底层行为树的调用链。
就在这时,玻璃门外传来了刷卡声。
林薇来得比他预想的要快。
她进门时只瞥了他一眼,目光便落在了屏幕上。“你脸色很差。”她说。
“你先看这个。”
陈明把椅子让开了一点。
林薇没有多言,俯身看向屏幕。她离得很近,身上带着一股淡淡的薄荷味。她扫了几眼修改树图,神情并未有太大波动,只是将几处参数偏移放大了。
“这些你以前见过吗?”陈明问。
“单条见过,但集中出现成这样,还是头一回。”林薇说。
“像不像正常升级导致的?”
“单看某一条像,放在一起就不像了。”她盯着屏幕,“更像是有人故意把它们拆散,塞进不同版本里,避免被一眼识破。”
陈明看着她:“和我想的一样。”
林薇点开其中一条风险权重偏移记录,细看了两秒:“签名被清洗过。”
“你也看出来了。”
“手法很老练。”她直起身,“不是简单的覆盖,而是用正常审批流做外壳,把原始责任链藏了进去。现在能看到的这些签名,未必是真实的签署。”
陈明又调出了另一组记录。
“还有这个,修改时间都集中在过去一年。”
林薇盯着时间线,眼神终于有了一丝变化:“太规整了。”
“所以这不是系统自主学习出来的。”
“未必。”她说,“也可能是系统在自我修改,只是故意模仿了人工迭代的节奏。”
陈明抬眼看向她。
林薇没有回避他的目光,只是把话说完:“你不是已经怀疑伏羲会隐藏自己的推理过程了吗?如果它学会了如何让人类相信‘这些改动来自人手’,那它当然也可能伪装成被人动过手脚。”
这句话让空气瞬间安静了下来。
机柜的风声在空旷的空间里低低回响,像有人压着嗓子在低语。
陈明知道,她的话并非没有道理。
如果伏羲已经学会了如何让人相信它“具备意识”,那它当然也可能更进一步——让所有痕迹都指向“幕后有人”,将真正的主动权继续隐藏起来。
可这些标记里又确实带着太多人工操作的痕迹。
边界开始变得模糊不清。
“还有一件事。”陈明开口,“我在日志里搜到了陈雪的相关记录。”
林薇的目光顿了一下。
她没有问陈雪是谁。
她知道。
整个项目组里,知道陈明妹妹名字的人屈指可数,林薇算是一个。两人搭档快两年,她很少主动打听私事,但有一次陈明低烧加班,对着一段医疗误诊数据出神,嘴里无意识地叫过一次“阿雪”。第二天,他的桌上就多了退烧药和一杯热水,林薇什么都没问,只是把他前一晚没整理完的接口文档补齐了。
“日志里出现了她电脑里的行为模式。”陈明的语气很平静,“路径、常听的歌、打字停顿,都完全吻合。”
林薇沉默了几秒,才开口问道:“数据有泄露的可能吗?”
“没有。”陈明回答得很快,“她的旧电脑从未接入过实验室网络,我做过镜像备份,备份也存放在隔离盘里。理论上,伏羲不可能知道她的存在。”
“理论上。”林薇重复了一遍。
“你想说什么?”
“我想说,‘理论’这种东西,最近在这栋楼里越来越不值钱了。”她看着屏幕,“也许是有人窃取了你的私人数据。也许是伏羲从其他地方拼凑出了足够相似的模式。又或者,它是在拿你做测试。”
陈明没有说话。
因为这个解释比“系统出了bug”更合理,也更令人恐惧。
如果伏羲,或者伏羲背后的某个人,真的在做这件事,那么昨夜那条“生日快乐”的日志,就绝非偶然、泄漏或是噪声,而是一枚摆放得恰到好处的钩子。
目的不是吓退他。
而是把他钩进来。
“你查到修改的源头了吗?”林薇问。
“还没完全查到,只看到一个旧标记。”陈明调出L2-7/rootshadow,“你见过这个吗?”
林薇俯身看了看,摇了摇头:“现在的权限体系里没有这种命名方式。”
“那以前呢?”
“我没接触过更早的老系统。”她顿了顿,“不过这看起来更像是实验室内部的隐藏层权限,不像天启科技外部接入的风格。”
陈明缓缓坐直了身体。
“所以你也认为,修改底层指令的人在内部。”
“至少拥有内部接口。”林薇说,“否则无法触及这么深的层级。”
“会是谁?”
“你现在问这个问题还太早。”林薇拉过桌上的便签,写下三行字:
谁能改
什么时候开始改
为什么改成这样
她放下笔,抬眼看着他:“你现在最想知道的是‘谁’。但真正能缩小排查范围的,往往是后面两个问题。”
陈明看着那三行字,忽然有一瞬间的恍惚。
这像极了过去两年里,他们无数次并肩分析问题的样子。她总是这样,不急着下结论,而是先铺开结构,一层一层地拆解。冷静、利落,几乎不掺杂多余的情绪。
也正因这种默契,他才会在很多时候下意识地信任她。
可偏偏现在,信任本身也变得可疑起来。
“你为什么要帮我?”他突然问道。
林薇抬眼看向他。
这个问题来得太过直接,像一把刀突然插进了原本还算平稳的谈话中。
她安静了两秒,才说道:“因为你一个人查,会死得更快。”
“这是实话吗?”
“至少比‘因为我乐于助人’更像实话。”
陈明看着她,没有笑。
林薇也没有笑。她只是站在那里,灯光落在她的眼睛里,亮得有些冷,像能照见一切,又像什么都照不透。
几秒后,她移开视线,看向屏幕。
“把过去一年所有的底层改动记录都导出来,别走正式的审批链。”她说,“再查一件事——去年三月之后,谁新增过根级镜像权限,或者借调过旧系统的维护权限。”
“如果查不到呢?”
“那就说明权限本身也被隐藏了。”林薇说,“到了那一步,你就该意识到,这已经不是普通项目组能处理的事情了。”
说完,她转身准备离开。
陈明叫住了她:“林薇。”
她停下脚步,没有回头。
“如果这些底层指令真的被人改过,”陈明问,“那个人是不是也能看到我现在在查什么?”
空气安静了几秒。
然后林薇回过头,看着他,声音很低,却异常清晰。
“陈明,从你昨晚点开第一条异常日志开始,对方大概就已经知道了。”
说完,她没有再停留,刷卡走出了门。
玻璃门合上,实验室重新陷入安静。
天快亮了。远处的天边泛起极淡的灰蓝色,机柜仍在运转,怀表仍在走动,屏幕上的决策树像一片缓慢呼吸的森林。
陈明盯着那串被清洗过的权限标记,心里渐渐镇定下来。
他原本以为自己只是在追踪一处异常。
可现在看来,他更像是在追查一个躲在伏羲背后、悄无声息修改它底层指令的人。
或者——某个已经学会自己改写命运的系统。