Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/www/wwwroot/jieqi/global.php on line 250
重生2004,我和明星谈恋爱- 第520章 深镜v10的追踪模块-都市言情-17模板网
第520章 深镜v10的追踪模块
    陆晨曦把旧硬盘从纸箱里拖出来的时候,代码正蹲在操作台边缘舔爪子。

    硬盘的接口处有一层暗绿色的锈,像是被水汽泡过又晾干的痕迹。外壳上贴着一张褪色的标签,标签纸的边缘卷起来一小片,露出底下金属表面的划痕。标签上的字是用铅笔写的,字迹很细,横画收笔处有一个向左回钩的小动作,和沈知远登记表上的签名一模一样,写的是“v1.0”。

    她把硬盘接上读取器的时候,代码从操作台边缘跳下来,前爪踩在键盘上,踩出一串乱码。陆晨曦把猫从键盘上拨开,指尖在猫的耳根后面挠了一下,代码的耳朵抖了抖,喉咙里发出一声极短的呼噜,然后跳回纸箱里蜷成一团。纸箱旁边放着一盒冻干鸡肉,是赵晓月上次来技术部送饺子时顺便带的,盒盖上贴着一张便签——“给代码的,不许偷吃。”便签右下角画了一个歪扭的笑脸,笑脸的嘴角一高一低。

    硬盘读取花了四十分钟。陆晨曦趁这个时间去食堂打了一份馄饨,回来的时候汤已经凉了,馄饨皮泡得发软,她用勺子舀了一个放进嘴里,嚼了两下就咽了,然后继续盯着屏幕。屏幕上跳出一行绿色的提示——“数据恢复完成。可读扇区:百分之七十一。”她放下勺子,手指搭在键盘上,开始逐层解析目录结构。

    v1.0的代码结构和v2.3完全不同。v2.3的目录是扁平的,所有功能模块并列排在同一层级,像是一排被掰开的筷子。v1.0的目录是树状的,功能模块之间有清晰的调用关系,像是用线把筷子一根一根串起来。陆晨曦把v1.0的目录树展开,在“核心模块”下面看到一个叫“trace”的子文件夹,文件夹里只有一个脚本文件,大小不到两兆。她点开脚本文件,屏幕上跳出一段用注释包起来的说明——“追踪模块。记录每一次人脸数据调用的操作者Id、时间戳、输出文件哈希值。启用条件:管理员权限。”

    她把脚本从头到尾读了一遍,读到第三段的时候手指停了一下。脚本里有一段被注释掉的代码,注释符号是双斜杠,后面的文字写着——“//v2.3移除。操作者Id不保留。原因:客户要求。”她盯着那行注释看了几秒,然后把脚本文件复制到加密分区,回到v2.3的日志目录里,随便打开了一份近期的操作日志。日志文件里只有三列数据——时间戳、输入人脸类型、输出文件哈希值。操作者Id那一列是空的。

    “周远洋手里的v2.3没有操作者Id。”陆晨曦自言自语,手指在键盘上敲了一串命令,把v1.0的追踪模块和v2.3的日志文件做交叉比对。脚本跑了两分钟,屏幕上弹出一张表格。表格的左边是v2.3的时间戳和哈希值,右边是v1.0恢复出来的操作者Id。两列数据按时间戳对齐,每一行都严丝合缝地匹配上了。

    第一行:时间戳2024年9月12日,凌晨1点17分。哈希值匹配——叶诗涵《盛装》发布会截图。操作者Id:孙建明。

    第二行:时间戳2024年11月7日,凌晨2点03分。哈希值匹配——刘仙仙纽约林肯中心演唱会抓拍。操作者Id:孙建明。

    第三行:时间戳2024年12月3日,凌晨4点21分。哈希值匹配——赵晓月《底片》首映礼红毯截图。操作者Id:孙建明。

    表格往下拉,孙建明的名字后面跟着刘洋、赵远、陈默。四个人的操作记录按时间顺序排列,从去年九月到今年一月,一共四十七行。每一行都对应着一次人脸数据的调用,每一次调用都记录着操作者的Id。周远洋手里的v2.3日志只有时间戳和哈希值,他以为没有操作者Id就等于没有人能追踪到具体的操作人。但他不知道v1.0的追踪模块里留着完整的操作者Id,沈知远离职时没有格式化硬盘,把v1.0的代码留在了杂物箱里。

    陆晨曦把表格导出成加密文件,然后拿起手机给我发了一条消息。消息分了两段,第一段是追踪模块的发现——“v1.0有独立的追踪模块,记录操作者Id。v2.3删除了操作者Id,但时间戳和哈希值保留。两者交叉比对后,确认孙建明、刘洋、赵远、陈默四人的操作记录全部在案。”第二段是具体数据——“孙建明三次,刘洋十七次,赵远十一次,陈默十六次。合计四十七次。时间跨度去年九月到今年一月。全部匹配。”

    我是在办公室看到这条消息的。当时我正在看苏小暖送来的蜀山幻境服务器日志,屏幕上滚动的Ip记录在台灯的光圈里泛着冷白色的光。我把陆晨曦的消息读了两遍,然后把手机放在桌面上,打开加密文件夹里的时间线图。四条路径从四个城市出发,终点都指向周远洋。现在陆晨曦的追踪模块在每一条路径上都加了标记——孙建明的标记在杭州,刘洋的在成都,赵远的在上海,陈默的在直播平台。四个标记在时间线图上排成一个不规则的四边形,四边形的中心是周远洋的名字。

    我给陆晨曦回了一条消息:“把追踪模块的比对结果整理成补充证据链,附在周远洋案的卷宗里。操作者Id是关键证据——周远洋的辩护律师可以说时间戳和哈希值不能直接证明操作人的身份,但操作者Id能。v1.0的代码是沈知远留下的,追踪模块的功能是深镜科技内部版本的原始设计,不是后来加上的。周远洋删除了v2.3的操作者Id,但他删不掉v1.0的追踪模块。”

    陆晨曦的回复在五分钟后过来:“收到。另外,代码今天把硬盘从纸箱里拖出来之后,在标签上趴了一会儿。标签上的铅笔字被它的爪子蹭掉了一小片,但‘v1.0’三个字还看得清。我把硬盘收起来了,放在操作台下面的抽屉里。下次要用的时候再拿出来。”

    我打字:“给代码买条鱼。”

    陆晨曦:“它不吃鱼。它只抓老鼠。今天早上又抓了一只,放在我键盘上。我把老鼠放了,它蹲在键盘上看着我,瞳孔缩成一条线,我觉得它在嫌弃我。”

    我放下手机,靠在椅背上。窗外的银杏枝丫在路灯的光里安静地站着,光秃秃的枝条在风里轻轻晃动。桌面上那排文件的边缘在灯光下整齐划一,赵晓月昨天送来的饺子盘已经端走了,盘底的水渍在桌面上留下一个浅灰色的圆,边缘已经干透。我把水渍擦掉,用纸巾把桌面擦干净。

    赵晓月是晚上七点四十分来的。她推门进来的时候端着一盘饺子,盘子边缘冒着热气,醋碟放在盘中央,旁边多了一小碟蒜泥。她今天穿了一件浅灰色的圆领毛衣,外面套着一件深蓝色的羽绒马甲,马甲的拉链拉到胸口的位置,领口敞开,露出毛衣的领子和一截颈线。下面是修身的深蓝色牛仔裤,裤脚塞进一双浅棕色的短靴里,靴筒到脚踝上方一寸,鞋带系得很紧。头发扎成低马尾,用一根黑色的发圈缠了三圈,发尾垂在肩胛骨中间的位置。她的脸颊被外面的冷风吹得微微泛红,鼻尖也是。

    她把饺子盘放在桌面右上角,和那排文件的边缘对齐。然后她看见桌面上那张时间线图,脚步停了一下。她走到桌前,低头看时间线图。她的目光从孙建明的名字移到刘洋,再从刘洋移到赵远,最后停在陈默的名字上。她的手指在四个名字之间的连线上轻轻滑过,指尖在纸面上留下一个极浅的印记。

    “四个人的操作记录都找到了。”

    “对。v1.0的追踪模块里留着操作者Id。沈知远离职时没有格式化硬盘,把v1.0的代码留在了杂物箱里。陆晨曦在杂物箱里找到那块硬盘,恢复了追踪模块。”

    赵晓月把手指从时间线图上收回来,垂在身侧。浅灰色毛衣的袖口在她收手的动作中微微移动,露出一截小臂,皮肤在台灯的暖光里泛着温润的白,肘关节内侧有一小块颜色略深的茧。她走到窗前,看了一眼院子里的银杏树。枝头光秃秃的,一片叶子都没有。路灯的橘黄色光落在树根旁边的泥土上,她种的那棵嫩芽在夜风里安静地站着,叶片上的锯齿纹路被灯光照出清晰的边缘。她转过身来,靠着窗台站着。窗台的高度刚好到她胯骨的位置,水泥边缘压着牛仔裤的腰线,在布料上留下一道浅浅的横纹。

    “他在深夜调模型的时候,操作者Id被记录下来了。他不知道。”

    “他不知道的东西还有很多。”

    她低头看了一眼自己的手指。手指交叉着放在身前,指节微微泛白,然后松开。她走回办公桌旁边,低头看着时间线图上那四个名字,手指在牛仔裤的裤缝上轻轻蹭了一下,蹭掉了指腹上残留的一点干面粉。

    “孙建明在杭州,刘洋在成都,赵远在上海,陈默在直播平台。四个人在不同的城市,用同一套模型,同一个参数,做同一件事。周远洋在中间,把四个人的工作连起来。他删掉了v2.3的操作者Id,以为没有人能追踪到具体的操作人。但他不知道沈知远在深镜科技用的那台电脑里,v1.0的追踪模块还在。”

    她抬起头,目光和我对上。她的瞳孔在台灯的暖光里泛着深褐色的光,虹膜边缘有一圈极浅的琥珀色。

    “沈知远离职的时候没有格式化硬盘。他把硬盘留在了技术部的杂物箱里。他可能不知道那块硬盘里还有v1.0的代码,也可能知道但懒得删。不管哪种,他留下的那块硬盘,把周远洋的最后一道防线拆掉了。”

    她说完之后没有停留,转身走到门口。她的手放在门把上,侧过头。侧头的动作让马尾辫从肩后滑到肩前,发尾扫过羽绒马甲的前襟,几缕碎发贴在耳后的皮肤上,被走廊的光照出一层极淡的绒光。

    “叶诗涵第十二批碎片出窑了。你明天去窑房的时候,帮我把这个带过去。”她从羽绒马甲的口袋里拿出一只小小的白瓷杯,杯壁上刻着一片银杏叶的轮廓,叶片边缘有一道极细的裂纹,裂纹里填着金粉。“上次她给我的那只杯子,我一直放在办公室。这只新的,是给她的。”

    她把杯子放在办公桌边缘,和那排文件的边缘对齐。然后推开门走了。脚步声沿着走廊往电梯方向去,鞋跟敲在地砖上的声音“嗒、嗒、嗒”三拍,第四拍还是拖长了一点。

    我坐在椅子里,把那只白瓷杯拿起来。杯壁很薄,对着灯光看的时候能隐约看到胎体的纹路。银杏叶的轮廓刻得很细,叶脉的线条从叶柄延伸到叶缘,每一根都清晰可辨。裂纹从叶片的右下角延伸到叶柄的位置,金粉填在里面,在灯光下泛着温润的暗金色。我把杯子放回桌面,和那排文件的边缘对齐。然后拿起手机给陆晨曦发了一条消息:“追踪模块的比对结果,明天早上发给杭州警方。另外,沈知远的旧硬盘暂时不要还给他。那块硬盘是证据。”

    陆晨曦的回复在三分钟后过来:“收到。另外,代码刚才把旧硬盘从抽屉里又拖出来了。它把硬盘拖到纸箱里,蹲在上面,尾巴搭在标签上。我觉得它在说这块硬盘是它的。”

    我打字:“那就让它蹲着。”

    陆晨曦回复了一个猫爪表情,然后是一行字:“它蹲着的时候,标签上的‘v1.0’刚好露出来,被屏幕光照得很清楚。”

    我把手机放在桌面上,端起桌面上的白瓷杯,喝了一口水。杯子是赵晓月刚才送来的,杯壁上还残留着一点她手指的温度。窗外的银杏枝丫在风里轻轻晃动,光秃秃的枝条在路灯的光里投下细密的影子。我翻开《星途影城二期预算表》,继续处理下一行数字。

    福利回放:赵晓月(傍晚送饺子)

    她站在办公桌前的时候,浅灰色圆领毛衣的料子很薄,贴着身体的曲线,从肩到腰的轮廓被布料温和地勾勒出来,肩头的弧度饱满而流畅。毛衣外面套着一件深蓝色的羽绒马甲,马甲的拉链拉到胸口的位置,领口敞开,露出毛衣的领子和一截颈线,颈部的线条从下颌延伸到肩头,被台灯的暖光照得干净而柔和。马甲的面料在灯光下泛着一层柔润的光,从肩到腰的剪裁收得紧实,腰线的轮廓被马甲的下摆勾勒出来,弧度柔和而清晰。深蓝色修身牛仔裤包裹下的腿部线条在站姿下微微绷紧,从腰到膝的弧度饱满而利落,膝盖以下的线条收得更窄,脚踝在浅棕色短靴的靴筒边缘露出一小段,骨节分明。短靴的鞋面是麂皮的,鞋带系得很紧,靴筒的皮面在脚踝处微微鼓起。

    她低头看时间线图的时候,低马尾从肩后滑到肩前,发尾扫过羽绒马甲的前襟,几缕碎发贴在耳后的皮肤上,被台灯的光照出一层极淡的绒光。她的手指在四个名字之间的连线上轻轻滑过,指尖在纸面上留下一个极浅的印记,指甲修剪得很短,甲床是淡淡的粉色。她靠在窗台上的时候,重心落在左脚,右脚微微外撇,马甲的下摆在腰侧垂下来,从侧面能看到腰线的弧度在布料下隐约起伏。窗台的水泥边缘压着牛仔裤的腰线,在布料上留下一道浅浅的横纹。她从口袋里拿出白瓷杯的时候,手腕从毛衣袖口里滑出来,露出一截细瘦的小臂,皮肤在台灯的暖光里泛着温润的白,肘关节内侧有一小块颜色略深的茧。她把杯子放在办公桌边缘的时候,手指在杯壁上停了一拍,指腹在银杏叶的轮廓上轻轻摩挲了一下,然后收回来,垂在身侧。她转身走的时候,羽绒马甲的后背被肩胛骨的动作撑出两道浅浅的棱线,从领口向下延伸,消失在腰线以下。马尾辫在背后轻轻晃动,发尾扫过马甲的后领边缘,留下一道转瞬即逝的静电痕迹。

    福利回放:陆晨曦(技术部硬盘读取)

    她坐在操作台前面的时候,黑色连帽卫衣的帽子堆在后颈的位置,帽兜的边缘蹭着下颌线,露出一截脖颈,皮肤在屏幕光的冷白里泛着近乎透明的白,能看到淡青色的血管走向。卫衣的袖口卷到小臂中段,露出一截细瘦的腕骨,左手腕内侧那道被键盘边缘磨出的淡红色印痕在灯光下格外清晰。双马尾今天扎得比平时松,两边的发圈缠了三圈,高低差不到半指宽,尾端翘着的那小撮头发从发圈里逃出来,贴在耳后的皮肤上。鼻梁上架着那副细黑框眼镜,镜片左上角的那道细划痕在屏幕光下像一条干涸的河道,镜框在鼻梁上留下两个浅浅的凹痕。

    她把硬盘接上读取器的时候,手指在接口上停了一拍,指甲修剪得很短,甲床是淡淡的粉色。硬盘读取的四十分钟里,她去食堂打了一份馄饨,回来的时候汤已经凉了,馄饨皮泡得发软,她用勺子舀了一个放进嘴里,嚼了两下就咽了。她把勺子放在操作台边缘,手指重新搭在键盘上,开始逐层解析目录结构。她的坐姿很直,脊背绷着,卫衣的后背被肩胛骨的动作撑出两道浅浅的棱线,从肩到腰的轮廓在布料下隐约起伏。代码蹲在纸箱里,前爪搭在箱沿上,尾巴盘在爪子上,末端的黑毛尖轻轻扫过键盘的空格键。硬盘标签上的“v1.0”三个字在屏幕光下泛着极淡的灰色,铅笔的横画收笔处有一个向左回钩的小动作,像是写的时候铅笔在纸面上多停留了一瞬。