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