第一章 午夜推送
诡异降临那晚,我在基站机房加班。
晚上十一点五十分,全市话务量曲线平稳得像心电图。我盯着压力测试仪表盘,手里端着第三杯美式,等十二点整的定时任务跑完就下班。机房里冷气开得足,风扇嗡嗡响,隔壁机柜的运维老张已经靠着椅子打呼噜了。
十二点整,仪表盘上信令流量曲线像被人掐住脖子——瞬间冲顶,持续三秒,然后回落。
我放下咖啡杯。正常。太正常了,正常得不对劲:这个时间点全市两万三千台手机同时亮屏,信令峰值应该持续至少十秒,因为用户会点开看、会回复、会锁屏再解锁。三秒就回落,说明推送内容极短,短到所有人来不及点开,手机就自动锁屏了。
我调出抓包记录。推送协议走的是标准运营商通道,发送方号码“10690000”,内容一行字:
“你已进入副本,请遵守规则。规则第一条:午夜后不要看猫眼。”
我手机也收到了,同一时间,同一内容。锁屏界面弹出来的时候我正盯着仪表盘,余光扫到那行字,第一反应是运营商又搞什么营销活动。第二反应——这个时间点、这个推送量级、这个发送号码格式,不对。
运营商营销推送的发送号码一般是106开头的十三位,这个“10690000”只有八位,是SP服务商的短号码。SP服务商发推送需要走集团客户绿色通道,审批权在省级公司。谁批的?
我切到工作后台查发送方资质——“副本管理局”,注册地境外,接入时间三天前,走的是省级公司集团客户绿色通道,审批人签章栏写着一个我不认识的名字。我顺手查了审批人的工号,系统显示“已离职”,离职时间一个月前。一个离职员工批的绿色通道,接入方是境外注册的SP,推送内容是什么“副本规则”。
隔壁老张被仪表盘报警吵醒了,揉着眼睛凑过来:“程工,咋了?流量打满了?”
“有人用运营商通道发推送,全市覆盖。”我把屏幕转给他看,“你手机收到没?”
老张掏手机看了一眼:“收到了,‘不要看猫眼’?啥玩意儿,诈骗短信吧。”
“诈骗短信不会走绿色通道。”我调出信令详单,“绿色通道的推送优先级最高,绕过手机拦截规则,直接弹系统通知。而且你看这个——”我指着详单里一行参数,“推送目标筛选条件写的是‘全市在网用户’,没有年龄、没有地域、没有套餐限制。两万三千台,一台不落。”
老张脸色变了:“这得省公司一把手签字才能批。”
“批的人上个月离职了。”
我让老张盯着仪表盘,自己跑了一趟运营商省公司的机房。值班的是我师兄周楷,管核心网信令的。我把抓包记录拍他桌上,他看完沉默了两分钟,调出绿色通道审批流水——审批单是电子签章,签章人“刘建业”,工号已注销,注销日期是上个月十五号。但电子签章系统的操作日志显示,这个签章在三天前被调用过一次,调用IP来自省公司外部,VPN拨号接入,账号是刘建业离职前没上交的测试账号。
“有人用离职员工的VPN账号远程登录,辟了绿色通道。”周楷搓了把脸,“程砚,这事我得往上汇报——”
“先别汇报。”我把日志导了一份到自己硬盘,“你汇报了,对方马上关通道删日志。给我两天时间,我先把推送链路从头到尾捋一遍。两天后我拿完整证据来找你,你直接报省公司纪委和网安。”
周楷犹豫了半分钟,点了头。
我回小区已经凌晨两点。业主群炸了,三百多条未读消息。有人拍猫眼照片问“这啥意思”,有人把猫眼糊上胶带,有人说“是不是运营商系统被黑了”,还有人发语音哭着说“我看了猫眼,会不会死”。我往上翻,翻到一条业委会主任贺明远发的消息:“各位邻居别慌,我已经联系了运营商朋友,说是系统故障,明天会修复。大家今晚先别出门,把猫眼遮上,等明天我统一解释。”
贺明远。我们小区业委会主任,半年前上任,第一件事就是把原来那家运营商踢了,换了一家叫“安联网络”的小公司,说“资费便宜一半,服务更好”。换宽带那天他挨家挨户送路由器,说“统一采购质量有保障,大家别自己乱买”。我当时觉得这人挺热心,现在回想——全市两万三千台手机同时收到推送,我们小区一千多户,用的全是安联网络的路由器。
我上楼时经过老陈家门口,听见里面有人在说话。老陈的声音,一字一句地念:“规则第二条,天亮前不要开窗。规则第三条,听到敲门声要问是谁,不回答的不能开。”他老婆在旁边哭:“老陈你别念了,大半夜的吓死人了!”老陈不理,继续念:“规则第四条,集合要排队。规则第五条——”
我敲了敲门。老陈老婆开门,眼睛哭得通红:“程砚你快看看他,从十二点开始就这样,叫不应,推不动,就坐沙发上念。”
老陈坐在客厅正中间,手机搁在茶几上,屏幕亮着。我蹲下来看——一个叫“副本规则”的页面,白底黑字,每五分钟自动刷新一条新规则,每刷新一次老陈就跟着念一遍。页面没有关闭按钮,返回键按了没反应,下拉菜单被禁用了,老陈的手机是贺明远统一采购的那批,背面贴着业委会的资产标签,型号和固件版本号跟我家那台一模一样。
我把老陈手机连上我的调试本,跑了段脚本查后台进程。一个叫“RuleSync”的服务每分钟从固定IP拉取规则文本,然后调系统TTS引擎朗读。这玩意儿是个自动播报器,只要后台不关,老陈就会一直念下去。 我查了那个固定IP——归属地境外,跟推送服务器在同一个城市。
我把服务停了,老陈安静下来,茫然地看着我:“程砚?我怎么坐这儿?”
他老婆嚎啕大哭。老陈低头看见自己手机屏幕上的规则页面,脸色变了:“这啥玩意儿?谁给我装的?”
“贺明远发的那批路由器,固件被人刷过。”我把他手机后台进程截图给他看,“你手机连上家里WiFi,路由器就给你推规则,推完自动装播报脚本。你念了两个小时,自己不知道。”
老陈干了三十年电信,一听就明白了:“固件后门?”
“对。而且你家路由器还在往外发数据——你念规则的语音,被录下来传回那个境外IP了。”我指着脚本日志里一行上传记录,“你看,每念完一条,录音文件自动上传。”
老陈老婆捂着嘴:“传录音干啥?”
“不知道。但肯定没好事。”
我让老陈把手机恢复出厂设置,又把他家路由器拔了电源。临走时老陈拽住我:“程砚,贺明远那批路由器,装的时候是我帮着调试的。我当时就觉得固件不对劲——出厂固件不可能带远程管理模块,他非说‘厂家定制版’。我还留了一台没拆封的样品在储藏室,本来想拿去退,后来忘了。”
“样品还在?”
“在!我拿塑料布包着放柜子顶上了!”
“明天我来看。”
第二章 规则小组
第二天早上七点半,贺明远在小区广场开了个“诡异降临应对会”。
他拿了个喇叭站花坛上,身后拉了条红底白字横幅——“遵守规则,保卫家园”。台下站了百来号人,有人手里拿着手抄的规则本,有人戴着口罩只露眼睛,还有人举着手机直播。花坛旁边摆着张折叠桌,桌上码着几十个透明密封袋,每个袋子里装一部手机,贴着房号标签。
“各位邻居,”贺明远声音洪亮,带点演讲腔,“昨晚的事大家都经历了。上面发规则,我们就遵守规则。规则不是害人的,是保护我们的。从今天起,每栋楼选一个规则监督员,每天早晚两次核对规则执行情况。手机统一管理,只保留接打电话功能,其他App全部卸载。谁家有老人小孩不会操作的,我派人上门帮忙,免费的。”
我站人群后面,看见苏晚从另一边挤过来。她穿着社区医院的护士服,手里拎着个帆布袋,站到我旁边低声说:“程砚,你查查他们那个‘心理疏导’。社区医院这周镇静类药物出库量翻了三倍,全开给规则小组的人了。开药的医生说,是贺明远拿着名单来代开的,说‘居民集体焦虑需要药物干预’。”
“开的什么药?”
“右佐匹克隆,安眠药。一天一片,有的人开了半个月的量。”苏晚把手机备忘录递给我看,“但奇怪的是,领药的人里有一半根本没失眠记录。老陈老婆说老陈从来不失眠,倒头就睡。”
安眠药。右佐匹克隆。我脑子里过了一遍——这药代谢快,混在酒里喝下去,一两个小时内血液酒精检测能检出异常,但药本身在常规毒理筛查里容易漏掉。有人需要一批“吃了就犯困、睡醒查不出来”的药,用规则小组的名义批量开出来,合法的处方,合法的渠道。
“还有,”苏晚翻到备忘录下一页,“贺明远自己领了三十天的量。他什么时候失眠过?天天在群里发语音,中气十足的。”
“药你还能拿到出库单吗?”
“能。我拍了照,回头传你。”
贺明远开完会就带人挨家挨户收手机。守到我门口时,我开着门等他:“贺主任,路由器固件谁刷的?”
贺明远笑容不变:“什么固件?路由器都是安联网络统一配的,人家专业公司,刷什么固件我们业委会不懂。”
“安联网络法人代表叫陈冉,三个月前注册,注册地址填的是我们小区物业办公室。”我把工商信息截图亮出来,“陈冉是你外甥女吧?她社保挂在你老婆名下那家早就停业的公司里,缴了半年。”
贺明远脸上那层笑薄了半寸。他把手里的密封袋往我门框上一靠,压低声音:“程砚,你是搞技术的,我敬你。但你别把技术往歪处用。昨晚那推送是上面发的,规则是上么定的,我组织大家遵守规则,有什么错?”
“上面是谁?”
“副本管理局。”他指了指天上,“规则手册上写着呢,人家有编号、有公章、有投诉电话。你不信,打一个试试。”
我当场拨了规则手册上的投诉电话。响了两声,接通了,一个女声录音:“您好,这里是副本管理局规则咨询热线。当前排队人数较多,请您耐心等待。您也可以关注‘副本管理局’公众号自助查询——”
电话挂了。我查了那个号码的归属:境外虚拟运营商,注册地跟推送服务器IP在同一个城市。
“贺主任,”我把号码归属地截图给他看,“副本管理局的客服电话在境外,推送服务器也在境外,路由器固件三个月前被人刷过,刷固件的人用的是你办公室那台电脑。你告诉我这是‘上面’发的?”
贺明远不笑了。他把密封袋往我怀里一塞,转身就走,走了两步回头:“程砚,你爱交不交。但你别拦着别人交。老陈那种人,你不让他念规则,他就对着空气说话。你选吧。”
我没交手机。但当天下午,我发现我家猫眼被人从外面贴了张纸。门板上猫眼位置糊着一块不干胶贴纸,上面印着规则第一条:“午夜后不要看猫眼。”贴纸边缘有半截指纹——我拿透明胶带粘下来,比对了一下,是贺明远右手拇指。他在广场上拿喇叭时我拍过照,他握喇叭的姿势拇指压在正面,指纹纹路清清楚楚。
我把贴纸和指纹一起装进证物袋。然后做了件贺明远没想到的事:我在猫眼内侧装了个微型摄像头,正对着猫眼孔。谁从外面看猫眼,摄像头就拍谁。
当晚十一点四十七分,摄像头拍到一个穿黑卫衣的人走到我家门口,弯腰把眼睛凑到猫眼上往里看。我截了图放大——是贺明远。 他看了大概五秒,直起身,掏出手机对着我家门拍了张照,走了。
十二点整,我手机又收到一条推送。这次内容变了:
“规则补充:猫眼被遮挡的住户,视为违反规则。违反规则者,今晚十二点半到小区东门集合,接受规则教育。”
我查了推送来源——还是DNS劫持,但这次劫持的是我家路由器。我白天没交手机,晚上路由器就被单独定向推送了。有人知道我住哪户、用哪台路由器、连哪个AP。
十二点二十,我下楼去东门。远远看见贺明远带了七八个人站在铁门旁边,手里拿着手电筒和规则手册。老陈也在,被两个人架着胳膊,嘴里还在念:“规则第四条,集合要排队。规则第五条,点到名字要答到。”
我走过去:“贺主任,大半夜搞集合,业委会什么时候有执法权了?”
贺明远拿手电照我脸:“程砚,你猫眼被贴了纸,说明你违反规则。违反规则就得接受教育。这是为大家好。”
“猫眼贴纸是你贴的。”
“你哪只眼睛看见我贴的?”
“我猫眼内侧装了摄像头,拍到你十一点四十七分弯腰看我猫眼。”我举起手机,视频暂停在他弯腰那一帧,“贺主任,你大半夜趴我家猫眼往里看,看什么呢?看我家灯关没关?还是看我在不在家?”
贺明远脸在手电筒后面阴下来。他身边那几个人面面相觑,架着老陈的手松了松。老陈趁机挣开,往我这边走了两步。
“还有,”我把手机切到路由器后台截图,“我家路由器今晚收到一条定向推送,只推给我这一户。贺主任,整个小区一千多户,你怎么精准定位到我家路由器的?业委会的宽带管理后台有所有住户的MAC地址和房号对应表,对吧?”
贺明远沉默了三秒。然后他笑了,把手电关了:“程砚,你挺能查。行,今天先到这儿。老陈你带回去,明天规则学习继续。”
人散了。老陈跟着我上楼,进门前他拽住我袖子:“程砚,我手机里那个念规则的玩意儿,是你给我关的?”
“是。”
“我闺女在外地上大学,我老婆说我这几天疯疯癫癫的,她吓得不敢回家。”老陈搓了把脸,“那规则,真是上面发的?”
“不是。”我把贺明远贴猫眼的视频和路由器截图翻给他看,“老陈,你干了三十年电信,你想想——什么‘上面’能精准到知道你家路由器MAC地址?只有管宽带的人。”
老陈盯着截图看了半天,突然一拍大腿:“安联网络那批路由器,装的时候是我帮着调试的!贺明远说统一采购的便宜货,我当时就觉得固件不对劲——出厂固件不可能带远程管理模块,他非说‘厂家定制版’。我还留了一台没拆封的样品在储藏室!”
“样品还在?”
“在!我拿塑料布包着放柜子顶上了!”
我跟老陈去他储藏室把样机搬出来,拆开一看——固件里预装了完整的远程控制组件:DNS重定向模块、规则推送服务、TTS语音播报脚本、定时上报设备信息的后台进程。 固件签名用的是“安联网络”的证书,签发时间三个月前,跟工商注册时间对得上。我又把老陈那台已经被刷过的路由器拆了,比对两台设备的固件版本号——样机是出厂原版,老陈那台被人重新刷过,刷入时间戳是林昭出事前一周,不对,是诡异降临前一周。
我把样机固件解包,挨个模块看。DNS重定向模块的配置文件里写着推送服务器地址,我把IP拿去查——归属地境外某市,注册人陈冉,安联网络法人代表。 规则推送服务里存着规则文本模板,一共两百多条,从“午夜后不要看猫眼”到“违规者接受规则教育”,全是人工编写的,不是系统随机生成。TTS播报脚本的注释里有一行中文:“老陈那种老头,念三天就服了。”
老陈凑过来看了一眼,脸都青了:“这写的我?”
“你手机被装了脚本,你念的每一条规则都是后台推的。你越念越迷糊,是因为他们还给你喂了安眠药。”我把苏晚给的处方药出库单翻出来,“贺明远用规则小组的名义从社区医院代开右佐匹克隆,领药人名单里有一半根本没失眠记录。你老婆说你从来不失眠——药不是你主动吃的,是有人混在你晚饭里了。”
老陈愣了半天,突然站起来:“我找他去!”
“别急。”我按住他,“你去找他,他反咬你一口说你精神不正常。你得先有证据。”
我把样机、固件解包日志、老陈的证言录音、贺明远贴猫眼的视频、路由器定向推送截图、苏晚提供的处方药出库单全部整理成一份PDF,文件名“副本管理局-证据链-001”。然后我做了件更绝的事——写了个脚本,把贺明远那台办公电脑的共享文件夹目录爬了一遍。
他权限设得稀烂,小区物业办公室的电脑跟业委会办公室在同一个局域网,共享文件夹没设密码。我扫了一遍,找到个叫“安联-内部”的文件夹,里面存着路由器固件源码、规则文本模板、还有一份Excel表——标题是“规则教育进度跟踪”,列着小区每户的门牌号、手机号、领药记录、规则学习次数、以及一列标注“配合度”的打分。 我家那行写着:“程砚,2302,未领药,未交手机,配合度:0。备注:技术背景,需重点处理。”
重点处理。
我把Excel截图存证,连夜去了市局网安支队。
第三章 猫眼
秦队那天值班。我进他办公室时他正对着一摞报警记录发愁——全市“诡异降临”相关报警两百多起,大部分是“有人看猫眼后行为异常”“邻居半夜念规则扰民”“怀疑手机被监控”。派出所按群体癔症处理,调解完就结了。
“你是今天第五个来报‘手机被监控’的。”秦队把报警记录往旁边推了推,“前面四个,一个说自家路由器成精了,一个说楼上邻居用电磁波害他,还有两个是夫妻互相怀疑对方给手机装了定位。”
“秦队,我不是来报案的。”我把硬盘往他桌上一放,“我是来交证据的。全市两万三千台手机同时收到推送,推送走的是运营商绿色通道,审批人是离职员工,VPN账号被盗用。推送目标筛选条件‘全市在网用户’,精准投递。这是基站信令日志。”我把打印出来的抓包记录推过去,“信令峰值时间十二点零零分零零秒,持续三秒,跟推送发送时间完全吻合。”
秦队翻了两页,表情没变:“你哪单位的?”
“安联网络竞争方,新程通信,安全工程师。”我把名片递过去,“我们公司跟安联网络竞标过小区宽带项目,没中。本来这事跟我没关系,但贺明远——小区业委会主任,安联网络实际控制人——今晚贴了我家猫眼,还组织人半夜‘规则教育’我。我拍了视频。”我把手机里的猫眼摄像头录像调出来,“十一点四十七分,他弯腰看我猫眼。这是指纹比对结果,贴纸上的指纹跟他右手拇指一致。”
秦队终于坐直了。他把录像看了两遍,又翻我的硬盘目录:“副本管理局-证据链-001……这里面都有什么?”
“安联网络路由器固件解包报告、DNS重定向模块源码、规则推送服务器IP归属地、贺明远外甥女陈冉的工商注册信息、社区医院镇静类药物出库单、业委会规则教育进度跟踪表。”我一项项指给他看,“秦队,这不是群体癔症,这是一起有组织、有预谋、有技术手段的操控事件。贺明远用业主委员会的名义换宽带、送路由器,在固件里预装后门,然后通过运营商绿色通道向全市推送‘副本规则’。规则内容全是人工编写的,目的是制造恐慌、控制居民行为。配合规则的人拿安眠药、交手机、接受‘规则教育’;不配合的人被贴猫眼、半夜骚扰、标注‘重点处理’。”
秦队盯着“规则教育进度跟踪表”上我家那行备注看了五秒,拿起电话拨了个内线:“小刘,调一下‘安联网络’的工商注册信息和银行流水,还有法人陈冉的出入境记录。”
挂了电话他问我:“你那个固件解包报告,能证明后门是安联网络预装的?”
“能。固件签名证书是安联网络的,签发时间三个月前,跟陈冉注册公司的时间对得上。而且我手里有一台出厂原版样机——”我把老陈那台没拆封的路由器搬出来,“样机固件里预装了完整的远程控制组件,说明后门不是后来刷进去的,是出厂就带着的。安联网络委托代工厂生产的这批路由器,出厂固件就被人改过。”
秦队把样机翻来覆去看了两遍,突然问:“你刚才说,贺明远用业委会名义从社区医院代开安眠药?”
“右佐匹克隆,三十天的量,领药人名单里一半没有失眠记录。”我把苏晚拍的出库单照片调出来,“这药代谢快,混在饭里吃下去,人犯困、反应慢、容易听话。老陈被喂了三天,念规则念了两个小时自己不知道。”
秦队把出库单照片放大,盯着领药人签名栏看了半天:“贺明远自己的签名也有?”
“有。他领了三十天的量。他天天在群里发语音中气十足,领安眠药干什么?给不配合的人加料。”
秦队把照片存进案件文件夹,靠回椅背:“程砚,你这些证据我收下了。但我要提醒你——安联网络背后如果只是贺明远一个人,他撑不起全市范围的运营商绿色通道。审批人虽然离职了,VPN账号被盗用这个说法需要技术鉴定。你先回去,别打草惊蛇。我们这边先调安联网络的服务器托管合同和资金流水。”
“秦队,我建议你们尽快查陈冉的出境记录。”我把手机递过去,“我今天下午查了航班信息,陈冉订了明天上午十点飞东南亚的机票。”
秦队脸色一变,抓起电话:“小刘,陈冉的边控先加上,明天早上八点之前办好。”
第二天上午九点四十,陈冉在机场被拦下来。随身行李箱里搜出三台刷好固件的路由器样机、一台存着规则文本模板的笔记本电脑、以及一张手写的“规则更新计划表”——上面列着未来两周要推送的新规则,最后一行写着:“如果程砚还不交手机,上‘天台规则’。”
“天台规则”是什么?秦队把计划表拍在审讯桌上问陈冉。她低着头不吭声。秦队又甩出一张照片——方明远坠楼案,不对,是贺明远小区物业办公室的平面图,天台位置标注着一个红色圆圈。
“贺明远在安联网络办公室天台上装了信号发射器。”秦队把照片推过去,“我们技术组去测了,那个发射器功率超标三倍,覆盖整个小区。你解释一下,业委会主任在办公室天台装大功率信号发射器干什么?”
陈冉终于开口了:“他说……他说要增强WiFi信号,让规则推送更稳定。”
“增强WiFi信号需要大功率发射器?还需要在发射器旁边装监控?”秦队把第二张照片甩出来——天台角落一个伪装成空调外机的摄像头,正对着楼下广场,“你们监控谁?监控不交手机的住户?”
陈冉不说话了。
与此同时,另一组人去了贺明远办公室。他正组织当天的“规则学习会”,一百多号人坐在广场上念规则手册。秦队带人穿过人群走到花坛边上,贺明远还在拿喇叭喊:“大家别慌,配合警方调查,我们业委会全力支持——”
秦队把搜查证亮出来:“贺明远,安联网络实际控制人,涉嫌非法控制计算机信息系统、非法经营、扰乱无线电通讯管理秩序。跟我们走一趟。”
广场上安静了。贺明远拿着喇叭愣了三秒,然后笑了:“秦队,你们是不是被程砚忽悠了?他就是个搞技术的,跟我们有竞标纠纷——”
“程砚提供的证据我们已经核实了。”秦队从证物袋里掏出那台出厂原版路由器,“这台样机的固件是你让陈冉找代工厂刷的,刷机记录、付款流水、代工厂负责人的证词,我们全拿到了。你办公室电脑里的‘规则教育进度跟踪表’,包括你标注‘重点处理’的那几户,我们也调出来了。”
贺明远脸上那层笑终于碎了。他扭头往人群里找,找到站在后排的我,突然喊:“程砚!你他妈的——”
秦队按住他肩膀:“行了,到支队再说。”
贺明远被带走那天,广场上那帮规则小组成员全傻了。有人当场把规则手册扔地上,有人问“那药还吃不吃”,还有人追着警车喊“贺老师你什么时候回来”。老陈站人群前面,中气十足地喊了一句:“都别念了!那玩意儿是贺明远写代码推的,屁的副本管理局!”
苏晚从医院调出了完整处方记录,规则小组里被喂过安眠药的住户一共四十七户。医院挨个打电话通知停药,有六个老人已经连续吃了十几天,停药后头晕嗜睡了两天才缓过来。
秦队后来跟我说,贺明远在审讯室里交代了第一层:安联网络注册资金五十万,实际到账五万,剩下的钱全靠运营商绿色通道赚差价——他给小区换宽带收了每户两百块“设备费”,一千多户就是二十多万。路由器采购价一台三十五,他报账一百二,差价进了自己口袋。规则推送服务是免费附赠的“增值业务”,其实成本全摊在宽带费里。
“那‘副本管理局’公众号呢?”秦队问他。
“我找人做的。”贺明远低着头,“花三千块钱,淘宝上有人专门做这种仿官方公众号,模板现成的,改个名字就行。”
“规则文本谁写的?”
“我写的。参考了一些网络小说和恐怖游戏,编了两百多条。”
“安眠药呢?”
“社区医院那医生是我同学,我拿业委会证明去代开的,说居民集体焦虑。药发给规则小组的监督员,让他们混在晚饭里给不配合的人吃。”
“不配合的人里包括程砚?”
贺明远不吭声了。秦队把“规则教育进度跟踪表”翻到程砚那行,指着“重点处理”三个字:“你打算怎么重点处理?”
贺明远沉默了两分钟,说了一句:“我本来打算再推两周规则,等他精神崩溃了自己搬走。”
“然后呢?”
“然后安联网络就能独占小区宽带,我下一步准备把业务扩到隔壁三个小区。”
秦队把笔录合上:“你那个‘天台规则’呢?”
贺明远脸色变了:“什么天台规则?”
“陈冉行李箱里搜出来的规则更新计划表,最后一行写‘上天台规则’。你办公室天台上装了大功率发射器和监控,你跟我说说,天台规则是什么?”
贺明远嘴唇哆嗦了一下:“我……我就是吓唬吓唬他。天台规则写的是‘违规者到天台接受终极教育’,其实就是让他上去站半小时,我拍个视频发群里,杀鸡儆猴。”
“方明远坠楼那天晚上,你是不是也打算让他上天台?”
贺明远猛地抬头:“方明远是谁?我不认识——”
秦队把另一份材料推过去。方明远,隔壁小区业委会前主任,三个月前从自家小区天台坠楼,警方定性自杀。但方明远生前最后一条朋友圈发的是:“我不交手机,他们就要我上天台。”配图是一张业委会通知单,落款盖章模糊,但格式跟贺明远那套规则手册一模一样。
“方明远那个小区,安联网络三个月前也去竞标过宽带项目。”秦队盯着贺明远眼睛,“他死后项目黄了,但方明远老婆说,他死前一周天天收到‘副本规则’推送。”
贺明远不说话了。
案子移交检察院那天,秦队把我叫去补了份笔录。签完字他递了根烟给我,我摆手说不抽。他笑笑:“你那七台摄像机,回头给队里培训讲讲。”
“行。”我接过案件移送书,翻到最后一页签了名。
贺明远因非法控制计算机信息系统罪、非法经营罪、扰乱无线电通讯管理秩序罪被批捕,涉案金额初步核算一百二十余万。陈冉取保候审,护照被扣,限制出境。社区医院那个开药的医生被停职调查。安联网络的路由器全批次召回,运营商省公司启动内部追责,那个离职员工的VPN账号被永久注销。
小区宽带重新招标那天,我代表新程通信去讲标。台下坐着业委会新选出来的主任,是个退休法官,开场第一句话:“我们不要送路由器的,谁送路由器我们举报谁。”
我讲完标书下来,老陈在门口等我,手里拎着个袋子:“程砚,那台样机你还要不?不要我拿回家当花盆底座。”
“留着吧,当证据。”我把袋子接过来,“你家路由器换了吗?”
“换了,自己买的,京东自营,固件版本我查了三遍。”老陈搓了搓手,“我闺女下个月回来,我老婆说要做一桌菜谢谢你。”
“谢什么,我又没干啥。”
“你还没干啥?”老陈嗓门大起来,“你把我手机里那个念经的玩意儿关了!我老婆说我那两天跟中了邪似的,我自己啥都不知道。要不是你——”
“行了行了,”我拍了拍他肩膀,“回头教你怎么查路由器固件版本,下次再有人送你路由器,你自己就能看出来有没有后门。”
老陈嘿嘿笑了。
我上楼时手机响了一下。不是推送,是苏晚发来的微信:“贺明远那案子,检察院批捕了。还有,社区医院新到了一批流感疫苗,你要不要来打?”
我回:“打。顺便把之前那批安眠药的处方记录再给我一份,秦队说检察院要附卷。”
苏晚秒回:“早准备好了,你什么时候来拿?”
“明天中午,顺便请你吃饭。”
“行,别点辣锅,我最近上火。”
我把手机锁屏,站在阳台上往下看。小区广场上横幅已经撤了,花坛旁边那块空地新摆了两张乒乓球桌,几个老头正在打球。没人念规则了。
我回屋打开电脑,把“副本管理局-证据链-001”那个文件夹重命名成“贺明远案-结案归档”。想了想,又在后面加了个子文件夹,命名“新程通信-小区宽带安全方案-投标版”。
然后我给秦队发了条消息:“秦队,那个运营商绿色通道的审批漏洞,我写了个技术整改建议,回头发您邮箱。”
秦队回了个大拇指表情。
我关掉微信,打开代码编辑器。新项目的第一个文件,标题写的是:
“路由器固件安全检测工具 v0.1”
注释第一行:“送路由器的,先过我这关。”