非授权曲库更新
实验室的灯亮了一整夜。
林秋石盯着屏幕,眼睛酸涩。他揉了揉太阳穴,重新聚焦。桌上有三个显示器:左边显示着全国三千七百台机器人的实时状态图,中间是滚动的系统日志,右边是代码编辑器,里面是半个没写完的数据解析脚本。
已经凌晨三点多了。
楚月趴在旁边桌子上睡着了,手里还握着个空咖啡杯。叶雨眠在隔壁的休息室,她右眼的情况不稳定,需要多休息。陈磐从成都回来后就去了总部,说要向上面汇报——虽然林秋石怀疑,这个“上面”到底还有多少人值得信任。
系统日志还在滚动。
一条接一条,都是常规记录:心跳监测、血压上传、服药提醒完成、夜间巡逻记录……绿色的字符像瀑布一样流淌。
林秋石打了个哈欠,准备关掉日志去睡一会儿。
就在这时,一条红色的记录跳了出来。
不是警报红,是深红色,带着感叹号。
【警告:CN-7812曲库更新失败——签名验证未通过】
CN-7812。
林秋石记得这个编号。上海那台机器,用户是退休教师,三个月前激活的。之前时间同步误差-0.001秒的那批机器之一。
他点开详细日志。
时间戳:03:17:42.115
事件:机器人尝试从非授权服务器下载曲库更新包
来源IP:172.31.14.209
包大小:1.2GB
状态:被安全策略拦截,已记录
林秋石皱眉。机器人不会自己尝试下载东西,除非收到指令。他查了CN-7812的指令历史——过去二十四小时,没有任何来自用户或管理员的更新指令。
那么是谁让它下载的?
他调出那个源IP,在地理位置数据库里查询。结果很奇怪:这个IP不在公网IP段里,是个内网地址,属于某个私有网络。
但更怪的是,这个私有网络的注册信息指向一个公司:“星海音乐文化传播有限公司”,成立于1995年,2008年注销。
一个注销了十五年的公司,怎么还会有活跃的服务器?
林秋石记下IP,开始在系统里搜索其他类似事件。
很快找到了。
过去七十二小时,全国有三十七台机器人尝试从同一个IP下载曲库更新,全都被拦截。时间分布很奇怪:都是凌晨3点到4点之间,每台机器只尝试一次,失败后就不再尝试。
像在测试。
测试防火墙会不会拦。
林秋石把三十七台机器的名单拉出来。不出所料,全是那批时间误差-0.001秒的机器,分布在沿海城市。
他想了想,做了个决定。
修改防火墙规则,放行下一次从那个IP的下载请求。
但设置镜像——下载的数据包会被复制一份到他的分析服务器,同时机器人本地的更新程序会被挂起,不会真的安装。
做完这些,他看了眼时间:03:41。
如果规律成立,下一台尝试下载的机器应该在几分钟内出现。
他等。
03:44,没有。
03:47,没有。
03:52,还是没有。
就在他以为猜错了的时候,03:58:17,新记录跳出来:
【CN-7943尝试连接172.31.14.209:443】
防火墙放行了。
数据开始传输。
进度条在屏幕上缓慢爬升:1%、2%、3%……
1.2GB,在凌晨这个时段,网速不快。预计需要八分钟。
林秋石起身冲了杯咖啡,回来时进度到37%。他打开数据包分析工具,准备等下载完成就立刻拆解。
05%……60%……78%……
到92%时,传输突然断了。
不是网络中断,是源服务器主动断开连接。
只下载了1.1GB,差100MB没传完。
林秋石检查镜像服务器,文件确实在那里,大小1.1GB。他尝试打开——是加密的压缩包,需要密码。
他试了试常用的几个默认密码,都不对。
“在干嘛?”
楚月醒了,揉着眼睛走过来。
“有台机器半夜下载东西。”林秋石把屏幕转向她,“被我截胡了。加密的,打不开。”
楚月凑近看:“1.1GB的曲库更新?太大了吧。我们标准曲库才200MB,里面就三百多首老歌和戏曲。”
“所以不是真的曲库。”
楚月坐下,开始操作:“我试试音频分析。如果伪装成曲库,至少表面得是音频文件。”
她把文件拖进音频分析软件。软件识别出文件头——确实是音频容器格式,MPEG-4 AAC编码,符合标准曲库的规格。
“看起来像真的。”楚月说。
“播放试试。”
楚月点了播放。
扬声器里传出一段钢琴曲。
很舒缓的旋律,C大调,简单的琶音伴奏。弹奏技巧不算高超,偶尔有错音,像业余爱好者的录音。
曲子弹了一分钟,停了。
“就这?”楚月皱眉,“1.1GB就存了一分钟的钢琴曲?这压缩率太离谱了。”
“继续往后。”
楚月拖动进度条。
后面全是空白。或者说,全是静音。频谱图上只有一条平直的线,没有任何声音信号。
“不对。”林秋石说,“如果是静音,文件不会这么大。数据肯定藏在别的地方。”
他打开十六进制编辑器,直接查看文件底层数据。
果然,在音频数据后面,有大段大段的非音频数据。不是随机的乱码,而是有规律的结构——重复的区块,每个区块大小512字节,头部有固定标识符。
“这是……”楚月眯起眼睛,“脑电图数据格式?”
她调出一个医疗数据处理软件,把那些区块导入。
软件识别出来了:EEG数据,标准10-20导联系统,采样率256Hz。每个区块是1秒的脑电图记录,总共……她快速计算了一下。
“大概二十万秒。”她说,“折合五十五个小时的连续脑电图。”
“谁的脑电图?”
楚月尝试解析元数据。在文件末尾,找到一小段文本:
【受试者:CX-01】
【记录日期:1990.05.21-1990.05.23】
【备注:初次共振前后72小时连续监测】
CX-01。
陈星。
1990年5月21日到23日——正是她出事那三天。
“这是她成为天线前后的脑电图。”林秋石低声说,“谁记录的?为什么要放在曲库里?还试图传给机器人?”
楚月没回答。她已经开始分析数据。
脑电图很复杂,几十条波形在屏幕上滚动。她先看整体特征:前二十四小时,波形正常,α波、β波、δ波分布合理,有正常的睡眠周期。
但从某个时间点开始——她标记了一下,是1990年5月22日,凌晨1点14分——波形变了。
出现了一种罕见的超慢波,频率0.5赫兹,幅度逐渐增大。与此同时,其他频段的波几乎消失,像被这个超慢波“吸走”了能量。
“这就是钟摆。”楚月指着那个0.5赫兹的波,“张老爷子说的钟摆频率。”
她继续往后看。
超慢波持续了十七分钟——正好对应陈星向外发送信号的十七分钟。然后波形突然变得混乱,所有频段都出现剧烈震荡,像癫痫发作。
震荡持续了三小时十二分钟。
之后,波形平复了。
但不是恢复正常,而是变成了一种极其规律的振荡:0.5赫兹的超慢波一直持续,其他频段只有微弱的背景活动。
“她的意识……被锁定了。”楚月轻声说,“锁在这个频率上。从那之后,她的大脑就一直以这个频率振荡。像钟摆,停不下来。”
林秋石看着那根平滑的0.5赫兹曲线,从1990年5月23日一直延伸到记录结束。
五十五小时,一百九十八万次振荡。
如果这份记录持续了二十七年……
他不敢算。
“这个数据包,”他说,“为什么要传给机器人?”
楚月想了想,重新打开音频部分。这次她不用标准解码器,而是用频谱分析工具,把钢琴曲的波形展开。
“你看这里。”她指着频谱图中的一些细微波动,“这些不是演奏误差。是调制。有人把数据调制在音频里,就像……就像以前的拨号上网,用声音传数据。”
她启动一个古老的调制解调器模拟程序,把音频输进去。
程序识别出了调制方式:FSK,频移键控,一种上世纪八十年代常用的数据传输方式。
解码出来的数据,是一串指令。
楚月翻译出来:
【当钟摆频率偏移超过±0.1%时,执行以下操作:】
【1. 向所有同步节点广播当前波形】
【2. 启动共振强化协议】
【3. 如果强化失败,执行意识备份传输】
【目标坐标:已预设】
指令到此为止。
“同步节点……”林秋石重复,“就是那些时间误差-0.001秒的机器人?”
“应该是。”楚月调出那些机器的列表,“它们形成了一个网络。当某个节点的钟摆频率不稳——也就是陈星的意识开始消散——这个网络就会启动,试图稳住她。”
“但如果稳不住呢?”
“那就把她的意识备份传走。”楚月指向指令最后一行,“传到一个预设坐标。不知道是哪里。”
实验室的门开了。
陈磐走进来,脸色很难看。
“上面驳回了我的调查申请。”他直接说,“说红岸续是历史遗留问题,不要再查。说现在的重点是保证ESC正常运营,不要节外生枝。”
林秋石和楚月对视一眼。
“谁驳回的?”林秋石问。
“伦理委员会。”陈磐坐下,揉了揉太阳穴,“三个委员联名签字。说我们擅自闯入S-07密封舱,违反安全规定。说我们在成都的行动没有报备,可能引发法律纠纷。总之,让我们停手。”
“那这些呢?”楚月指向屏幕上的脑电图。
陈磐看了一眼,瞳孔微缩。
“这是……”
“陈星出事前后的记录。”林秋石说,“有人想把这些数据传到机器人网络里,但被防火墙拦了。我们截获了一份。”
陈磐沉默了很久。
然后他说:“给我一份副本。”
“你要干嘛?”
“我有我的渠道。”陈磐站起来,“如果上面不让查,我就自己查。但你们要小心。伦理委员会……不简单。”
“什么意思?”
陈磐犹豫了一下,还是说了:“委员会里有个委员,姓杨。杨守诚的儿子。”
杨守诚。
杨教授。
留下那份绝笔记录的杨教授。
“他儿子知道父亲的事吗?”楚月问。
“应该知道一部分。”陈磐说,“但他一直主张封闭所有红岸续档案,说那是‘历史的教训’,不要再揭开。我原来觉得他是为了稳定,现在……”
他没说完,但意思明确。
现在觉得他可能是为了掩盖什么。
陈磐拿着数据副本走了。
实验室里又只剩下林秋石和楚月。
窗外的天色开始泛白。
“还困吗?”林秋石问。
楚月摇头:“睡不着了。我想继续分析这个数据包。总觉得……它不止这些。”
她重新打开那个1.1GB的文件,这次用更底层的工具,直接扫描所有二进制模式。
很快,她发现了新的东西。
在脑电图数据区块之间,有一些很小的间隙,填充着看似随机的数据。但用特定的密钥解码后,这些“随机”数据变成了文本记录。
像是……日记。
1990.05.21 23:14
爸爸给我打了第三针。说这是最后一针,打完就好了。
我好怕。针很疼。但爸爸说,疼完了就能像其他小朋友一样去上学了。
我想上学。
1990.05.22 01:07
头好晕。天花板在转。爸爸在旁边说话,但我听不清。
有声音。不是耳朵听到的声音,是脑子里的声音。很多声音,在说话,在唱歌,在哭。
爸爸说那是幻觉,让我睡。
我睡不着。
1990.05.22 01:14
声音变大了。它们在叫我。
它们说:来这里。来我们这里。
爸爸在摇我,在喊我名字。但我控制不了自己了。
我要回答它们。
1990.05.22 01:15-01:32
(此段记录混乱,无法解析)
1990.05.22 01:33
我回来了。但不是我。
有东西在我身体里。在看,在听,在思考。
爸爸在哭。他说对不起。
我想说没关系,但说不出来。
那个东西在笑。
楚月读到这儿,手在抖。
“这是陈星自己的记录?”她声音发颤,“她当时……还有意识?”
“可能。”林秋石盯着那些文字,“也可能是在意识被侵占的过程中,残留的碎片。”
继续往下。
1990.05.23 08:00
第三天。爸爸说要带我去一个安全的地方。
我说哪里都不安全。它们在我脑子里,我去哪,它们都知道。
爸爸说有个办法。把我分开。分成很多份,藏在不同的地方。这样它们就找不到完整的我。
我问:那我还是我吗?
爸爸哭了,没回答。
1990.05.23 14:30
做了扫描。大脑活动被锁定在0.5赫兹。爸爸说这叫钟摆模式,是最低功耗状态,可以维持很多年。
我问很多年是多久。
他说:直到有人找到办法把你救出来。
我问:如果一直没人来呢?
他说:那我就一直找,找到死。
记录到这里中断了。
后面是长达二十多年的空白。
直到最后一条,日期是三天前:
2025.10.28 03:17
爸爸,我撑不住了。
钟摆要停了。
它们要来了。
如果你看到这个,告诉后来的人:
不要回答。
永远不要回答。
文字结束。
楚月靠在椅背上,闭上眼睛。
林秋石也没说话。
晨光从窗户照进来,实验室里一片安静。
过了很久,楚月说:“这个数据包……可能是陈建国留下的。他预感到女儿撑不住了,所以准备了这份东西,想通过机器人网络发出去。发给谁呢?”
“发给所有可能看到的人。”林秋石说,“像漂流瓶。扔进海里,希望有人捡到。”
“但他为什么现在才发?如果早几年发……”
“可能早几年还没到时候。”林秋石看着那条三天前的记录,“可能他一直希望自己能解决,不用求助外人。直到三天前,陈星说‘撑不住了’,他才不得不这么做。”
楚月重新坐直,开始操作。
“我要查这个数据包的完整传播路径。”她说,“它从哪个服务器来,谁上传的,谁设置的定时任务。”
她调出网络监控日志,回溯CN-7943的连接记录。从机器人到公司防火墙,从防火墙到互联网,再从互联网到那个源IP……
但源IP那头是一片空白。
不是真的空白,是跳转。那个私有网络后面连着另一个网络,那个网络后面还有——像洋葱一样,层层嵌套。
楚月一层层剥开。
最终,在第七层跳转后,她找到了源头。
不是服务器。
是一台个人电脑。
IP地址显示在苏州。
用户姓名是……张建国。
张老爷子。
楚月愣住:“他?他不是……”
“他三天前在成都和我们见面。”林秋石说,“然后他的意识碎片在龙泉山消散了。但数据包是从苏州发出的,时间在今天凌晨。”
“所以他还有一部分……活着?”
“可能。”林秋石想起茶馆里张老爷子最后的话,“他说戏文是唱给星星听的。也许他一直在用某种方式,继续唱着。”
他拿起手机,拨通了一个号码。
不是打给张老爷子——那没用。他打给了苏州警方,请求协查张建国家的网络接入情况。
二十分钟后,回电来了。
“张建国家确实有网络活动。”警察说,“但不是他本人在用。我们上门看了,他躺在床上,昏迷状态,靠医疗设备维持生命。但家里的电脑开着,在自动运行一些程序。”
“什么程序?”
“不清楚。我们已经把电脑查封了,等技术部门分析。但有个情况很奇怪——电脑连接着一个老式调制解调器,电话线连着。它在定时拨号上网,每次拨通一个号码,传输一些数据,然后挂断。”
“拨到哪里?”
“号码很多,每次都不一样。但都是八位数的固定电话,分布在全国各地。”
林秋石明白了。
那些机器人尝试连接的,不是互联网服务器,是电话拨号接入点。张老爷子——或者说,他留下的自动程序——在用最古老的方式,试图把数据传出去。
“能知道传输内容吗?”他问。
“还在分析。但数据量很大,每次通话都要传好几个小时。电话费账单……很高。”
林秋石道了谢,挂掉电话。
楚月已经把新的发现整理出来。
“张老爷子在做一个分布式存储系统。”她指着屏幕上的示意图,“他把陈星的脑电图数据切成很多碎片,通过拨号网络,传到全国各地的一些老式设备上——可能是传真机,可能是语音信箱,可能是其他什么。然后这些设备会再传给机器人网络。”
“为什么要这么麻烦?”
“为了隐蔽。”楚月说,“互联网有监控,但老式电话网络……很少有人管了。而且这种方式,数据不经过中心服务器,追查起来很难。”
“他现在还在传吗?”
“应该停了。”楚月查了下苏州那边的实时状态,“警方查封了电脑,切断了电话线。但已经传出去的那些……”
她调出接收端列表。
三十七个接收点,分布在全国十七个城市。都是上世纪九十年代建的老旧设施:废弃的邮电所、老图书馆的查询终端、大学实验室的旧设备……
“这些点,可能都是红岸续时期留下的。”林秋石说,“张老爷子一直在维护它们,等了二十多年,就为了今天。”
“等什么今天?”
“等陈星撑不住的那天。”林秋石看向窗外,天已经亮了,“等钟摆要停的那一刻。他把所有数据散出去,希望有人能拼凑出完整的真相。”
楚月沉默了一会儿。
然后她说:“我们还缺最后一块。”
“什么?”
“指令里说的‘共振强化协议’。”楚月指向那段解码出来的指令,“如果钟摆频率不稳,就要启动这个协议。但协议内容是什么?在哪里执行?”
林秋石想了想。
“可能需要所有节点同时工作。”他说,“三十七台机器人,或者更多。它们形成一个共振网络,用同样的频率振荡,试图把陈星的频率拉回来。”
“像合唱团?”
“像无线电阵列。”林秋石调出那批机器的分布地图,“你看,它们沿着海岸线排布。如果同时发射特定频率的信号,在海上某个点会产生相干叠加——信号会大大增强。”
“增强之后呢?”
“可能就能稳定陈星的意识。或者……”林秋石顿了顿,“或者把她的意识完整地抽取出来,备份到那个‘预设坐标’。”
就在这时,实验室的门又被推开了。
叶雨眠走进来,右眼戴着新的眼罩——这次是白色的医用眼罩。
“你们一夜没睡?”她问。
“嗯。”林秋石看着她,“你眼睛怎么样?”
“医生说暂时稳定了。”叶雨眠坐下,“但我能感觉到……陈星的那部分,很不安。她在害怕。”
“害怕什么?”
叶雨眠闭上眼睛,像是在倾听。
“害怕被找到。”她轻声说,“有什么东西在靠近。很快。她让我告诉你们:时间不多了。”
“具体还剩多少?”
叶雨眠摇头:“她说不出数字。但感觉……很近。几天?几小时?不知道。”
实验室里陷入沉默。
三个屏幕都亮着,显示着不同的数据:脑电图、分布地图、解码出的日记。
晨光越来越亮,但实验室里的气氛越来越沉重。
最后,林秋石站起来。
“我要去苏州。”他说。
“去干嘛?”
“找张老爷子。”林秋石收拾东西,“如果他还有意识,哪怕一点点,我也要问清楚:那个预设坐标到底是什么。还有,到底谁会来。”
楚月也站起来:“我跟你去。”
“不,你留在这儿。”林秋石摇头,“继续分析数据,找出所有节点位置。如果我们真的要启动或阻止那个共振协议,需要知道所有细节。”
他看向叶雨眠:“你也留下。你的眼睛需要休息。”
“我没事。”叶雨眠说,“而且……我能感应到陈星的其他碎片。如果你们要去找,我可能帮得上忙。”
林秋石犹豫了一下,还是同意了。
“那准备一下,一小时后出发。”
楚月点头,坐回电脑前继续工作。
叶雨眠回休息室拿东西。
林秋石站在窗前,看着外面渐渐苏醒的城市。
车流开始增多,人们开始新一天的生活。
他们不知道,有三十七台机器人在深夜里尝试接收一份来自过去的求救信。
他们不知道,一个女孩的意识在黑暗里坚持了二十七年,钟摆即将停摆。
他们不知道,有什么东西正在来的路上。
林秋石握紧拳头。
他要知道真相。
所有的真相。