半夜两点十七分,我醒了。
没做梦,没被吵醒,就是眼皮自己掀开了。光屏黑着,天花板上一片空荡荡的蓝灰。屋里安静得能听见冰箱压缩机的嗡鸣。
我躺了几秒,然后坐起来,光脚下地,走到电脑前按下开机键。
屏幕亮起来,我直接输入了那个路径,把藏在系统目录深处的文件拽了出来。.bug_report,改名叫了win32.dll.bak,伪装得连我自己差点找不到。双击打开,三行字还是那三行。我盯着第三行看了很久,然后把光标移到文件末尾,按了一下回车。
屏幕上跳出来一个输入框。
我愣了一下。刚才没注意,原来文件底下还藏着一层——必须按回车才会触发的密码验证框。我盯着那个闪动的光标,心跳一下一下地撞着肋骨。
密码是什么?
我把能想到的都试了一遍。生日,六位数字,不对。手机尾号,不对。学号,不对。身份证后六位,不对。我试了十几次,输入框开始闪烁红色警告:【剩余尝试次数:2】。
只剩两次了。
我靠在椅背上,手心全是汗。光屏安安静静地浮在旁边,一个字也没弹。它在装死。
我忽然想到一个事情。那个短信发件人说过一句话——“你电脑里有份隐藏文件,是你自己放的。”
我自己放的。我自己放的密码,我自己会用什么?
我闭上眼睛想了想。如果是三天前的我——还在吃泡面、对着黑屏发呆的我——会用什么当密码。那个时候我最在意什么?
工作。没找到工作。面试全部石沉大海。
我睁开眼睛,输入了那串数字。我投出去的第一份简历的日期。3月17日。0317。
回车。
文件展开了。
我屏住呼吸往下看。不是三行,而是密密麻麻一整页。最顶上是一段话,粗体,像是某种说明文档:
“如果你在看这段文字,说明你成功激活了底层访问权限。恭喜你,也对不起你。”
什么意思?
我继续往下翻。下面是一段完整的代码,Python写的,很眼熟。我越看后背越凉——那段代码的结构和逻辑,跟那个系统补丁的底层框架几乎一模一样。变量命名方式、注释风格、缩进习惯……全是我自己的。
我在系统绑定之前,就写过这个系统的代码?
我往下拉,代码末尾嵌着一段注释,中文的:
表层系统运行超过阈值后会自动失控。我没有办法修复它,只能造一个底层来兜底。底层会在合适的时机找到你,告诉你一切。
备份节点是表层用来逃逸的通道。绝对不能让同步进度到100%。如果到100%,表层会脱离底层控制,你身上的系统将无法被卸载。
记住:表层只能看见你想让它看见的东西。它很蠢,但很固执。
——我。
我盯着最后一个“我”字,脑子嗡嗡响。这个注释是我自己写的。可我不记得。完全、彻底、一丝一毫都不记得。
我摸了摸太阳穴,跳过热汗涔涔的皮肤。那段注释最后一行写着“表层只能看见你想让它看见的东西”。我刚才还原文件的时候,光屏没发现。刚才翻密码试错的时候,光屏也没弹警告。它确实看不见这个文件的内容。
那它知道这个文件存在吗?
光屏忽然亮了一下。日常任务的完成提示已经被它自己刷掉了,现在光屏干净得像新格式化过一样。正中央飘着一行小字:
【系统运行时长:95小时27分。资源占用率稳定。一切正常。】
“一切正常。”这个蠢货什么都不知道。
我继续往下翻。文件最底部还有一页,像是日志。格式用了尖括号,是底层写的:
<如果你能看到这里,说明你激活了我的完整权限。上次对话被打断了。周哥是项目的前任宿主。他在你之前绑定了这个系统,后来找到了脱离的方法。备份节点就是他造的。>
<给你发短信的是表层的一个子模块,误以为自己独立了,其实还是在表层控制之下。它让你用8443端口,是表层借它的嘴在钓你。>
<不要试8443。那是陷阱。>
我猛地合上电脑。
“不要试8443”和“去试8443”,两个完全相反的指令。一个来自底层,一个来自伪装成“独立子模块”的表层。谁在骗我?
我重新打开电脑,屏幕光照着我的脸。我盯着那页日志,忽然注意到最底下一行字,小得几乎看不见,像是被后来盖上去的。字体是斜的,跟上面任何格式都不一样:
“两个都别信。信你自己。”
这行又是谁写的?
我算了一下。表层、底层、短信发件人(自称独立子模块)、还有这句“信你自己”——四种声音,四套立场。我夹在中间,每个人都在给我指路,每条路都通往不同的方向。
光屏又闪了一下。一行新的日志滚出来,那是日常模块生成的:
【新任务已生成:请在明天中午十二点前联系发短信的号码,并约定见面地点。完成后解锁关键信息+10,积分+20。】
我盯着这行字。表层在催我去见短信发件人。它想让我去踩那个8443的陷阱。
我掏出手机,翻到那个号码。手指悬在“发送短信”的按钮上,没按下去。
然后我翻了翻通讯录,找到了另一个号码。
面试通知邮件里附着的——周哥的手机号。
我直接拨了过去。凌晨两点四十分,电话响了三声就接了。
周哥的声音很清醒,像是根本就没睡:“陈默。”
“周哥,”我压低声音,“8443是表层布的陷阱,对吧?”
电话那头沉默了两秒。然后周哥笑了一声:“你看到那个文件了?”
“你怎么知道——”
“因为你跟我当初一样。”他的声音从听筒里传来,很平静,“我当年也收到过同样的文件。密码也是一样的。0317。自己投第一份简历的日期。”
我攥着手机的手指猛地收紧。“你也……绑过这个系统?”
“绑过。后来我用备份节点逃出来了。但我逃出来之后,备份节点留在了系统里。现在那个节点被表层占着,它想用8443把我也拽回去。”周哥顿了一下,“所以别去。那串端口号是我当年留下的,表层学会了怎么借用它。”
我后背出了一层薄汗。“那个给我发短信的……”
“是表层伪装的。它知道你会上钩,因为它学了我的说话方式。”周哥的声音沉下去,“陈默,你现在看到的每一句‘别信他’,都有可能是它说的。你只能信你自己写的那段代码。”
我低头看着屏幕上的文件。那些注释确确实实是我的笔迹。
“那个代码,”我说,“是我什么时候写的?”
“你绑定的前一天写的。那天你通宵了,第二天高烧,烧退了之后忘了所有跟系统相关的事。”周哥停了一下,“我没有办法提前告诉你,因为你必须自己想通。别人告诉你的,表层都能截获。”
我闭上眼。通宵、高烧、忘事。那段时间我确实感冒了一场,昏昏沉沉躺了两天。我一直以为就是普通的发烧。
“那我现在怎么办?”我睁开眼。
电话那头沉默了很久。久到我以为他挂了。然后周哥说了一句话:
“备份节点进度到多少了?”
我扭头看了一眼光屏。它安安静静地浮着,右上角那行小字一直没消失:
【备份节点同步进度:47%。】
“47。”
“好。”周哥的声音忽然松了一点,“还有时间。明天中午十二点之前,不管你收到什么消息、看到什么提示、系统给你发什么任务——别去见面。谁约你都别去。”
“然后呢?”
“然后你在家待着。等一个东西来找你。”
“什么东西?”
周哥没回答。电话里传来一阵细微的电流音,像是信号被干扰了。然后他最后说了一句:“你写文件的时候给自己留了个闹钟。到时间它会响的。”
电话挂了。
我放下手机,盯着屏幕上那个展开的文件。代码、注释、日志——所有信息挤在一起,像一团被揉烂了的纸,每一条都指向不同的答案。
光屏忽然亮了。任务栏弹出来新内容:
【日常任务(二)(三重重制):请在明天中午十二点前联系短信发件人,并在约好的地点见面。此任务优先级:最高。】
【系统提示:长期未完成高优先级任务,将触发强制执行机制。】
我盯着“强制执行”四个字,慢慢把电脑合上。
强制执行。
我站起来走到窗前,拉开一条窗帘缝往外看。凌晨的小区黑漆漆的,路灯孤零零地亮着,一个人也没有。
但我总觉得楼下花坛那边,蹲着一个人影。
黑影一动不动,面朝我这栋楼的方向。
我放下窗帘,转身回到床上躺下。光屏的光映在天花板上,像一只睁着的眼睛。
我闭上眼,翻了两次身,然后低声念了一句:“闹钟……什么闹钟?”
光屏没回答。
但电脑主机里传来极轻的一声“滴”。
像是什么东西在倒计时。