清晨六点四十分,手机闹钟把何潇震醒。他第一反应是摸向床头柜——旧口琴还在,银漆磨得发亮,琴行老板塞给他那会儿咧着嘴:“这琴啊,跟了我二十年,比我家那口子还熟。你拿着,别糟蹋了。”
他握在手里。冰凉,金属味淡淡的。指腹沿着吹孔边缘滑过去,那些磨损的凹痕,像一条条细小的河床。他想起老板说这话时眼角的皱纹,想起自己第一次吹响它时那种生涩的震颤。始终没学会吹完整的曲子,但每次握着它,心里那些说不出口的东西就会安静下来。
目光落在床头墙上那本老式日历上。穿越前他习惯每天撕一页,到了这里之后,日历就一直停在十月二十四日。纸页微微卷起,像一道刺目的伤疤。穿越前最后一天,他刚做完一场关于“虚假情绪”的专题节目,准备关电脑时,屏幕上弹出一条匿名警告信息,他只来得及瞥见“十月二十四日”几个字就按掉了。当时没在意,只当是自己忘了撕。现在那个日期像一枚钉子,钉在记忆的某个角落,等着他去拔。
他翻身坐起来,给周远发了条语音:“醒了没?昨晚那个连麦数据我整理完了,全国加起来三百多个点,够画一张图了。”
周远回得很快,就两个字:“到了说。”
破晓传媒的办公室在城东一栋老写字楼的七层,电梯坏了,三层以上只能走楼梯。何潇爬上来的时候,田笑已经坐在工位前,面前摊着一台旧笔记本,屏幕上密密麻麻的表格看得人眼晕。她头也没抬:“你昨晚说的那个‘声音地图’,我做了个初版。全国三百二十七个连麦点,按城市和时段分布,热力图上能看到几个明显的聚集区。”
何潇凑过去看了一眼。屏幕上是一张中国地图,上面散布着密密麻麻的光点,颜色深浅不一。他注意到几个异常的区域:“这几个点怎么回事?凌晨三点到五点,连麦量比白天还高?”
“我也觉得奇怪。”田笑皱眉,“正常人的作息不该这样。除非——”
“除非有人在刷。”何潇说。
他拉过一把椅子坐下,打开自己的笔记本。这台机器是他穿越后攒了三个月工资买的二手货,配置不算高,但够用。他调出昨晚的直播后台数据,把田笑标出的那几个异常区域单独拎出来,逐条比对IP地址。这些IP的归属地信息全部指向同一个机房——但机房注册地址在某个偏远县城,而路由路径却绕过了多个节点,明显是经过多层代理伪装。他敲了几行命令,利用一个公开的DNS漏洞绕过了机房的基础防护,又通过端口扫描找到了一个未加密的管理接口。代码在屏幕上滚动,何潇的心跳不自觉地加快,手指敲击键盘的速度越来越快,带着一种近乎本能的兴奋。二十分钟后,屏幕突然一滞,然后跳出一个登录界面。他深吸一口气,输入最后几行命令,屏幕亮起的那一刻,他几乎能听到自己心跳的声音。
“怎么了?”田笑问。
“你看这个。”何潇把屏幕转过去。田笑看到一串IP地址,分布在不同城市,但归属地信息全是假的——注册地在某县城,实际路由却指向同一个机房。何潇又调出几行日志:“这些账号的登录时间间隔完全一致,精确到秒,像是同一套脚本在控制。”
“工作室?”田笑皱眉。
“不止。”何潇又调出一组数据,“这几个账号不光在刷连麦量,还在刷‘痛苦值’。你看他们的发言记录——‘我很难受’‘我撑不下去了’‘没人理解我’,每隔十五分钟发一条,措辞几乎一模一样。”
田笑沉默了几秒:“他们在刷虚假痛苦。”
“对。”何潇说,“我们做连麦是为了让真正需要的人开口说话,他们倒好,拿别人的痛苦当流量密码。”
他停顿了一下,手指在键盘上敲了几下,屏幕上弹出一个新的窗口,一串代码正在快速滚动。田笑看不懂那些代码,但她认得何潇的表情。那是他在直播时从来不会露出的表情,冷静、专注,带着一种近乎锋利的认真。
“你要干什么?”田笑问。
“看看他们后台。”何潇说,“既然敢拿痛苦刷数据,就别怕被人看。”
代码滚动了大约五分钟,屏幕突然一滞,然后跳出一个登录界面。何潇的手指在键盘上飞快移动,输入了几行命令——他先利用一个SQL注入漏洞绕过了登录验证,又通过一个未修补的权限提升漏洞获取了管理员权限。界面跳转,一个后台管理系统出现在屏幕上。
田笑凑近看了一眼,倒吸一口凉气。后台的数据比何潇预想的还要夸张,全国三十多个城市,上千个账号,全部由一套脚本自动控制。脚本的逻辑很简单:定时发布情绪化内容,关键词集中在“孤独”“绝望”“不被理解”,配合随机生成的虚假定位,让这些内容看起来像是来自不同城市的真实用户。
“他们图什么?”田笑问。
“图流量。”何潇指着后台的一个数据面板,“你看这个——这些虚假内容发布后,平均每条能带来两到三千的播放量,评论区还会有人留言安慰。这些安慰的互动又会推高内容权重,形成正循环。”
“那真正需要帮助的人呢?”田笑的声音有些发紧,“他们的声音会被这些假内容淹没?”
何潇没回答。他盯着后台看了很久,手指悬在键盘上方,屏幕的光映在他脸上,明暗交错。他想起穿越前自己做过的那档深夜电台节目,曾有一个听众打进来,声音抖得几乎听不清,说自己在天台上站了半小时,犹豫要不要跳下去。那通电话他记了很久,后来他一直在想,如果当时那通电话被什么干扰了,那个声音会不会就永远消失了。他深吸一口气,然后做了一件事,他没有黑掉这个系统,也没有删除那些数据。他调出了这套脚本的源代码,复制了一份,存进一个加密文件夹里。他盯着那串代码看了几秒,心里有个念头慢慢成形:这些代码的漏洞和特征,也许能帮他反向追踪到背后的运营方,甚至找到他们和天幕集团算法更新之间的关联。他关掉窗口,合上笔记本。
“你不处理?”田笑有些意外。
“处理什么?”何潇站起来,“现在处理了,他们换个服务器换个域名,照样能卷土重来。不如先留着,等摸清楚他们背后的运营方再说。而且——”他顿了顿,声音低了些,“这套脚本的写法有点眼熟,我总觉得不是普通工作室能写出来的。我想再挖深一点。”
他伸了个懒腰,语气又恢复了那种松弛的调子:“别急,先吃口。楼下早餐摊的茶叶蛋今天应该还有剩。”
田笑看着他,欲言又止。最终她只是叹了口气,跟着站起来:“周远说九点开会,还有四十分钟。”
“够了。”何潇已经走到门口,“吃完回来,我把那张声音地图的完整版做出来。三百多个点,够我们忙一阵了。”
他们下楼的时候,街角的早餐摊已经支起来了。老板娘是个五十多岁的阿姨,看到何潇就笑:“小何今天来得晚,茶叶蛋给你留了两个。”
“谢谢阿姨。”何潇接过茶叶蛋,顺手多扫了两块钱,“今天加个豆浆。”
“豆浆送你的。”阿姨摆摆手,“昨天你直播的时候,我闺女在电话那头哭了。她说听了你们那个连麦,终于觉得不是自己一个人在扛。”
何潇剥茶叶蛋的动作顿了一下。他没有抬头,只是“嗯”了一声,然后把蛋塞进嘴里,含含糊糊地说:“那让她下次直接打进来,我们听着。”
阿姨笑了,眼角挤出一堆细纹。她没再说什么,转身去招呼别的客人。
何潇咬着茶叶蛋,目光落在街对面的电话亭上。那是一个老式的IC卡电话亭,玻璃罩上贴着几张牛皮癣广告,话筒垂着,线已经断了。但每天早上,都有一个女孩会站在电话亭旁边,手里攥着一部旧手机,像是在等什么人的电话。
何潇记得第一次注意到那个女孩,是半个月前他刚来破晓传媒的第三天。那天他下楼买咖啡,看到女孩站在电话亭旁,风吹起她的头发,她一动不动。他当时多看了一眼,注意到她左手手腕上缠着一圈褪色的红绳,绳结打得歪歪扭扭,像是自己系的。她低头看手机时,会用拇指反复摩挲屏幕边缘,像是在等一条永远不会来的消息。后来他听护士长提起过——他每周三会去社区诊所帮老人调助听器,护士长闲聊时说过,那个女孩的父亲两年前失踪了,最后一次通话就是在那个电话亭打的。女孩每天都会去那里站一会儿,风雨无阻。何潇当时没接话,但那个画面一直留在脑子里。
他收回目光,把最后一口茶叶蛋咽下去,对田笑说:“走吧,开会。”
田笑跟在他身后,没有接话。但她注意到,何潇经过电话亭的时候,脚步放慢了一瞬,他侧过头,目光在女孩身上停了一秒,像是想说什么,又咽了回去。只有一瞬,然后他加快了步伐,像什么都没发生一样走进了写字楼。
电梯还是坏的。他们爬楼梯上到七层的时候,周远已经站在白板前了。白板上贴着一张打印出来的中国地图,上面用红笔圈出了十几个区域。
“昨晚的数据我看了。”周远说,“全国连麦点分布已经出来了,主要集中在三四线城市和县城。一线城市的连麦量反而低——不是没人需要,是大家更习惯把情绪藏起来。”
何潇在桌边坐下,把笔记本打开:“我这边有个新发现。”
他把刚才查到的后台数据投到白板上。会议室安静了几秒,程野第一个开口:“虚假痛苦?还有人干这个?”
“干的人还不少。”何潇说,“脚本控制上千个账号,定时发布情绪化内容,制造虚假的‘求助者’形象。这些内容会挤占真实的求助通道,让真正需要帮助的人更难被听到。”
“能查出来是谁在运营吗?”周远问。
“目前只能查到IP指向一个机房,具体归属还要再挖。”何潇说,“但我觉得,这事可能不是单纯的工作室行为。”
“什么意思?”
何潇没有直接回答。他调出后台数据,屏幕上弹出一张时间线图表,那些虚假内容的发布时间节点,像一串串密集的标记,恰好卡在天幕集团旗下某平台的内容推荐算法更新的前几分钟。他指着那些标记说:“你们看这个规律。这些虚假内容发布的时间,和天幕集团算法的更新时间几乎同步,每次都精准地卡在算法刷新前的几分钟。像是在钓鱼前先撒饵——先把虚假内容喂给推荐系统,让算法误以为‘痛苦’是流量密码,然后推送给更多真实用户。这样一来,平台的内容生态会被慢慢带偏,所有人看到的都是被加工过的痛苦,真实的情绪反而被淹没了。”
会议室又安静了几秒。程野低声骂了一句。
周远没有立刻表态。他盯着白板上的地图看了很久,然后说:“何潇,你能把那张声音地图的完整版做出来吗?把所有真实连麦点和虚假账号分布区分开,标出重合区域。”
“能。”何潇说,“给我一天时间。”
“好。”周远说,“明天下午,我们带着地图去找那些被淹没的真实声音。”
他说完,转身在白板上写下一个日期,十月二十四日,十七点。
何潇看着那行字,心脏猛地一跳。那个日期像一道闪电劈开记忆的迷雾——穿越前最后一天,他刚做完那场关于“虚假情绪”的专题节目,收到的那条匿名警告信息,落款处就是这个日期。他当时以为是恶作剧,随手就删了。现在那个模糊的日期忽然浮上来,像一块沉在水底的石头,隐约可见轮廓,却捞不起来。他又想起床头那本停住的日历,十月二十四日,纸页微微卷起,像是被反复翻看过。他当时没在意,现在却觉得那个日期像一枚钉子,钉在他记忆的某个角落,等着他去拔。
散会后,他回到工位,打开笔记本,开始整理那张声音地图。窗外,梧桐树的影子在秋风中摇晃,阳光从树叶缝隙间漏下来,落在键盘上,像碎了一地的金箔。屏幕上的代码在阳光下泛着微光,像一串串密码,而他突然想起另一个需要破解的谜题——那个女孩站在电话亭旁的身影,和她手腕上褪色的红绳。他敲了几行代码,停下来,目光越过屏幕,落在街对面。那个女孩又站在那里了。她低着头,看着手里的旧手机,拇指反复摩挲着屏幕边缘,像是在等一条永远不会来的消息。何潇想起护士长说的那句话——“她父亲失踪那天,给她打了个电话,说在电话亭等她。她跑过去的时候,人已经不在了。”他当时没问更多,但那个画面一直卡在脑子里,像一根刺。
他看了一会儿,收回目光。他打开一个空白文档,敲下第一行字:
“声音地图,让每一个真实的声音,都被听见。”
他停了一下,又补了一行:
“包括那些还没说出口的。”
窗外,梧桐叶落了一片,打着旋儿落在窗台上。何潇没有注意到。他的目光落在屏幕上,手指在键盘上轻轻敲了一下——像在回应某个遥远的声音。