七月二十九号。晚上十一点。
中关村。龙芯微四楼。
那间没挂牌子的铁门房间里,灯亮着。
张红旗坐在桌前。刘浩站在他身后。
老吴把大屏打开了,切到第二个页面。不是拓扑图,是一张架构示意图。黑底绿字,一层一层的方块嵌套在一起,连线密麻。
老吴指着屏幕最底下那一层。
“张总,暗标只是第一手。第二手在这里。”
张红旗没说话,等他往下讲。
老吴用激光笔点了点最底层那排方块。
“赵磊他们带走的代码里,底层引擎模块的第三层调度逻辑里,埋了一段程序。我们内部叫它逻辑死锁。”
刘浩插嘴:“什么意思?说人话。”
老吴回头看了他一眼,组织了一下语言。
“这么说吧。这段程序不是在软件层面做手脚。它直接调用硬件底层的cpU指令集。平时藏在正常代码里,你看不出来。编译之后混在几十万行代码中间,测试也测不出问题。”
张红旗开口了:“触发条件是什么?”
“并发量。”老吴把激光笔往上移了一格,“当服务器同时在线人数突破十万,数据流的并发请求达到每秒十二万次以上,这段程序就会被激活。”
刘浩皱着眉头:“为什么是十万?”
“因为十万人同时在线,就是公测开服的标志。”老吴说,“低于这个数,说明产品还在测试阶段,不算正式运营。我们的设计逻辑很简单——只在他真正赚钱的那一刻动手。”
张红旗点了下头。
老吴接着说:“赵磊他们拿走代码之后,做了逆向分析,也做了破解。坐骑养成模块那个加壳,他们绕过去了。但那个壳是明面上的锁,是让他们看的。真正的东西,不在那一层。”
大屏切了一张新图。一段代码的截图,十几行。绿色的注释写得很隐蔽,混在正常的内存分配函数里。
“这段代码藏在底层引擎的内存管理模块里。它不是一个独立的程序,是分散嵌入在十七个不同的函数调用中的。任何一段单独拿出来看,都是正常代码。只有十七段全部同时运行,并且并发量达到阈值,才会形成闭环,触发死锁。”
刘浩听不太懂技术,但他听懂了一个词:十七段。
“赵磊发现不了?”
“发现不了。”老吴把激光笔收起来,“他做代码审查的时候,看到的每一段都是正常的内存分配逻辑。他没有理由怀疑。而且,他们做压力测试的时候,模拟的并发量只有五万。”
张红旗说:“你怎么知道他们只测了五万?”
老吴从桌上拿起一份报告。
“暗标的握手信号里携带了服务器的环境参数。我们能看到他们测试服的负载峰值。最高记录是五万两千。”
“没到十万。”
“差一半。他们根本没往十万那个量级去测。”
张红旗靠在椅背上。
“触发之后呢?什么后果?”
老吴把大屏切到下一页。一张流程图,红色箭头从上往下。
“一旦触发,死锁程序会在零点三秒内锁死全部cpU线程。服务器的计算资源被瞬间吃干。紧接着,内存溢出,缓存崩盘,数据库的写入队列会在溢出的瞬间丢失全部未落盘的数据。”
“数据库会怎么样?”
“清零。”老吴的声音很平,“不是损坏,是清零。死锁程序在吃掉cpU资源的同时,会向数据库发送一条格式化指令。这条指令伪装成系统级的维护命令,数据库的权限验证在高负载下会放行。”
刘浩倒吸了一口凉气。
“玩家数据全没了?”
“全没了。角色、装备、充值记录、好友关系、帮派数据,全部归零。”
房间里安静了几秒。
张红旗问:“能修复吗?”
“不能。”老吴摇头,“死锁程序嵌在底层引擎里,不是一个可以单独摘除的模块。要修复,只有一个办法——把整个底层引擎重写。从第一行代码开始写。”
“重写需要多久?”
“按赵磊他们原来的开发速度,底层引擎写了八个月。换一批人从头来,至少一年。”
刘浩手掌拍在了桌子上。
“好!”
张红旗看了他一眼,他把手收回去了。
老吴又说:“还有一件事。死锁触发的同时,暗标系统会自动进入高速采集模式。崩溃瞬间,《魔途》服务器向外发送的所有异常流量,全部会被我们的监控服务器截获并存储。”
“什么意思?”刘浩问。
张红旗替他答了。
“意思是,他崩的那一刻,崩溃日志里会完整暴露他使用了我们代码的全部痕迹。死锁程序是触发器,暗标是证据收集器。两套东西联动。他一死,证据自动到手。”
老吴点头:“对。崩溃日志里的函数调用栈,会完整还原他底层引擎的运行逻辑。和我们《神途》的源代码做比对,重合度会在百分之九十五以上。这个比对报告加上公证处的实时取证,足够立案。”
张红旗把椅子往前拉了拉,盯着大屏看了一会儿。
“陈天宇那边的服务器,什么配置?”
老吴翻了翻手里的资料:“从暗标采集到的环境参数看,他用的是普通的云服务器集群。没有独立的硬件防火墙,没有物理隔离环境。”
“两千万美金拿到手,服务器上省钱?”
“钱全砸宣发了。”老吴说,“免费模式,不靠玩家付费回血,前期全靠融资烧。服务器能省就。他的运维团队应该跟他提过升级方案,但从目前的硬件配置看,没批。”
张红旗站起来了。
“好东西我都看了。这台监控服务器从现在开始,二十四小时有人值守。八月一号开服那天,九点之前你到海淀公证处等着。信号一过十万并发的阈值,立刻启动取证流程。”
老吴:“明白。”
张红旗往门口走。刘浩跟上来。
两人出了铁门,走在四楼的走廊里。值夜班的程序员还在埋头干活,没人抬头看。
下了楼,出了大门。外面的路灯把两个人的影子拉得老长。
刘浩走了几步,开口了。
“红旗。”
“嗯。”
“我之前急了。”
张红旗没接话。
“我以为你发律师函是真没招了。花篮那事我也没想通。现在想通了。”
张红旗掏出车钥匙,按了下遥控器。车灯闪了两下。
“线那边我来盯。”刘浩说,“从明天开始,二十三家直营店全部加装监控摄像头,对着门口的,对着机房的,全覆盖。盛腾的人再来,一举一动全录下来。你说得对,证据比拳头管用。”
张红旗拉开车门。
“还有一件事。”
“你说。”
“八月一号那天,《魔途》开服。京城的网吧会有大批玩家涌进去。你的直营店里也会有人要玩《魔途》。”
“那我不让他们玩?”
“让。”张红旗坐进车里,没急着关门,“让他们玩。帮他们装客户端都行。那天在你网吧里玩《魔途》的人越多越好。”
刘浩愣了两秒,然后明白了。
玩的人越多,同时在线就越快破十万。
“行。”
“回去吧。后天见。”
车门关上。发动机启动。黑色桑塔纳驶出中关村,拐上北四环,往什刹海方向去了。
刘浩站在龙芯微楼下,看着尾灯消失在路口。
他从兜里摸出烟,点上。吸了一口,把烟雾吐进夜风里。
后天。
八月一号。
他把烟掐了,转身上了自己的车。方向盘一打,往望京方向开。
明天一早,他要把二十三家店的网管全召集起来开个会。
不是防守。
是配合。