他的声音很低。不是故意压低的那种低,是喉咙发紧、声带不由自主收缩的那种低。沈墨侧头看了他一眼——周明的脸色在听到第一句话之后就变了,血色一点一点从脸上褪去,像一张白纸被水浸透了。
本小章还未完,请点击下一页继续阅读后面精彩内容!
录音还在继续。
贺远山的声音:证人方面我来处理。你那边把卷宗里第三十七页到第四十二页的材料抽掉就行。移交的时候说是归档遗漏
赵建华:行。但这次的费用——
贺远山:老规矩。
赵建华:老规矩是多少来着?上次你涨过一回——
贺远山笑了一声。那笑声从扬声器里播出来,很短,很干,像指甲划过毛玻璃。老赵,这种事别在电话里说。明天中午翠湖吃饭,细节当面谈。
赵建华:
录音结束了。时长三分十七秒。
技术科里安静了十几秒。没有人说话。空调的嗡嗡声忽然变得很响。
这是行贿受贿的直接证据。周明最先开口。他的声音还是那种发紧的低,但比刚才稳了一点。赵建华——省公安厅副厅长——在录音里明确要求贺远山帮他处理案件,讨论了抽取卷宗材料,并且提到了。三分十七秒,每一秒都是铁证。
沈墨没有看周明。他的目光一直停留在屏幕上,停留在那三十四个文件夹的名字上。三十四个人名。每一个名字后面都是一个人的秘密,一段不能见光的交易,一份被贺远山小心收藏的。
三十四个。沈墨说。三十四个人。
每个人都有类似的东西。韩冰已经在快速浏览其他文件夹了——他随手点开了排在中间的一个,里面是两段录音、四张转账截图和一份手写的欠条扫描件。又点开一个,里面有一段视频、三张监控截图和一份银行流水的PDF。文件的大小不一,但结构都差不多——影像资料加财务凭证加通讯记录。每一份都是一套完整的、可以直接用于起诉的证据包。
他把所有跟他合作过的人的把柄都留了下来。苏念的声音从旁边传来。她没有凑到屏幕前面,而是靠在工作台的边缘,双臂交叉抱在胸前,眼睛半眯着看向天花板的某个角落。这不是保险箱——这是武器库。一座核武器库。如果这些东西被公开——
半个省的司法系统都会地震。周明接过了她的话。
韩冰的手指在键盘上停了一下。他回头看着周明。三十四个人里,我刚才粗扫了一遍——级别从科级到厅级不等。厅级的有三个。他伸出三根手指。赵建华是其中之一。另外两个,一个是省检察院的,一个是省司法厅的。名字我就不念了。
周明的喉结动了一下。
这就是贺远山的终极保险。沈墨终于把目光从屏幕上移开了。他转过身,背靠着工作台,面对着另外三个人。他的脸被窗户透进来的午后阳光照亮了一半,另一半隐在阴影里。他不怕被查——因为查他的人也在他的里。谁查他,他就把谁的把柄抖出来。相互绑定。同归于尽。所以三十年来没有人动他。不是不想——是不敢。动他等于动自己。
但现在这些东西在我们手里了。周明说这话的时候声音里多了点什么,不是底气,更像是一种破釜沉舟的决绝。
沈墨说。现在轮到我们了。
韩冰没有参与这段对话。他已经在另一台显示器上打开了备份服务器的镜像。
通讯记录的数据量不算大——整个通讯日志文件夹加起来大约50GB——但信息密度极高。贺远山那个定制的加密通讯软件记录了他在过去五年里与所有客户和合作者的每一次对话。每一条消息都有完整的元数据:时间戳,精确到秒;发送者的代号或姓名;接收者的代号或姓名;消息内容的明文。方敏华说得没错——贺远山不信任阅后即焚,他在备份服务器上开了影子日志,所有消息都会留一份副本。
韩冰敲了一个简单的脚本,几十行Python代码,功能很直白:遍历所有日志文件,按关键词筛选消息,输出结果。他输入了四个关键词:、、、。
脚本跑了大概四十秒。结果刷了满屏。
一千三百四十七条。韩冰看着屏幕右下角的统计数字。一千三百四十七条消息包含这四个关键词中的至少一个。
一千三百四十七条。五年的时间里,贺远山平均每天至少有一条消息在讨论、、或者。每一条消息背后都可能是一桩被抹平的案件、一个被消失的证人、一笔被洗白的赃款。
韩冰停了几秒钟,手指悬在键盘上方。然后他在搜索框里又敲了一个词:。
他之所以搜这个词,是因为在浏览文件目录的时候,有一个叫的文件夹引起了他的注意——所有其他联系人的文件夹要么用真名命名,要么用电话号码命名,只有这一个用的是两个大写字母的缩写。他点进去看了一眼,发现里面的消息格式跟其他人不同——没有电话号码,没有IP地址,发送者的身份标注只有两个字:。
搜索结果:二十三条消息。
韩冰点开了时间最近的一条。
发送者:贺远山。接收者:代号。时间:2026年3月15日,22:17:43。
内容:山顶,唐维年的案子可能控制不住了。那个前刑警——沈墨——比我们预想的难缠。几次清理都没有完全奏效,他手上的线索越来越多。建议启动B方案。
小主,
回复。发送者:。时间:2026年3月15日,22:31:08。
内容:B方案暂缓。先观察。如果沈墨继续深入,再启动。不要打草惊蛇。
韩冰把这条消息投到了旁边的大屏幕上。四个人同时看到了。
沈墨看着屏幕上的文字。他的名字就在那里——两个字,出现在贺远山发给某个代号的人的消息里。出现在一段关于他本人的讨论里。一段关于是否要启动B方案来对付他的讨论里。
他没问B方案是什么。他不需要问。从立案到现在,他经历过的那些事——工作室被人盯梢、线人突然失联、证据莫名消失、赵芸被跟踪——每一件事都有可能是B方案的一部分,或者是B方案之前的试探。
山顶。他说。声音很平。贺远山上面还有人。
贺远山不是最高层。苏念直起了身子,不再靠着工作台了。她的声音很轻,但每一个字都落得很清楚,像是石子投进静水,一圈一圈地荡开。他是执行者——一个非常高级的、非常能干的执行者,但归根到底还是执行者。才是决策者。你看这条消息的措辞——B方案暂缓先观察不要打草惊蛇——这是指令,不是建议。有最终拍板权。
山顶是谁?周明问。
韩冰已经在通讯记录里拉出了所有与相关的消息。二十三条,时间跨度从2021年6月到2026年3月,五年。他把二十三条消息按时间顺序排列在屏幕上,一条一条地往下看。消息的内容都很简短,最长的不超过五十个字,用的是隐晦的、模糊的、但对双方来说显然意义明确的语言。那边的事处理一下。人选确认了,可以安排。下周的会先推一推,风头过了再说。
我需要时间。韩冰说。他的手指在桌面上无意识地敲着,嗒嗒嗒,像一台微型打字机。山顶的身份没有任何直接标注——没有手机号,没有IP,没有地理标签。贺远山的加密通讯软件做得很到位,匿名化处理非常彻底。但消息的内容本身是线索——用词习惯、句式结构、讨论的话题、提到的时间和地点。我可以做语言分析,跟公开数据库里的文本做比对——政府公报、会议纪要、公开讲话。
多久?沈墨问。
韩冰在心里算了一下。二十三条消息,文本量不大,跑模型本身用不了多久。但比对公开数据库、交叉验证、排除假阳性——这些步骤吃时间。
给我二十四小时。
周明看了一眼手表。下午两点四十分。他在心里做了一道简单的算术:贺远山的高铁中午十二点半到站,现在已经过去了两个多小时。贺远山到省城之后一定做了两件事——第一,去翠湖山庄,发现别墅已经被搜过了;第二,去恒泰办公室,发现备份服务器的房间也被搜过了。他现在应该已经知道了一切。
二十四小时。周明重复了一遍这个数字。他的声音里有一种掂量的意味,像是在衡量一块砝码够不够重。在这二十四小时里,贺远山会做什么?
他会启动最后的防线。苏念说。她走到窗户旁边,背对着其他三个人,看着窗外灰蓝色的天空。四月的省城,天总是这种颜色——不算阴,也谈不上晴,太阳藏在一层薄薄的云后面,把光线过滤得不冷不热。他会动用里的人——那三十四个被他握着把柄的官员。他会让他们从各个方向施压:申请证据排除,申请程序审查,申请搜查令无效。他会用所有合法的手段拖延时间,拖到他把该销毁的东西销毁完、该串供的人串供完。他是律师,他最擅长的就是在法律框架里钻空子。
但他不知道我们已经有了他的。沈墨说。他走到苏念旁边,也看向窗外。技术科在三楼,窗外能看到省公安厅大院里的停车场,几棵梧桐树刚刚长出新叶,绿得发亮。他不知道那三十四个文件夹已经在我们手里了。他以为我们只拿到了普通的客户档案和财务数据——他以为隐藏分区是安全的。
隐藏分区。韩冰接了一句。他以为TrueCrypt的隐藏卷技术不会被发现。他以为就算被发现了,密码也破解不了。他错了两次。
沈墨转过身来。这是我们的优势。他不知道我们知道多少。而我们——知道他的一切。