电脑搬来了。
一台老旧的联想台式机,显示器上还贴着「市局技术科」的资产标签,开机速度慢得像是在跑马拉松。
我坐在审讯室的铁椅子上,面前的铁桌子上摆着这台电脑,旁边还放着那半串已经彻底凉透的羊腰子。
小周站在我身后,手里端着一杯水,探着头往屏幕上看。
「许哥,你要开始了吗?」
「等它先喘过气来。」
电脑终于进了桌面,我活动了一下手指,开始干活。
先把他们技术科传过来的原始数据包导入分析工具,然后打开了十六进制编辑器。
数据像瀑布一样在屏幕上刷过,一串串的十六进制代码密密麻麻的,看得小周直接退了两步。
「这东西你能看懂?」
「你看不懂?」
「我是刑侦的,不是技术科的。」
「那你就在旁边当气氛组吧。」
我沉下心来,开始一层一层地剥数据。
第一层加密,标准的AES-256,这个简单,三分钟搞定。
第二层,果然是自定义置换表,但规律很明显——置换表的生成种子藏在第一层解密后的头部签名里。这是个老手的活儿,但也不是什么新花样。五分钟。
第三层,跳板服务器的伪装。
这一层做得确实漂亮。
对方在数据包里嵌入了三个伪装目标,每个伪装目标都指向境外的服务器,分别在越南、柬埔寨和菲律宾。
一般的技术人员追到这一步就会以为到头了,然后去走国际协查的流程。
但我注意到了一个很细微的东西。
三个伪装目标的时间戳有一个共同的偏移量:0.003秒。
这不是网络延迟造成的,因为三个目标分布在三个不同的国家,网络路径完全不同,不可能产生完全一致的延迟。
唯一的解释是——这三个包在到达伪装目标之前,曾经同时经过了同一个节点。
而那个节点,就是真实服务器。
我顺着这个偏移量往回追溯,把路由跳转记录展开,一层一层地剥。
屏幕上的数据在我手下变成了一张清晰的路线图。
十六分钟的时候,真实IP出现了。
一个标准的国内IP地址,归属地:本市,高新区,某科技园区。
我把这个IP写在一张纸上,推到小周面前。
「去查查这个IP对应的是哪家公司。」
小周愣了一下,拿起纸就跑了出去。
我靠在椅背上,长出了一口气。
十六分钟,比我预计的还快了四分钟。
这时候审讯室的门被推开了,林建国和沈清禾一前一后走了进来。
林建国的脸上带着一种压抑的兴奋:「许恒,小周说你把IP追出来了?」
「追出来了。高新区科技园,具体哪家公司还得你们去查备案。但这个IP我可以百分之百确认是真实源头,不是跳板。」
我把分析过程简单讲了一遍。
林建国听完,一拍大腿:「好!好好好!」
他转身就往外走,走了两步又折回来,用力拍了拍我的肩膀。
「许恒,你帮了大忙了。这个案子卡了两个月,就卡在这一步。你今晚吃的那顿烧烤,我请了!」
「林局客气了。」
他风风火火地走了。
审讯室里又只剩下我和沈清禾。
她站在门口没动,手里抱着一个文件夹,看着我。
我对她笑了一下。
「怎么样?你老公还行吧?」
她没接话,走到桌边,把那半串凉透的羊腰子拿起来扔进了旁边的垃圾桶。
然后她在我对面坐下来,打开文件夹,拿出一张纸和一支笔推到我面前。
「签字。」
「签什么?」
「技术协助协议。你刚才做的所有操作都需要留档,这是程序。」
我拿起笔,刚要签,发现协议最后一行有一行小字。
我凑近了看。
上面写着:「本人承诺在协助期间服从办案人员一切合理安排。」
「这个'合理安排'包括什么?」
「包括你今晚不许走,继续协助。」
「啊?」
「这案子不是追到一个IP就完了的,后面还有大量的数据需要分析。你既然这么能耐,那就帮到底。」
她的语气很平静,但我从她眼神里读出了另一层意思。
你今晚偷跑出来吃烧烤,想回家?没门。留下来给我加班。
这哪是什么技术协助,这分明是惩罚。
但我看着她熬得通红的眼睛和眼眶下面那层薄薄的黑眼圈,又说不出拒绝的话。