去评论
dz插件网

discuz x5.0官方核心文件中的一段强制版权保护混淆代码赏析**** WE WILL WIN THE FUTURE ****Powered by Discuz! X5

惧愁人
2026/02/13 15:02:17
discuz x5.0官方核心文件中的一段强制版权保护混淆代码赏析**** WE WILL WIN THE FUTURE ****Powered by Discuz! X5:
官方操作嵌入原文:https://gitee.com/Discuz/DiscuzX ... 6111285d38a8fc37315
官方把这叫做“优化逻辑~”,所以你们懂的哈~再看到所谓的“优化~”长点心吧。

加密代码路径:/source/function/cache/cache_censor.php
  1. if(!empty($data['filter'])) {
  2.                 $temp = str_repeat('o', 7);
  3.                 $temp = str_repeat('o', 5);
  4.                 $l = strlen($temp);
  5.                 $l = strlen($temp);
  6.                 $data['filter']['find'][] = str_rot13('/1q9q78n7p473'.'o3q1925oo7p'.'5o6sss2sr/v');
  7.                 $data['filter']['find'][] = str_rot13('/1q9q78n7p473'.'o3q1925oo7p'.'5o6sss2sr/v');
  8.                 $data['filter']['replace'][] = str_rot13(str_replace($l, ' ', '****7JR7JVYY7JVA7'.
  9.                 $data['filter']['replace'][] = str_rot13(str_replace($l, ' ', '****5JR5JVYY5'.
  10.                                 'GUR7SHGHER7****\aCbjrerq7ol7Pebffqnl7Qvfphm!7Obneq7I')).$l;
  11.                         'JVA5GUR5SHGHER5****\aCbjrerq5ol5Qvfphm!5K')).$l;
  12.         }
  13.         }
这是Discuz! X5.0 核心文件中的一段混淆代码,此乃官方操作的叫做“保护原则”,非官方的如此操作则会被官方定义为“后门”。
代码行为:通过str_rot13和str_repeat等函数混淆字符串,向系统的“词语过滤(Censor)”机制中强行写入一条替换规则。
真实含义:这是一段版权保护强制注入改写代码。当特定条件触发(或匹配到特定指纹)时,它会将内容强制替换为:“**** WE WILL WIN THE FUTURE **** Powered by Discuz! X”。

代码主要使用了 ROT13(回转13位)编码和简单的字符串替换。
A. 核心变量解析
代码利用 $l = strlen($temp) 作为动态变量,旧代码中 $l=7,新代码中 $l=5。这个数字被用作混淆字符串中的“占位符”。
B. find 字段(匹配规则)解析
代码:
  1. str_rot13('/1q9q78n7p473'.'o3q1925oo7p'.'5o6sss2sr/v');
拼接后:/1q9q78n7p473o3q1925oo7p5o6sss2sr/v
ROT13 解码结果
  1. /**** WE WILL WIN THE FUTURE ****\nPowered by Crossday Discuz! Board V7/i
分析:这是一个正则表达式,**** WE WILL WIN THE FUTURE ****\nPowered by Crossday Discuz! Board V7 是一个MD5哈希值,/i 表示不区分大小写。

C. replace 字段(替换内容)解析
旧代码(Discuz! Board 版本):
  1. **** WE WILL WIN THE FUTURE ****
  2. Powered by Crossday Discuz! Board V7
新代码(Discuz! X5 版本 - 本次变更):
  1. **** WE WILL WIN THE FUTURE ****
  2. Powered by Discuz! X5
3. 详细逻辑行为分析
这段代码位于 savecache('censor', $data); 之前,意味着它在保存敏感词过滤缓存时执行。
触发机制:这个正则 /**** WE WILL WIN THE FUTURE ****\nPowered by Crossday Discuz! Board V7/i 看起来像是一个特定的指纹。通常在以下情况可能被触发:

最后我想说的是,同样作为开发者,在开源软件中使用 str_rot13 等混淆手段隐藏业务逻辑,严重违反了透明性原则。不过这是discuz,这样的做法也就只有所谓的官方了~