第16章

更新时间:2026-01-09 05:29:44

老狗给的U盘很轻,握在林陌手里却沉甸甸的。那台被指定的旧电脑启动时发出拖拉机般的嗡鸣,慢得让人心焦。灰色的Windows桌面,除了回收站和“我的电脑”,只有一个命名为“Log_Temp”的共享文件夹快捷方式。双击打开,里面按日期排列着子文件夹,从大约四十天前开始,每天一个。

林陌点开最近一天的文件夹。里面是几十个文本文件,文件名是一串数字,估计是时间戳或批次号。每个文件大小从几十KB到几MB不等。他打开其中一个,里面是密密麻麻的行记录:

[2023-11-05 14:23:17] Call_ID: 8834721, Dst: 138****5678, Result: NO_ANSWER, Duration: 0, ErrCode: 408

[2023-11-05 14:23:19] Call_ID: 8834722, Dst: 159****2341, Result: REJECTED, Duration: 2, ErrCode: 603

[2023-11-05 14:23:22] Call_ID: 8834723, Dst: 187****8901, Result: BUSY, Duration: 0, ErrCode: 486

[2023-11-05 14:23:25] Call_ID: 8834724, Dst: 152****3456, Result: FAILED, Duration: 1, ErrCode: 503

格式很原始,但字段清晰:时间、呼叫ID、目标号码(中间四位被星号隐藏)、结果、通话时长(秒)、错误代码。林陌快速扫视,结果大多是NO_ANSWER(无应答)、REJECTED(拒接)、BUSY(忙)、FAILED(呼叫失败),少数有短暂接通后挂断的(Duration有几秒到十几秒)。

他开始尝试整理。老狗只说要分类统计,图表直观。林陌决定先用最基础的Excel(那台旧电脑上居然有Office 2007)来处理。他将文本数据导入,然后按“结果”字段进行初步分类计数。

第一天,他花了大量时间在熟悉数据格式和摸索笨拙的Excel操作上。当一张简陋的柱状图显示在屏幕上时,他发现自己只是把老狗一眼就能看出的东西(各种失败类型的数量对比)图形化了而已。这远远不够。

老狗偶尔会踱步过来,站在他身后看一会儿屏幕,不说话,然后走开。那种沉默的注视比言语更让人紧张。林陌知道,他必须拿出点有“洞察力”的东西。

晚上,他躺在床上,脑子里不再是具体的诈骗话术或张浩溃烂的手,而是那些滚动的错误代码。408(请求超时)、603(拒绝)、486(对方正忙)、503(服务不可用)……这些冰冷的数字背后,是一个个真实的、按下拒接键或根本未接听的人。但此刻,他必须暂时剥离这层道德联想,只把它们看作需要分析的“信号”。

第二天,他开始尝试加入时间维度。将一天按小时划分,统计每个时间段内不同失败结果的比例。很快,一个粗略的模式浮现出来:上午9点到11点,下午3点到5点,REJECTED(拒接)的比例明显高于其他时段,而NO_ANSWER(无应答)则在午休时间(12-14点)和深夜(22点后)达到峰值。BUSY(忙线)在早晚高峰时段略多。

这似乎印证了他之前的猜测:忙时,人们警惕性高或忙于事务,直接拒接多;闲时或深夜,可能手机不在身边或静音,无应答多。

他把这个发现做成了一个带时间趋势线的图表。

老狗再次来看时,盯着图表看了半晌,哼了一声:“有点意思。继续。看看不同号段有没有区别。”

林陌得到了一丝微弱的认可,但压力更大。号段分析需要处理的数据量更大,而且号码中间四位被隐藏,只能通过前三位(运营商)和大致归属地(根据号段数据库,这台电脑当然没有)来粗略判断。他只能根据自己有限的常识和记忆中一些大的号段范围(比如188可能是联通4G号段,199可能是电信)进行极其粗糙的标记。

这项工作进展缓慢,且结论模糊。但在这个过程中,林陌被迫更加仔细地阅读每一条记录。某天下午,当他翻阅大约两周前的一份日志时,一组异常记录引起了他的注意。

