2018年的深秋,林城的雨总是下得没完没了,像是一层洗不掉的灰雾,黏在老旧居民楼的玻璃窗上。
陈默盯着电脑屏幕上跳动的代码,指尖在机械键盘上敲出清脆的声响。作为一名自由职业的网络安全工程师,他的生活大多时候是枯燥且孤独的,直到那个深夜,一封匿名邮件静静地躺进了他的收件箱。邮件的主题只有简短的几个字:“2018午夜福利”,发件人地址是一串乱码,正文里则链接到一个看似普通的本地服务器地址,以及一行小字:“如果你能解开它,奖励是你无法拒绝的。”
陈默是个好奇心极重的人,尤其是当这种好奇心被挑战的时候。他嗤笑一声,以为又是哪个黑客组织的恶作剧或者钓鱼链接。但出于职业本能,他还是拉起了虚拟机,准备在隔离环境中试探一番。屏幕幽蓝的光映照着他略显苍白的脸,房间里只有主机风扇低沉的嗡嗡声,窗外雨声淅沥,仿佛在为这场即将开始的博弈伴奏。
他小心翼翼地点击了链接,网页加载缓慢,像是一个步履蹒跚的老人。当页面终于完全展开时,陈默愣住了。那不是他预想中的恶意程序界面,也不是炫技般的黑客展示页,而是一个极其复古、甚至可以说是简陋的聊天室界面。背景是漆黑的,只有中间一行绿色的光标在闪烁,提示语写着:“欢迎进入午夜频道。请出示你的‘钥匙’。”
陈默眉头微皱。钥匙?他环顾四周,目光落在了桌角那张泛黄的照片上。那是他三年前失踪的妹妹陈雨留下的唯一遗物,照片背面写着一串数字,那是他们小时候共同设置的生日密码。难道这个“福利”跟陈雨有关?一股寒意顺着脊椎爬上来,但他并没有关掉网页,反而鬼使神差地输入了那串数字。
回车键按下的瞬间,屏幕猛地黑了一下,随即弹出一个新的窗口。这次不再是文字聊天,而是一段视频。视频画面有些模糊,带着明显的噪点,背景是一间熟悉的卧室——那是陈雨失踪前住的地方。视频里,一个穿着白色连衣裙的女孩背对着镜头,坐在窗前,似乎在听着什么,肩膀微微颤抖。陈默的心脏猛地收缩,呼吸变得急促起来。那是陈雨,虽然画面模糊,但他绝不会认错。
“这是假的,一定是合成视频。”陈默强迫自己冷静下来,手指飞快地在键盘上敲击,试图追踪视频的来源IP。然而,让他惊恐的是,无论他怎么追踪,IP地址都像泥牛入海,消失在茫茫网海中,最后竟然显示为本地回路。也就是说,这段视频似乎是从他自己的电脑里“流”出来的。
就在这时,视频里的女孩缓缓转过头来。那张脸苍白而憔悴,眼神空洞,嘴巴一张一合,似乎在无声地呼救。紧接着,视频画面突然卡顿,然后跳出一行血红色的字:“游戏开始。你只有五分钟,找到她,或者永远失去她。”
陈默猛地站起身,椅子在地面上划出刺耳的声音。他看了一眼时间,午夜十二点整。窗外的雨声似乎变大了一些,敲打着窗户,像是在催促。他重新坐回椅子上,双手颤抖着开始操作。既然IP是本地回路,那就意味着线索一定藏在他的本地文件中。他疯狂地翻看着自己的硬盘,从文档到图片,从备份文件夹到回收站,不放过任何一个角落。
时间一分一秒地过去,屏幕右下角的倒计时显示只剩三分钟。陈默的额头渗出了细密的汗珠,脑海中不断闪过陈雨失踪那天的细节。那天也是这样一个雨夜,陈雨说要去见一个“重要的人”,然后就再也没有回来。重要的人……是谁?
突然,他的目光停留在一个名为“backup_2018”的隐藏文件夹上。这个文件夹他从未见过,但却莫名地熟悉。他双击打开,里面只有一个音频文件,文件名是“最后的晚安”。陈默犹豫了一下,点击播放。
耳机里传来沙沙的电流声,随后是一个熟悉又陌生的声音,那是陈雨的声音,却带着一丝诡异的平静:“哥哥,如果你听到了这个,说明我已经不在了。那个‘福利’不是金钱,也不是权力,而是真相。去看看老地方吧。”
音频戛然而止,屏幕上的倒计时归零。陈默顾不上多想,抓起外套就冲出了家门。雨很大,打在他的脸上生疼,但他感觉不到冷,心里只有一股燃烧的怒火和焦虑。他打车直奔城郊的那片废弃工业区,那里有一栋被遗忘的仓库,是他和陈雨小时候的“秘密基地”。
当陈默浑身湿透地推开仓库那扇生锈的铁门时,一股陈腐的气息扑面而来。仓库里空荡荡的,只有几根斑驳的水泥柱矗立在黑暗中。月光透过破碎的屋顶洒下来,照亮了角落里的一个纸箱。陈默颤抖着手走过去,打开纸箱。里面没有他想象中的尸体,也没有绑架信,只有一台老式的笔记本电脑,屏幕亮着,上面显示着一段代码。
代码的最后一行写着:“真相是,你一直被困在自己的记忆牢笼里。2018年11月11日,你才是那个忘记一切的人。”
陈默愣住了,脑海中闪过一段破碎的画面:车祸、鲜血、刺眼的灯光,以及自己跪在地上撕心裂肺的哭声。原来,陈雨并没有被绑架,而是死于那场他记忆模糊的车祸。而这封邮件,这个“午夜福利”,竟是他自己潜意识里设置的程序,用来提醒自己面对痛苦,或者是某个不知名的黑客利用了他的心理弱点,精心策划的一场心理实验。
雨还在下,陈默靠在冰冷的墙壁上,缓缓滑坐在地。屏幕的光映在他脸上,忽明忽暗,就像他此刻破碎又重组的世界。2018年的午夜福利,不是恩赐,而是一场残酷的审判。