私有即时通讯软件目前已经形成了市场垄断,在中国的代表是腾迅开发的 QQ 和微信,它们几乎垄断了全国所有的市场份额。而垄断往往意味着排斥其他竞争对手,让用户无法用脚投票,只能仍由开发商压榨。微信就是其中的典型代表,原本打着简洁旗号的微信,到了如今成了一个臃肿不堪的应用,过大的硬盘和内存占用损耗着用户设备的寿命的同时,带来的冗余数据也容易藏污纳垢。

出于用户信息安全考虑,即时通讯应用本来不应该有社交媒体的功能,但各互联网寡头为了自己的垄断利益将它们开发的即时通讯软件逐渐社交媒体化,微信也不例外。如今微信公众号、小程序、朋友圈等“附属功能”已经成了气候,不成气候的视频号也被腾迅力推。这些社交媒体功能除了危害用户的信息安全外,也造成了功能冗余,而功能冗余造成的数据冗余又会进一步危害用户的信息安全。目前对于微信的恶意功能的研究还不算多,下面主要探讨微信公众号和微信的内存占用、空间占用的问题。

微信在技术上对用户的侵犯

(1)微信公众号的短链接

微信会推送微信公众号的文章,而微信不仅能知道是否推送了,推送给了谁,还能知道被推送者到底看过什么推送内容。这在技术上并不难实现,很多网站也有这样的功能,但浏览器听用户的,可以屏蔽这样的功能,私有 app 作为阉割的浏览器被开发商掌握。为了进一步控制用户,微信公众号里的文章很难完全通过浏览器检索查看。

尽管单篇文章可以通过浏览器访问,但单篇文章的链接实际上都是特殊处理过的短链接,存在猫腻。我们通过技术手段还原了短链接,真实链接非常长。

例如,某篇微信公众号文章的短链接是https://mp.weixin.qq.com/s/SkOhY4FeBS9nQDjOX_M_tA,而它的真实链接却是https://mp.weixin.qq.com/s?__biz=MjM5NDEwNzc0MQ==&mid=2650954082&idx=1&sn=21bd18b33a6267cb7fe86d119abb7907&chksm=bd7a21508a0da846024ea0e804b27ba33ca401abea58e7d951273324910ea151bd792f84a115&sessionid=0&scene=126&clicktime=1637736568&enterid=1637736568&ascene=3&devicetype=android-29&version=2700153a&nettype=WIFI&abtest_cookie=AAACAA%3D%3D&lang=zh_CN&exportkey=CDKB3k%2BnO96VBJqXvKs6D%2B0%3D&pass_ticket=hYOueaHWr9qL2bDHc4Lc9hLTEMaOk18aJN7UJ%2BiJUjJZj%2BJK%2FFl%2F2bNu9u8v0q2z&wx_header=1

夹杂的内容不少是用来访问供追踪器标记的,想要清理这些追踪标记十分困难。

(2)微信的内存占用和空间占用

微信会占用大量用户设备内存,而腾迅在中国垄断了即时通讯软件。这就导致 android 手机的内存变得越来越大,而腾迅的微信也能越来越占用用户内存。作为一款即时通讯软件,微信必须要不断进行网络链接才能正常使用,而大量占用内存,能让微信在用户的设备上长期后台联网运行,不断上传用户数据,下载可能监视用户的数据。

如果用户长时间高频率使用微信,就会被微信占用大量的存储空间。

测试员用一部微信占用了 1.85 GB 存储空间的手机做测试,检查用户可以自行删除的微信数据目录 sdcard/android/data/com.tencent.mm,发现其占用空间 354 MB,它的子目录里占用最高的是MicroMsg,足足占用了 308 MB。测试员检查MicroMsg,它的子目录里以用户识别码命名的目录,我们暂且称它为 xxx 目录,占用空间最大,占用了 148 MB。xxx 目录包含了大量用户在使用微信时不自觉下载到的图片、小视频等小文件,而这些小文件就是占用用户设备存储空间的大头。 sdcard/android/data/com.tencent.mm/xlog目录中则保存有大量正常读取的文本文件,它们以 .xlog 结尾。其余的目录下也有大量用户无法正常访问的文本文件。很显然,sdcard/android/data/com.tencent.mm的数据只占一小部分。

更多的数据被保存在/data/data/com.tencent.mm 中,用户如果不获取 root 权限便无法正常访问。测试员获取 root 权限后,检查 /data/data/com.tencent.mm 目录,发现它占用了 1.46 GB空间,与 sdcard/android/data/com.tencent.mm占用的空间大小之和差不多便是全部 1.85 GB。/data/data/com.tencent.mm 中空间占用最大的子目录也同样叫MicroMsg,它占用了大约 699 MB 的空间。此处的MicroMsg里的子目录名称与/sdcard/android/com.tencent.mm/MicroMsg的相似。此外,它也同样有一个以用户识别码命名的目录,但这里的识别码与sdcard/android/data/com.tencent.mm/MicroMsg里的不同。我们暂且称它为 yyy 目录,yyy 目录有 172 MB。其余子目录大多和小程序及其他微信组件有关,如app_xwalk_-1等目录和“微信运动”有关。

yyy 目录下包含的子目录名称也类似于 xxx 的子目录名称,也同样包含大量用户不自觉下载到的小文件。比起 xxx 目录,yyy 目录中有很多文本文件,但都无法正常读取。这些文本文件一般都很小,往往不足 1 kb,但有几个很大,例如一个名为EnMicroMsg.db有 40.39 MB,几乎占了整个 yyy 目录大小的1/4,疑似是记录用户聊天数据的;还有一个叫FTS5IndexMicroMsg_enceypt.db的,看似是某种目录文件,但也有 6.98 MB。

微信用户数据中包含的大量小文件占用了大量存储空间,它们不能被用户以容易的方式清理,这本就是在浪费用户的存储空间。而这些小文件本身如果被大量收集后进行数据库比对,本就能窃取到大量用户数据。何况微信的用户数据里还存在那么多用户无法自行解读的文本文件,我们完全有理由相信,这些用户无法自行解读的文本数据是“脏数据”,藏着腾迅不可告人的秘密。它们随着微信一次次后台访问网络而被上传到腾迅的服务器。

微信泛滥的原因

微信的泛滥是智能手机普及以后的事情,当时腾迅已经拥有了当时中国最大(如今第二)的即时通讯软件 QQ。但功能花里胡哨的 QQ 对于那些不会打字,甚至完全不识字的中老年人来说,使用门槛不算低,于是腾迅打着简洁的旗号开发了微信。为了让中老年人支持微信,微信利用了当时话费和短信费较高的情况,一上来便打着取代电话、短信的旗号,用手机号注册。腾迅本来就垄断了国内的即时通讯,而随着中老年人开始普遍使用微信,微信在中国的普及度甚至达到了90%。

这种在某一国的即时通讯垄断程度是连 whatsapp 、instgram 也望尘莫及的,而垄断程度足够高了,自然就具有排他性了,用户无法用脚投票就只能忍受腾迅的盘剥。