丽贝卡·肖花了整整一个上午,把艾薇·洛克哈特案发当晚的直播录像从头到尾看了三遍。
她坐在警局网络犯罪科的隔间里,面前是三块并排的显示器,左边的屏幕上滚动着直播间的实时弹幕数据流,中间的播放器在逐帧回放录像,右边的屏幕上是她正在编写的分析报告。隔间里弥漫着冷咖啡和电子设备散热的气味,窗帘拉得严严实实,只有屏幕的光在她脸上跳动。
第一遍,她以一个普通观众的身份去看。画面里的艾薇·洛克哈特坐在一间布置得温馨而不刻意的书房里,浅驼色的羊绒开衫,头发松松地挽在脑后,背景是一整面书墙和角落里那盏备受粉丝询问品牌的复古落地灯。她时而低头织一条看不出进度的围巾,时而抬头对着镜头回答粉丝的提问,声音带着一种刻意压低的温柔,像是对着婴儿说话的母亲。弹幕里飘过的全是“姐姐今晚好温柔”“这个灯光也太治愈了”“听着声音就能睡着”之类的留言。
第二遍,丽贝卡关闭了弹幕,把播放速度降到百分之五十,开始注意画面的技术细节。画面质量极高,这说明主播使用了专业级摄像设备和独立的光源,不是普通笔记本电脑自带的摄像头能做到的。画面的色温始终保持在4500K左右的暖色调,帧率稳定在60帧,没有出现任何手机直播常见的曝光跳动或自动对焦漂移。这一切看起来都太专业了,专业得像是电视台的演播室,而不是一个家庭书房。
第三遍,丽贝卡把录像导入了她自己编写的视频分析软件,逐帧查看画面中每一个像素的变化。她设定的检测参数是画面断层——即相邻两帧之间出现的不自然的跳跃,这种跳跃通常意味着视频被剪辑过,或者被插入了预先录制的片段。
软件在凌晨零点十八分四十三秒的时刻发出了第一声警报。
丽贝卡把画面定格在这一帧上,放大到原尺寸的四倍,反复对比前一帧和后一帧。从肉眼来看,画面没有任何可见的变化——艾薇仍然坐在同一把椅子上,手里拿着同一根织针,表情温和,姿态放松。但当丽贝卡把检测精度提高到像素级别时,她发现了一个微小到几乎不可能被注意到的异常:画面中艾薇右肩上方背景中的落地灯光晕,在连续三帧之间出现了三毫米的像素位移。
这不是设备抖动造成的。如果是支架或桌面的震动,整个画面中的所有像素都会向同一方向同步移动。但这次的位移只发生在落地灯的光晕区域,而且位移的方向与画面中其他物体的运动轨迹不一致。更诡异的是,在三帧之后,光晕又精确地回到了原位,像是有一只无形的手把时间往后拨了三帧,然后又放回了原处。
丽贝卡放下咖啡杯,把这一段录像反复播放了二十遍。她确认了自己的判断:有人在这三帧画面中植入了一段预录的静态图像,覆盖了真实画面。这种技术在视频后期制作中被称为“帧填补”,通常用于修复拍摄中的瑕疵。但放在这里,它被用来做了一件完全不同的事——制造一个持续性的在场假象。
如果这里有三帧被覆盖,那么整个四小时的直播中,还有多少帧是假的?
她重新设置了检测参数,不再只针对像素位移,而是加入了色温突变、音频相位差和背景噪声波动三个维度的交叉比对。软件重新开始扫描整个录像文件,进度条在屏幕上缓慢推进,丽贝卡抱着胳膊靠在椅背上,指节无意识地敲打着手臂。
第二声警报在凌晨一点零二分十七秒响起。然后是第三声,在凌晨两点十五分零九秒。三次异常的共同特征是:持续时间极短,不超过四十帧,换算成时间不到一秒钟;发生的间隔不规律,但全部集中在直播的中段;每次异常都被平台系统自动标注为“传输抖动”,并在播放端用缓冲逻辑自动修复,普通观众根本察觉不到。
丽贝卡拉过键盘,调出直播平台的后台技术协议文档。她很快找到了需要的信息:这家平台为了优化带宽成本,在主播端使用了一种叫做“预测帧缓冲”的技术。当系统检测到网络波动时,会自动将缓存中最近一帧的有效画面填充到丢失的帧位上,直到网络恢复。这个设计本意是为了保证观看体验的流畅,但它同时制造了一个致命的盲区——如果有人在主播端主动制造间歇性的网络抖动,就能在直播中插入预录的画面而不被平台发现。
她拿起桌上的内线电话拨给了雷恩。电话接通后,她只说了一句话:“她的不在场证明是用技术伪造的。你最好亲自过来看看。”
十五分钟后,雷恩站在丽贝卡的隔间里,看她把三次掉帧的放大画面并排投在中间的显示器上。丽贝卡用光标指着落地灯光晕的位置,解释了三毫米像素位移的发现,然后切换到了另一个更让雷恩注意的细节。
“你看她的眼睛。”丽贝卡把第三次掉帧的画面放大到极致,用光标圈出艾薇的瞳孔区域,“在掉帧发生前后的真实画面中,她的视线焦点有极其微妙的偏移。掉帧之前,她在看镜头,也就是在和观众交流。掉帧结束之后,她的视线焦点从镜头上方大约两厘米的位置移回到了镜头中央。”
“这意味着什么?”雷恩问。
“意味着在掉帧覆盖的那不到一秒钟里,她的真实视线不在镜头上。她可能在看向房间里的某个方向,或者在看另一台显示器的画面,或者——”丽贝卡停顿了一下,“——她根本不在那把椅子上。她起身了,而预录的画面掩盖了她的离开。”
雷恩俯下身,把脸凑近屏幕。像素颗粒在他眼前放大成一团团模糊的色块,但在这团模糊中,他突然捕捉到了丽贝卡还没有提到的东西。在那段掉帧画面中艾薇的瞳孔反光里,隐约倒映出了一个矩形的轮廓,像是某种显示器的屏幕。
“这个反光能提取出来吗?”他问。
“已经做了。”丽贝卡敲击键盘,调出了一张经过锐化和对比度增强的处理图像。反光中的矩形轮廓被放大之后,可以勉强辨认出那是一个多窗口的操作界面,横向排列着几个深色的窗口,其中最大的一个窗口中显示的似乎是某种平面图。
“这个分辨率不够做图像识别,但根据窗口的颜色比例和排列方式判断,这大概率是一套安防监控系统的后台界面。”丽贝卡说着,又在键盘上敲了几下,调出了另一组数据,“我同时分析了直播中的音频频谱。人耳听不出问题,但频谱分析显示,在三次掉帧发生的时间段内,背景中的环境噪音出现了短暂的中断。具体来说,是一只钟表的走时声。”
雷恩直起身。他记得在翠影走廊五号住宅的客厅里,有一台老式落地钟,走时声沉稳而有节奏,在整个勘查过程中一直响个不停。
“那个钟声,和案发现场哪一户的钟声吻合?”
“需要拿到十户住宅的环境录音做声纹比对才能确定。但问题不在这里。”丽贝卡转过椅子,面对雷恩,表情难得地收起了平日的漫不经心,“问题在于,要在直播中植入预录画面并控制掉帧的时机和时长,操作者必须同时具备三个条件:第一,拥有直播间的最高后台权限;第二,掌握专业级的视频编辑和网络协议技术;第三,能够在作案现场的物理空间中同步触发网络干扰。”
“换句话说,”雷恩缓缓地说,“不可能是她一个人。”
“不是她一个人,就是有一个极其了解她直播技术链路的人在对她进行配合。”丽贝卡顿了顿,“雷恩,她的丈夫是做什么的?”
“网络安全架构师。”
丽贝卡没有说话,只是挑起了一边眉毛。
雷恩回到重案组办公室,把丽贝卡的初步分析结果向莫罗做了汇报。莫罗听完之后沉默了一会儿,然后从抽屉里取出一份刚收到的文件,推到雷恩面前。
“技术组也刚做完十户住宅监控系统的取证。翠影走廊物业的监控服务器在案发当晚收到了一条合法的维护指令,授权方是物业公司的系统管理账户。但这个账户的登录IP地址,在指令发出前二十分钟被劫持了。劫持手法极其高明,用的是市面上没见过的一种中间人攻击脚本,技术组花了半个晚上才追踪到它的来源——它出自一个叫‘幻网’的网络安全极客论坛。”
“这个论坛在谁的控制之下?”
“公开信息显示,创始人是一个代号‘安魂曲’的人。真实身份不明。但有趣的是,技术组在追溯论坛服务器节点的物理位置时,发现其中一台服务器的硬件签名和两年前一家网络安全公司丢失的一台原型机完全一致。”莫罗的手指在文件上轻轻敲了两下,那上面印着一个公司名称——“贝茨网络安全解决方案”。
利亚姆·贝茨的公司。
雷恩靠进椅背,脑海中浮现出那十扇敞开的门、十块失窃的加密硬盘、一颗带着口红印的烟蒂,以及一段在掉帧间隙露出凶光的直播录像。每一条线索都指向一个看似不可能的交汇点:艾薇·洛克哈特,一个拥有千万粉丝的生活博主,和她那个低调到近乎隐形的丈夫。
“去查利亚姆·贝茨昨晚的行踪,”雷恩说,“不要正式传唤,用走访的名义。”
莫罗记下了,但随即提出了另一个问题:“如果这夫妻俩是合谋,为什么要在现场留一颗带着自己DNA的烟蒂?这不是自掘坟墓吗?”
雷恩没有立刻回答。他看向窗外,哈文港的午后阳光正明晃晃地照在警局停车场上,几名警员在警车之间穿行,一切看起来平静而有序。但他的思绪却在那颗烟蒂上反复打转。不是因为它的存在本身,而是因为它出现的位置——第十户住宅的露台。那是走廊最尽头的一户,也是最后被盗的一户。如果整个作案过程是一句完整的话,那颗烟蒂就是最后的句号。
而在所有的犯罪案件中,凶手留下的句号,从来就不是无心之失。
“也许它不是留给我们看的,”雷恩终于开口,声音低得像是说给自己听,“也许是留给另一个知道它在看的人。”
他站起来,拿起车钥匙,准备去走访利亚姆·贝茨。但在走出办公室之前,他又回头看了一眼莫罗桌上那份文件,目光落在“安魂曲”这个代号上。
在诺瓦利亚的极客圈子里,他曾听过这个代号。据说这个人能够穿透任何防火墙,不留一丝痕迹。但有一个有意思的说法是,“安魂曲”从不单独行动——他永远需要一个物理锚点,一个能够接触目标设备的人,一个能够打开那扇门的钥匙。
而能拿到贝茨网络安全公司原型机的人,似乎不多。


暂无评论,来抢沙发吧!