QQ聊天記錄的存儲格式

最近有空………

想把MsgEx.db解密來研究一下……

這裏說一下它的存儲格式吧……

1 19 ''
2 21 ''
3 48 '0'
4 65 'A'
5 48 '0'
6 48 '0'
7 48 '0'
8 48 '0'
9 70 'F'
10 70 'F'
11 48 '0'
12 48 '0'
13 56 '8'
14 54 '6'
15 48 '0'
16 50 '2'
17 23435 '宋'
18 20307 '體'
19 13 '/r'

當年解密隨便一條聊天記錄,它都會以類似上面的字串作爲終結。

其實這串字符是記錄文字的格式。

1 19 ''
2 21 ''

據我推測,是起始的標記。

3 48 '0'
4 65 'A'

這2個字段比較特別,對於(3)來說,其實是1個16進制數,即二進制的 0000

其中,

第1個 0 代表 是否 粗體

第2個 0 代表 是否 傾斜

第3個 0 代表 是否 下劃線

第4個 0 ,與下一個字有關,

對於(4),它是代表字體大小,當字體大小超過16時(包含16),用1個16進制數無法表示。

這時候,將第4個0會被標記爲1,然後字體大小被表示爲16+(4)的值

即不是粗體,不傾斜,沒有下劃線的 18號大小的字,會表示如下:

3 49 '1'
4 50 '2'

 

5 48 '0'
6 48 '0'
7 48 '0'
8 48 '0'
9 70 'F'
10 70 'F'

則代表字體的顏色……

剩下的

11 48 '0'
12 48 '0'
13 56 '8'
14 54 '6'
15 48 '0'
16 50 '2'

估計是字的編碼……具體我也沒了解……

接着就是

17 23435 '宋'
18 20307 '體'

代表字體的名稱

最後的

19 13 '/r'

其實是代表值 13 ,也就是 (3)-(10) 和 (17)-(19) 的字節數(漢字是2個byte的)的數量……

 

P.S. : 以上都是我自己觀察研究得出的……可能有錯……請大家指教……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章