连续十几条呼叫,目标号码的前三位都是“171”(这是一个常见的虚拟运营商号段),结果全部是“FAILED”,错误代码是“503”(服务不可用),而且呼叫间隔极短,几乎每秒一次,像是有程序在自动重试。这种现象在其他号段偶尔也有,但如此集中、连续地出现在同一个号段(171)的多个不同号码上,不太寻常。

他记下了这个日期和时间范围。继续翻看,在之后几天的相同时段(下午两点左右),类似的现象又零星出现过几次,但规模小一些。

这不像普通的拒接或未接。更像是呼叫根本没有到达对方手机,或者在接入层就被某种机制拦截了。是针对特定号段的屏蔽?还是那个时间段,园区使用的某条呼叫线路出了问题?

林陌没有贸然将这个发现加入报告。他先将其记录在自己的笔记本上(用只有自己能懂的缩写和符号),然后继续按部就班地制作号段与失败类型的分布饼图。

几天后,初步分析报告完成。林陌用尽量简洁的语言总结了几个趋势:忙时拒接率高,闲时无应答多;某些虚拟运营商号段(如170/171)的整体失败率(尤其是FAILED)略高于传统运营商号段;周末的呼叫成功率比工作日稍低等。附上了几张颜色刺眼但清晰的图表。

老狗坐在电脑前,慢慢翻看这份电子报告,烟雾在他面前缭绕。看了足有十分钟,他才开口:“就这些?”

“暂时……只分析了失败类型、时间规律和粗略的号段分布。”林陌谨慎回答,“如果需要,还可以分析错误代码的关联性,或者不同结果的平均通话时长分布……”

“嗯。”老狗打断他,把烟头按灭在一个锈迹斑斑的铁罐里,“图表做得还行,结论……马马虎虎,都是些表面东西。”他话锋一转,“不过,能把这些乱七八糟的数据理出个头绪,也算你没白吃技术组的饭。”

林陌垂下目光。

“从明天开始,”老狗说,“你每天下午抽两小时,继续做这个分析。不用每天给我看,每周汇总一次新发现。重点给我盯两个事:第一,失败率有没有突然异常升高,尤其是大面积、持续的FAILED。第二,注意有没有那种……规律性的、像刷子一样扫过去的呼叫失败模式,就像……”他顿了顿,似乎在找措辞,“就像有人拿着探测仪在试我们的门锁。”

林陌心里一震。老狗的描述,和他发现的“171号段连续FAILED”现象何其相似!老狗果然经验老到,他早就注意到了某种异常模式,让自己分析日志,恐怕一部分原因就是想验证或更细致地捕捉这种模式。

“我明白了。”林陌点头。

“还有,”老狗补充道,“你那点小心思收起来。这台电脑,这个文件夹,都有记录。你每天打开哪些文件,看了多久,我这儿都有数。”他敲了敲自己电脑屏幕上另一个不起眼的监控窗口,“老老实实分析数据,别动别的念头。技术组能给你口相对安稳的饭吃,也能让你比一线那些人消失得更干净。”

警告赤裸而冰冷。林陌后背发凉,连忙道:“我不敢,狗哥。我就是想做好您交代的事。”

“最好是这样。”老狗挥挥手,“去吧。耳机还得接着修,别耽误正事。”

回到自己的角落,林陌看着那台旧电脑,感觉它仿佛长出了无数双看不见的眼睛。原来自己的一切操作都在监控之下。老狗给他接触数据的机会,同时也套上了更精确的枷锁。

但这也意味着,老狗(或者说他背后的人)确实关心这些数据中隐藏的“异常”。这种异常,可能来自外部的威胁(如反诈探测),也可能来自内部的问题(如线路故障、甚至……内鬼?)。

林陌坐下,拿起一个待修的耳机。焊枪的温热传来。

分析数据,寻找异常。

这工作就像在雷区边缘排雷。他必须找出地雷的位置和规律,向握有地图的人报告,自己却不能踩响任何一颗,更不能流露出对地图本身的好奇。

而他私下记录的那个“171号段异常”,像一颗小小的、不知用途的石头,被他悄悄藏进了口袋深处。

他不知道这块石头有没有用,会不会硌着自己的脚。

但他知道,在这个数据构成的黑暗森林里,多留意一点异常的声音,或许就多一分在野兽靠近时察觉的机会。

哪怕这机会,渺茫得如同焊枪尖上那一点即将熄灭的火星。