曜石科技总部一场大火,创始人沈遥被烧得面目全非,声音修复师许昭却因一枚门禁卡和一段“认罪录音”成了纵火犯。死者奇迹般生还,绑着绷带坐上代理掌门的位置。可许昭听见了警报里被剪掉的声音:凶手不是她,而是一个借死人身份活下来的女人。
直播镜头里,沈莉抬起缠满烧伤绷带的手,指向发布会席后的许昭。
“纵火的人,就站在那里。”
现场快门声骤然密集。百余名记者同时转头,十几台摄像机追着许昭的移动镜头转来。她还穿着曜石科技修复中心的灰色工装,胸牌被保安收走后,胸前只剩一道未撕净的胶痕。
主持人扶住桌沿:“沈遥女士,请您确认,您指认的是证据修复师许昭?”
沈莉没有纠正那个称呼。
她的半张脸覆着透明防护膜,声音通过直播麦克风压得很轻,却比警报刺耳。
“十九点零六分,我收到许昭发来的语音。她说消防门已经解锁,让我留在十七层等待。可我赶到时,门锁死了。火从档案室一路烧上来,我撞开三次才逃出去。”
大屏幕切入一段波形图。
许昭看清上面的时间标记,脚步停在隔离线外。
“不是我发的。”
沈莉转向镜头:“公司内部也证实,门禁系统显示你进入过十七层。”
“我是去抢备份,不是去纵火。”
“抢备份需要关闭消防分区吗?”
记者席立刻有人追问:“许昭,你承认进入过起火楼层?”
“承认。”
“那你承认删除过消防记录吗?”
许昭看向屏幕右上角。曜石科技的内部取证系统正同步直播,每一句话都自动生成时间戳、语音摘要和风险标签。她尚未回答,字幕已经跳出一行红字:许昭承认进入起火楼层。
“消防记录不是我删的。”
主持人抬手示意安保人员靠近:“许昭,请先交出权限卡。”
许昭把工作证放到桌上:“卡在公司设备里,我进发布会前就被收走了。”
“那就解释,你为什么还能接触大楼警报日志?”
“修复中心本来就负责音视频校验。”
屏幕波形突然放大。
沈莉身后的律师将一只黑色证据袋递上台。袋中放着许昭的工牌,背面贴着一张临时通行贴,有效期到火灾当晚二十点。
通行证上的照片、姓名与生物识别码完全一致。
直播弹幕瞬间铺满屏幕。
许昭盯着那张贴纸。下午六点四十二分,她在十七层档案库,确实刷过工牌。可临时通行证是三点半才由安全主管周启明签发,用于带海外考察团参观数据中心。她借那张卡进门,是为了绕开正在升级的权限系统。
“我用过。但它能证明我进去过,不能证明我纵火。”
沈莉摘下氧气面罩,吸管尾端随着呼吸微微发颤。
“你进去之后,所有人都撤了,只有你出来。”
许昭的下颌收紧:“还有一个人没出来。”
发布厅安静下来。
沈莉看着她,眼下泛着尚未褪去的红痕:“你是在说沈莉吗?”
许昭喉间一顿。
台上仍显示“沈遥”的身份信息。沈莉以海外执行董事身份回国不足半年,火灾后第一次公开露面,便坐到了创始人沈遥本该出现的位置。董事会连夜更换了官网页面,公司档案里“沈莉”的入职照片全部消失,会议室预约记录也在凌晨被覆盖。
许昭查过,却找不到沈遥被转移的记录。
她一直以为那只是身份调度留下的痕迹。
“你认识她?”许昭问。
沈莉重新戴上面罩:“如果我死在十七层,今天站在这里指认你的人,就是凶手。”
记者们交换着眼神。直播平台右上角的在线人数突破八百万,内部取证系统给沈莉的陈述打上“可信度百分之九十七”。
许昭知道它依据什么。沈莉的伤、门禁记录、那张通行证,再加上一段经过降噪的语音,便足以让系统沿着预设结论往下推。
她没有证据反驳。
“许昭。”主持人把一份电子文件投到主屏,“安全主管周启明已提交说明,建议立刻暂停你的职务。你还有什么要补充?”
许昭抬眼:“我要看原始语音。”
“证据将在司法程序中提交。”
“原始文件里有静音底噪。”
沈莉的律师立即反对:“证人要求接触未质证材料,可能造成证据污染。”
许昭没有退:“火灾警报系统的离线校验包还在我这里。”
大厅里响起压低的议论声。
她确实留了东西。
修复中心每次处理大楼警报,都会在本地生成一份校验包,记录触发端时间、校验值和波形起点。服务器会被远程覆盖,备份也会定期清理,但校验包能绕过公司主库,靠离线设备独立读取。
许昭把旧平板放在桌上:“它能证明那段语音从哪一秒开始。”
沈莉看向她:“你保存它,是想给自己留后路?”
“想证明录音起点。”
“起点有什么问题?”
“现在还不能说。”
“不能,还是不敢?”
许昭按下平板侧面的物理开关。屏幕没有联网标志,只有离线校验界面缓慢展开。主持人正要阻止,系统先弹出一条警告:文件不完整,缺少授权索引。
她将平板转向自己。
波形左侧显示原始起点:十九点零六分十二秒。
公司发布会提供的语音文件,却从十九点零七分零三秒开始。
许昭用指腹放大那零点五十一秒。波形之前留着一小段被剪平的空白,边缘有二次压缩留下的毛刺。不是录音设备自然中断,更像有人从更长的音轨里截走了一截,再把许昭的声音接到警报触发之后。
她调出校验哈希。
哈希值不匹配。
“发布会用的不是原始文件。”许昭说,“请立刻封存证据,把完整音轨交给警方。”
沈莉的呼吸停了一拍。
主持人低头看向技术席:“请技术组核实——”
大屏幕上的直播标识突然由绿色转成黄色。
系统提示:当前发布会素材正在接受远程合规审查。
沈莉抬起手,直播镜头立即捕捉到她绷带下渗出的血点。
“许昭进过十七层,”她盯着许昭,“完整音轨里如果真有她没说过的话,我会亲自道歉。现在,你拿不出文件,只有一台连主网都没有的旧平板。”
台下有人开始录像,有人已经在发送消息。
许昭听见自己的名字从记者口中一遍遍念出。十几年前参与建立曜石数字档案的项目,被沈莉改成了“由海外团队主导完成紧急止损”;她修复过的旧式身份认证模块,署名栏里也换成了沈莉带来的团队。董事会一纸通知,她名下三项专利全部转入临时项目组。
手机连续震动。
公司人事部门发来最后通知:即日起暂停许昭一切职务与权限,配合内部调查。
紧跟着,热搜第一变成“许昭纵火”。
第二是“证据修复师删除消防记录”。
第三是“沈遥火灾生还,指认内部人员”。
许昭关掉手机,没有删除平板上的校验包。
她把设备贴回桌底,手指停在“保存离线副本”上。屏幕上,一行红字正缓缓闪烁:检测到源文件访问请求,发起终端——曜石科技十七层安保室。
周启明就在那间房里。
许昭抬头看向发布会侧门。玻璃外闪过一道影子,肩章上的反光条扫过墙面,随即消失在安全通道尽头。
平板再次震动。
那份被截短五十一秒的录音,来源路径正在实时更新。
## 发展
平板上的访问请求还在闪,主持人已经把手伸向设备。
“断开外部介质。”技术席的人快步上台,“远程审查期间,任何离线文件都不得播放。”
许昭按下侧面的数据锁。进度条随即停在百分之六十三,屏幕变成黑底白字:来源访问被拒绝,事件包校验中止。
周启明。
安保室刚才有人试图读取这份录音,而且用了最高级消防权限。
沈莉的律师挡在屏幕前:“这恰好证明许昭保存了未授权的敏感资料。视频里出现的燃料罐,也来自她的修复工具柜。”
许昭抬头:“既然你知道是什么罐子,把完整录像放出来。”
“完整录像涉及公司商业秘密。”
“我只要求看许昭进入档案室前后的三分钟。”
沈莉示意主持人打开下一份素材。
大屏幕换成一则经过锐化的监控片段。画面里,许昭侧身穿过档案库,手里提着一只银色金属罐。罐体上有橙色危险标识,右下角的时间戳写着十九点零三分。
画面只持续了十一秒,却在同一时刻被十几家媒体截取。直播弹幕开始滚动“携燃料进入档案室”,内部取证系统给视频打出的匹配度甚至高于此前那段语音。
沈莉抬起缠着绷带的手,指向屏幕里的金属罐。
“星核计划原负责人许昭,以消防测试为名进入档案室。事故后,她还试图盗取算法核心。”
主屏下方随即弹出一份人事命令。由于火灾导致“项目资料泄露风险”,沈莉以海外执行董事身份紧急接管星核计划,原项目组暂停运作。命令行末尾,她的名字被置于“临时负责人”一栏。
许昭看了一眼命令发布时间。
二十点四十七分。
就在她被停职后七分钟。
“接管依据呢?”许昭问。
“董事会的紧急授权。”主持人回答。
“附件里没有。”
“内部事务不在这场发布会讨论范围。”
“星核计划的权限已经被转走,总该属于讨论范围。”
沈莉接过话:“你想谈权限?好。监控拍到你在十九点零三分携燃料进入档案室,十九点零六分又向沈莉发送诱导语音。两件事发生在同一层、同一时间。”
一名安保员被带上台。他没有看许昭,只对着镜头陈述:“十九点左右,我在十七层巡检,看见许昭抱着银色容器进入档案区域。容器外壳有反光带,很像燃料罐。”
许昭问:“你看见容器里是什么吗?”
安保员摇头。
“你看见我在里面点火吗?”
“当时门关着。”
“你看了完整监控吗?”
安保员迟疑了一下:“我看过回放。”
许昭把平板转向证人:“这段回放里,我进档案室的时间是十九点零三分。可楼内警报系统记录的火灾发生时间是十八点四十九分。整整早了十七分钟。”
台下有人立刻打开手机核对。
沈莉的律师反驳:“警报可以被人延迟。”
“所以我播放的不是警报提示,而是触发端的原始声轨。”
许昭拔下平板上的存储模块,换到发布会技术席提供的离线读取器。她没有接入主网,只输入刚才出现的来源终端编号和事件包校验值。
屏幕提示:本地快照可恢复。
“你们提交的语音从十九点零七分零三秒开始。”许昭说,“真正触发消防联动的声轨在十八点四十八分三十六秒。前面被剪掉的五十一秒,不只是许昭的语音,还包括最早的门锁提示。”
她按下播放键。
最初是密集的机械继电器声,随后出现消防分区启动的尖鸣。警报响起前四秒,音频右侧传来三声短促电子音。
第一声代表外门解锁,第二声代表内门权限确认,第三声由另一只终端发出。
许昭将速度降到四分之一。
“听清楚了。门禁控制器在十八点四十八分四十一秒给第三个人开了权限。那个人使用的不是我的临时通行证。”
现场字幕自动生成,却无法标记来源。内部取证系统先给音频打出“合成风险百分之六十八”,接着又跳到“设备来源:曜石科技内部警报终端”。
许昭点开事件元数据。
“火灾发生,十八点四十九分。临时消防分区关闭,十八点四十九分零七秒。我的临时通行证刷卡,十九点零六分十二秒。差十七分钟十三秒。”
安保员改口:“也许视频时间被调整过。”
“恰好相反。”许昭把两段时间放在同一屏上,“监控的时间戳若经过整体平移,火警触发不会跟着移动。更关键的是,警报继电器的机械底噪已经出现十七分钟,画面中的她才从电梯出来。”
记者席开始追问物资来源。沈莉却抬手截断记者,示意律师播放另一段声明。
“当晚回收的现场物证显示,燃料罐位于档案室内侧。容器编号属于曜石修复中心。许昭作为项目负责人,有完整领取记录。”
屏幕上出现一张模糊的物品登记表。编号一栏恰好对应许昭的工具柜。
许昭将表格放大:“这是领用清单,不是回收清单。生成时间是今天上午九点十二分,修改人是沈莉执行董事办公室。”
沈莉的声音透过面罩传来:“内部文件可以伪造权限,但签名不能。”
“签名可以。”许昭切到平板里的校验日志,“但这张表的原始版本没有第二页。你放出来的第二页,是用第一页表格样式重新拼出来的。表格指纹不一致。”
主持人看向技术席。技术席沉默数秒,低声让数据组核查。
沈莉摘下一只氧气管:“你们现在每拆掉一项指控,就会说下一项也有问题。监控里的银色罐子,是你在公司工具柜领取的。难不成还能是别人从海外带进来?”
“罐子可以是修复中心任何人的。”许昭说,“真正的问题是它为什么出现在十九点零三分。火已经烧了十四分钟,我不需要再进去点第二次火。”
她调出离线包内的声纹索引。三秒开锁提示被单独提取,音频分析在屏幕上列出两段不同的脚步间隔。
“第三个人的开锁动作之后,有一组重量落地声和金属拖动声。原始警报拾音器装在档案室门框上,位置比监控高半米。银罐落地的时间是十八点四十九分二十六秒。”
许昭把画面中的许昭定格,又让镜头移到服务器旁。
“十九点零三分这个时间,不是警报记录,是后来加进监控文件的。文件内部还留着一处帧间隔:十二点四秒内出现十七张重复光流。把导出帧率改成三十七帧,它才会看起来连续。”
技术组人员接入原始片段进行比对。进度走到百分之八十,大屏幕上的“合成风险”标签消失,换成“剪辑痕迹确认”。
直播页面的舆论词条迅速变化。“许昭纵火”跌出第一,“星核计划临时负责人”升上热搜第三。记者开始把镜头转向沈莉,询问她为何持有不完整的录音。
许昭趁热按下内部取证系统的异议键。
“请把我的三点声学结论写进公开摘要:火灾早于我的门禁记录十七分钟;被剪音频含第三次开锁;十九点零三分监控片段存在重复帧。”
系统弹出提示:异议已被安全主管权限接受。
安保室方向有人申请接管发布会网络。屏幕右上角的绿色标识闪了两次,变成灰色。
沈莉的律师厉声道:“许昭,你窃取的是公司原始数据,应当接受进一步调查!”
“我提交的是校验结论。原始声轨可以由警方封存后验证。”
主持人接过一份新文件,脸上的迟疑短暂消失:“下一项指控,是星核算法失窃。监控显示许昭于二十点十四分潜入核心机房,并复制了模型密钥。”
沈莉重新戴好面罩:“这一项,不只是公司报案。曜石已经向警方提交了数据窃取线索。”
大屏幕切换到一段夜间监控。
画面中的许昭戴着口罩,避开主摄像头,从设备间进入核心机房。她在服务器前停留四十多秒,将一枚黑色存储设备接入接口。右下角时间显示二十点十四分。
许昭盯着画面右上角:“播放原始文件,不要用剪辑版。”
技术席接入公司监控目录,文件却无法调取。目录显示该视频由董事会秘书处直接上传,未经过普通导出流程,原始设备签名被一层内部授权覆盖。
“服务器端没有原始设备签名。”技术人员说,“只有封装后的演示副本。”
沈莉道:“机房监控是实时拍摄的。”
许昭抬起手,指向画面顶部的灯带:“实时录像里,灯带不会每秒闪七次。”
她让技术席放慢画面。服务器机柜上方,一排白色灯带以固定间隔出现横向暗纹。暗纹的位置几乎完全重合,每一帧都卡在相同像素上。
“机房应急照明接在独立电源上。”许昭说,“二十点十四分前后,B区照明母线出现三次切换。真实摄像头以卷帘快门记录这些脉冲,暗纹会移动。这个视频每帧的暗纹位置不变,说明它不是当时拍下的,而是从已录制的同一组帧中重放。”
技术人员切出相邻机房的另一路画面。十六层走廊的灯在同一秒明显暗了一下,核心机房的画面却毫无反应。
许昭又打开离线校验包里的公司设备清单:“监控终端每天零点生成一次设备签名摘要。二十点十四分的核心机房文件,原签名对应的是十八点二十六分的一段巡检录像。视频只是套用了那段录像里的我。”
“不可能。”沈莉的律师俯身查看数据,“就算画面重放,也无法生成二十点十四分的时间戳。”
“时间戳是后加的,所以才会和实时电网记录互相打架。”许昭点开第二组证据,“消防系统断电记录显示,十八点四十九分起,机房外侧控制器转为电池供电;二十点十四分,B区市电又发生一次十秒波动。隔壁摄像头记录到了,真正的核心机房却没有。这份视频不是实时画面。”
主持人问:“有没有可以核对的原始哈希?”
“有。设备签名摘要保留原值,董事会秘书处上传文件的现值是新的。”许昭将两串编号投上主屏,“原始摘要来自修复中心维护的离线设备清单,不经过公司主库。”
技术组开始逐位核验。每一组比对完成,大屏上的“视频时间戳可信”便少一个绿色标记。最后,沈莉文件中的“实时拍摄”标签彻底变红。
安保员席上有人低声说:“两个视频都动过。”
这句话被直播收音系统完整收录。
沈莉忽然转向许昭:“视频可以处理,文件可以伪造。可你为什么能在停职后还取得维修中心保留的设备签名?除非你提前窃取了公司主库。”
许昭正要回答,安保侧门被人从外面推开。
来人穿着安全主管制服,肩章上的反光条与发布会外闪过的那道影子相同。他没有看沈莉,径直走向技术席,将一块封有防拆贴条的硬盘放在桌上。
“我是周启明。”
沈莉的律师立刻挡过去:“周主管,你未经董事会许可——”
“十九点零六分的门禁日志被临时覆盖时,我没有签过授权。”周启明把一枚金属权限钥匙压在硬盘上,“原始警报包、门禁数据库和机房监控源文件都在里面。”
许昭看向他:“谁覆盖了日志?”
周启明没有回答。他的目光越过许昭,落在主屏上仍显示着沈莉照片的官网页面。
屏幕最下方,一行尚未发布的新通知正在自动生成:
【星核计划临时负责人:沈莉。身份核验状态:待复核。】
周启明把手从权限钥匙上移开。
“许昭,想看真正没剪过的监控,就跟我去十七层安保室。”
## 高潮
周启明的硬盘落到桌上时,沈莉的目光在封条上停了两秒。她没伸手去碰,反而把氧气面罩从脸侧揭下来,露出烧伤的半张脸。眼尾的睫毛焦成一撮,左颊上的新皮透着粉红,贴在补水的绷带边缘,像一层没长牢的蜡。
“你们都想看我赢,是不是?”
她的声音发颤。她从律师手里推开话筒,径直走向记者席前方,未愈合的伤口在镜头里泛着水光。
“我从火里爬出来时,手指节都是焦的。这三天,我每天换两次药,做梦都梦见十七层走廊里全是烟。”她转向许昭,眼眶泛红,“我争这家公司,不是为了证明自己比谁强。是我姐姐留下的东西,我不能看着它被一场火灾拖进舆论泥潭。”
许昭没接话。沈莉又往前走了一步,语速慢下来:“许昭,我受够了。今晚这场发布会再开下去,曜石的名声就完了。只要你停下手里的申诉,我马上撤回全部内部调查。你的职位、权限,按调解协议恢复原样。”
她看着许昭,等了几秒:“我甚至可以让安全部门向公众说明,此前结论存在技术误判。”
台上台下一片安静。许昭低头看了一眼平板上的草稿,手指从数据锁上移开,掌心覆住屏幕:“调解意向书,可以签。”
沈莉的律师立刻从公文包里取出一张打印纸。主持人试图阻拦,沈莉抬了抬手:“这是我个人决定。”她把笔递给许昭,许昭签了自己的名字,又将笔架在指尖等沈莉接过去。
沈莉签字时,笔尖在纸张上留下两道深浅不同的划痕。许昭的目光在那道划痕上停了一瞬。沈莉签完名,把意向书递还给律师,对镜头露出一丝疲惫的笑:“谢谢大家。今天先到这里。”
周启明站在技术席后面没动。沈莉转身经过他身边时,低声问了一句:“周主管,硬盘是公司财产,你打算什么时候交还?”
“做完成交接记录,我会按流程登记。”
沈莉看了他一眼,没再多说。她带着律师和安保人员从侧门退场,直播镜头追着她的背影直到门框遮住画面。侧门合拢的一瞬,许昭从桌底抽出那块旧平板,没有断开离线模式,顺手塞进工装内袋。
周启明看着她:“跟我走。”
两人从发布厅后沿消防楼梯上到十七层,绕过火灾后封起的档案区,进入安保室。门锁落下的那一刻,周启明把硬盘插进一台不通主网的读取终端。屏幕上依次展开四个目录:门禁底层日志、药房夜间登记、逃生通道维修记录、法医协作报告扫描件。
许昭先打开门禁日志。三天前的二十一点至二十三点,一组使用沈遥身份代码的凭证在十七层消防设备间连续刷开四次,间隔九到十二分钟。每一次刷卡,监控摄像头都处于故障状态,日志下方的设备状态栏写着“离线缓冲”。
“沈遥的账号权限已经注销。”许昭指着凭证签发终端,“这组刷卡用的不是她的密钥,是海外行政权限名下调出的应急备用证书。”
她调出签发人字段。管理员ID一行,写着:“沈莉”。
周启明把第二份文件拖到桌面:药房夜间购药单。火灾前一晚,自动药房签出一支地西泮注射液,取药人栏签着“沈遥”,处方医师的注册编号却属于海外机构,下方有一行手写交接记录,签名是“沈莉”的笔迹。
许昭打开沈遥的电子病历。过敏史栏有加粗红字:苯二氮卓类,喉头水肿病史,禁用。她将两份文件叠在同一个屏幕上:“她知道沈遥的过敏史,还是签了药。”
周启明没接话,调出第三份维修记录:逃生通道门锁工单。距离火灾三天,B2安全出口锁芯更换;审批人签名显示为“沈遥电子章”。许昭调出印章校验后台,证书创建时间是两周前,比沈遥本人数字钥匙的作废日期晚五天。
“这个章是后做的。”她放大证书指纹,“用的签名证书在沈遥的权限列表里不存在。”
周启明点开法医协作报告前,先看了她一眼:“你要有心理准备。”
屏幕上是一份扫描件,左上角标着“委托鉴定·外部复核”。许昭看见“焦尸”两个字时,呼吸慢了一拍。报告里列着一串数值:线粒体DNA分型、牙科X光比对、骨性特征拼合结果。
最后一栏写着:死者与沈遥留存样本完全一致,身份确认。
“沈遥死了。”许昭盯着那行字,声音轻下来,“死在火灾发生的那一小时。那刚才在发布会跟我们谈判的人是谁?”
周启明没有回答,而是点开第四个加密目录。文件夹名称是“沈遥最后一次备份/录音”,解锁后弹出一段二进制的音轨文件。他戴上耳机,另一只递给许昭。
音轨里先是一阵椅脚摩擦声,随后是沈遥的声音,下压得平稳,像在交代遗言:“如果哪天我出意外,不要从公司对外公布的系统找答案。我的权限在三天前就开始不受我控制了。有人在用我的身份调取十七层的消防设备的密钥。那个人不是外人。”
录音末尾,沈遥说了一句话,被门外的呼叫打断,没能说完。
周启明关闭音频,调出第二条语音分析:发布会直播里“沈莉”的声音与沈遥原声比对,相似度只有百分之四十二。他又调出指纹核验界面——许昭刚才让沈莉签调解意向书时,那支笔上留有两枚新鲜指纹。系统将指纹与沈遥存底比对,不匹配;接着调出海外司法协作档案中的一份指纹留档,编号对应“沈岚”。
比对结果:完全一致。
许昭看到“沈岚”两个字时,周启明才开口:“出生登记副本里,沈遥和沈岚是一对双胞胎。妹妹沈岚出生后送养海外,两年前整容手术,以‘沈莉’名义申请了新的护照。”
门外传来脚步声。
许昭没有回头,将屏幕切换回指纹比对界面。门被人从外面推开,沈莉站在门口,手里已经没了氧气管,额前覆着一层薄汗。
她看见屏幕上的“沈岚”和指纹比对结果,脚步停在门槛内一步,随即伸手按向显示器电源键。许昭在她按下之前,把画面切到侧墙投影。
“沈岚。”许昭转过身,“指纹已经比完了。签调解意向书那支笔上,留着你右拇指和食指的指纹,和沈遥存底不匹配,但和你两年前在海外入境的指纹留档完全一致。”
沈莉的手停在空气里,指尖慢慢收回。她看着侧墙上的比对结果,嘴角动了一下,像在组织下一句话的措辞。
“就算我不是沈遥,又能证明什么?我是沈莉的员工档案入了公司系统的,我有董事会授权、有海外调职记录。”
“沈莉这个人的户籍编号是伪造的。”许昭把海外司法协作文件投上侧墙,“出生登记里没有沈莉。只有沈遥和沈岚。你的照片、指纹、生物识别码,全部从沈岚的医疗档案映射出来。”
沈莉的呼吸明显放缓。她往门框上靠了一下,目光扫过桌上的药房购药单与维修记录,最后落回许昭脸上。
“这些文件,”她开口时声音柔下来,“你以为就凭一份扫描件就能在法庭上成立?警方的正式结论还没出来,媒体看到的是发布会剪辑,不是你的硬盘。”
“正式结论会出来。”许昭说,“我已经签过调解意向书,不代表这起火灾跟和解有关。你锁死逃生通道、用药迷倒沈遥、再点燃档案室——这条链,每一步都有单据。”
沈莉嘴角露出一点弧度:“那你的链上,有没有我本人在场的照片?”
周启明声音低沉:“法医报告显示死者是沈遥。那我请问这位沈总,你的姐姐死了,你为什么还有沈遥的电子章和门禁密钥?”
沈莉没回答。她退后半步,抬起右手腕看了看表,然后轻轻按了一下表侧按钮。
安保室的门锁发出咔哒声,一道金属门闩从门框内滑出,卡死,门体封住。周启明站了起来,沈莉却没退出去,反而往前走进房间,看着许昭:“这个房间接下来六个小时没有监控记录,没有门禁信号。”
许昭把硬盘从终端上拔出,握在手里,向后退了一步,直到后背碰到柜体边缘。沈莉站在灯光下,看着她的动作:“你当真以为,我把你交给警方的材料只看了一面?许昭,你的旧平板在发布会播放时留过离线日志。那台设备的蓝牙标识,也在我手里。”
周启明的手按在桌角的紧急电话上。他抬起听筒,拨号盘转动的声音在封闭房间里格外清晰。沈莉的目光转向那部老式电话,脸上的笑容停了。
电话接通,周启明嗓音平稳:“这里是曜石科技十七层安保室,我申请接入警方物证受理线,案件编号——”他看了一眼硬盘封贴上的编号,一字一字念完,“请校验线材来源与录音完整性。”
那端传来机械回复:“受理码已生成,记录保留至结案。”
沈莉站在原地,像是没料到他会知道那部备用电话。她嘴角最后一点弧度也收了起来,向门口退了一步,声音平静:“周启明,你会为这个电话后悔。”
“我早就在后悔,后悔没在你进公司的第一天把门禁权限收回。”周启明仍拎着听筒,“你最好现在就走。六小时后,这个房间恢复联网,我会把整套原始数据直接推到警方加密端口。”
沈莉没有再答。她抬手敲了两下门,门锁从外面被人解开,门开了一条缝。她侧身跨出去,在门缝关到一半时回头看许昭,声音很轻:“许昭。沈遥留给你的声音,你只听了一半。”
门合拢。门闩重新落锁,室内彻底安静下来。
许昭站定,低头看手里的硬盘,又看向侧墙上尚未关闭的投影画面。指纹比对结果、法医报告、药房购药单、逃生通道维修记录仍一列列排在那里。底栏的原始音轨时间轴闪动,停在沈遥录音被门声打断的那一秒。
她伸手点了一下播放键,音轨继续走了一秒。沈遥的声音断在“那个人不是外人”之后,门外有人喊了一声:“沈总——”
录音在这里终止。
许昭看向周启明:“后半段录音在哪个设备里?”
周启明没有立刻回答,而是绕过桌角,从柜子底层拖出一台没有接入主网的巡检终端,屏幕在他指尖亮起。设备名称一栏写着:十七层A区消防仓。
## 结局
周启明按下播放键,安保室的扬声器里,门外的“沈总”之后,静默了半秒,沈遥的声音又响起来。
“岚岚,我知道你在听。你想拿走公司,不用烧十七层。那张药方不是你开的,是有人替你开的。如果你还认我这个姐姐,现在关掉火警,我会当这一切没发生。”
音频在第三句的地方断掉。许昭看了一眼设备上的录制时间:沈遥死亡前四十分钟。
周启明把设备拔出来:“这段我做过声纹比对,是沈遥本人。”
“能不能在外部设备上验证?”
“可以。警方物证端口已经开放,案号是刚才那通电话生成的那条。”
许昭把硬盘和巡检终端一起放入封存箱,在封条上签了自己的名字。窗外,警车灯已经停在大厦前庭。
三天后,公司内部听证会在小会议厅召开。没有直播,没有记者,长桌两侧坐着董事会成员、法务代表、两名外部鉴定人员和警方办案民警。沈莉坐在远端,没有戴氧气面罩,烧伤结痂的脸颊在冷光灯下泛白,手腕上扣着电子束缚环。
董事长助理先请周启明确认物证链。周启明打开封存箱,逐一递交门禁底层日志、药房购药单、逃生通道维修工单和法医鉴定报告。每一个文件,他都念出时间戳和校验值,外部鉴定人员核对后逐项签章。沈莉的律师几次试图打断,许昭只将同一页原始数据推到他面前,没有说话。
随后,许昭调出完整警报录音。技术组把设备接入功放,会议厅里响起未经剪辑的继电器声响,比发布会版本多出十七分钟。那段声轨里,火势蔓延的底噪在远端翻涌,三次锁扣解开的提示音清晰得如同就在桌前。最后一次提示音之后,有人拖着重物穿过走廊,金属边角刮过地面的声音连续拉了近二十秒。
许昭说:“这是原始警报包。前四秒是外门解锁,第七秒是内门权限确认,第十二秒是一把不属于许昭的终端钥匙。拖地声是燃料罐在地面上移动的距离。发布会版本从十九点零七分才开始,这段原始录音开始于十八点四十八分三十六秒。”
沈莉的律师要求鉴定音频是否合成,外部鉴定人员现场用哈希交叉比对,确认文件未被修改。
许昭接着把门禁日志中沈遥权限在火灾当晚二十一点到二十三点被反复调用的几行标红,又将药房购药单的指纹复核界面放大——单子上沈遥签名旁,是沈岚的指纹留档。
“沈遥已经死在火灾里,她的账号当天夜里还能刷卡进出消防设备间?”许昭问。
沈莉没有回答。她低头看着电子束缚环,哑声说:“我没杀她。”
许昭调出法医报告扫描件,将最后的身份结论推上屏幕:“死者就是沈遥本人。发布会台上那位‘死里逃生’的沈莉,真实身份是沈岚。沈莉这个户籍编号是伪造的。出生登记里只有沈遥和沈岚。”
会议厅安静了两秒。
沈莉抬起头,声音微微发颤:“沈遥是我姐。我改监控、换门锁、签购药单,是想让她离开那个计划。但火不是我放的。那场火对我来说也是意外。你们不能因为一个假的身份证号,就把火案扣在我头上。”
许昭没有接话,而是点开最后一个文件,巡检终端里的完整会议录音被投到侧墙。时间轴拖到沈遥语音停顿处,音箱里传来她轻声说的一句:
“岚岚,如果你非要作证证明自己不是凶手,答案不在我这里。”
沈莉的肩膀忽然塌下去,缚环磕在桌面,发出一声短促的响。她张了张嘴,没有再发出声音。
董事长助理启动了代理权收回程序。沈莉桌面上的印鉴和电子通行证被逐一取走。警方办案人员起身,将她带离座位。她走到门口时回头,声音干涩:“那场火是意外。你们抓我抓错了。”
没有人回答她。
门在走廊里合拢,脚步声穿过地毯,渐渐消失。
董事会随后宣布:星核计划主导权交还许昭,恢复原职务与全部权限。原项目组工程师从走廊进来,没有多余的话,依次与许昭握手。为首的工程师递过一枚新的权限卡,编号是原来的那组。
“许工,欢迎回来。”
许昭接过权限卡,把工牌重新挂回胸前。
周启明没有立刻离开,站在走廊尽头等她。许昭走过去时,他低声道:“那台终端里的录音,是沈遥自己在火灾前四十分钟上传的。她提前留了证据,为什么没有把最后一句话说完?那句‘答案不在我这里’,到底是在对谁说?”
许昭没有接话。周启明也没有等答案,转身走向楼梯间。
傍晚,许昭回到修复中心的工位。电脑屏幕右下角弹出一封未读邮件。发送地址一栏没有寄件人名称,只有一串无法解析的乱码。时间戳标注为沈遥死亡当天凌晨两点。邮件正文只有一行字:
“岚岚只是替真正的沈遥拿回公司。烧掉十七层的从来不是她。”
许昭将光标移到原始路由信息上,服务器IP位于海外,转发链在三个匿名节点之后消失。她没有再点开任何链接,将这封邮件连同原始数据一起存入加密盘,收进抽屉最底层。窗外,城市灯带在夜幕中亮起来,像一段没有剪干净的波形,未知的起点埋在某段空白里。
她关掉电脑,把权限卡放进上衣口袋,起身走进走廊。电梯门合拢时,手机屏幕自动亮起,那封旧邮件的缩略图还停在未读列表顶部,发信日期泛黄,像被寄出很久很久了。