微信xlog文件夾揭祕

微信xlog文件夾揭秘

以Android手機為例,安裝了微信應用後,在安卓手機的文件夾tencent/MicroMsg下面有一個神秘的文件夾xlog。裡面是大小不等的以xlog結尾的文件。

這些xlog文件的作用是什麼?

在百度上以關鍵字“微信 xlog”搜索,得到的答案大多是把這些xlog文件當成微信語音聊天記錄的語音片段文件。

微信xlog文件夾揭秘

微信xlog文件夾揭秘

作為一個程序員,我不是很贊同這種看法。我的看法是,這些xlog文件是微信應用裡不同組件生成的(日誌?)文件。理由如下。

為了方便研究,我將我手機上微信xlog文件夾下的全部xlog文件都拷貝到了電腦上,細細研究。總共有292MB大。

微信xlog文件夾揭秘

我將這些xlog文件以名稱排序,得到一些有趣的發現。大家先觀察一下,發現了什麼規律麼?

微信xlog文件夾揭秘

微信xlog文件夾揭秘

微信xlog文件夾揭秘

微信xlog文件夾揭秘

微信xlog文件夾揭秘

微信xlog文件夾揭秘

規律1:這些xlog文件的文件名有個規範,即_。我把出現在xlog文件名頭部的服務名羅列如下:

APPBRAND

EXDEVICE

MM

PUSH

SANDBOX

SUPPORT

這些服務正是我們能在Android手機的設置->應用程序->微信->內存使用裡能看到的詳細信息,大家比較一下。注意下圖顯示的大小為手機運行時這些服務實時消耗的內存空間,而不是xlog裡對應的xlog文件總的大小。

微信xlog文件夾揭秘

規律2:儘管這些xlog名字頭部的服務名不一樣,但是後半部分的日期,全部都是從2018年7月6日開始,到7月16日結束。如果把這些xlog文件解釋成語音聊天的記錄文件,就太牽強了。因為這11天期間我有幾天根本沒有發出或收到語音格式的消息。如果大家做過程序開發,就能敏感地聯想到,這種存儲行為和很多日誌系統很類似。

比如常用的log4j。我們常用下面這種日誌配置:

log4j.appender.R.MaxFileSize=100MB

log4j.appender.R.MaxBackupIndex=11

上述配置的含義是,在系統任意時刻,最多維護11個日誌文件,每個文件的大小上限為100MB。如果超過,會自動刪除最舊的一個文件,同時創建一個新文件。

這和我們計算機專業課上學的LRU(Least Recently Used)—— 最近最少使用的緩存淘汰算法思路一致。

綜合這兩個規律,我認為這些xlog文件是微信對應服務組件自動生成的文件。

大家知道出於安全性考慮,日誌文件是絕不能記錄一些敏感信息,比如用戶名和密碼之類。

然而大名鼎鼎的twitter居然犯了低級失誤。大家百度“twitter 日誌洩密”,即可找到對應的新聞:

微信xlog文件夾揭秘

Twitter自己承認,由於一個漏洞,導致Twitter在用戶密碼加密前會將密碼的明文寫入一個內部的日誌文件中。

微信xlog文件夾揭秘

這個消息一爆出,業界一片譁然,導致Twitter股票暴跌。

微信xlog文件夾揭秘

而微信xlog文件夾裡的這些xlog文件都是經過加密的,不會存在安全性問題,大家可以放心使用。

微信xlog文件夾揭秘

xlog更多的內幕,應該只有等騰訊內部的微信開發者才能給大家分享了。

微信xlog文件夾揭秘


分享到:


相關文章: