今天QQ的一个“彩蛋”功能在网络上传得沸沸扬扬,传说是某程序员对QQ进行逆向的时候发现的东西。
笔者抱着好奇的心态去试了一下,没想到居然是真的。
实测
笔者随便找了个聊天窗口发了一下,结果发现这个所谓“彩蛋”是确实存在的,QQ作为腾讯的主力产品,内含这样的代码是非常不应该的,多半是产品团队对代码提交的审核出现了纰漏,不知道今天又是哪位程序员被开除。
也不知道这个程序员怨念是有多深重在代码里埋藏了这么多脏话,经过实测在QQ的聊天窗口中发送菜刀+某些英文符号+爱心就会触发这个功能,根据测试这些脏话并不是只有你才能看见,你看到的是什么,对面看到的也是一样的。
对这个功能笔者进行了更大范围的测试,理论上菜刀表情+特定字符+任意表情都可以触发这个功能,但这个功能在iOS上是没有的,Android端只有QQ有这个功能,TIM没有。笔者QQ的版本是7.6.0.3525,根据网络上的说法只有7.6.x的QQ拥有这一段代码。
机理
有网友摸索出了这个功能背后的代码实现原理,用其他的编程语言做了一个复现:
程序员简单地把这些脏话通过ASCII码和字符一一对应,并通过这种菜刀表情的方式触发。通过这个复现网友很快做出来了一个脏话词的对应表,经笔者实测是正确的。脏话一共是有30条。
在笔者看来这些脏话并不是明文写在代码里的,而是采用了某种转义的形式潜藏了起来。因为经过实测有的脏话发出来之后是一个无法加载的表情,或者是一部分被替换成了表情。可能正是这种转义形式让这段代码逃过了代码审查。
目前主流的科技媒体上已经能找到相关的文章,这一次事情也是闹得挺大。爆料来源于STCN(SteamCN 蒸汽动力),其他任何来源都不正宗。
最后本文说到的这个东西大家看了了解一下就行,别去尝试,特别是别用女朋友或者老婆的聊天窗口尝试,生命更重要。