最近有空………
想把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. : 以上都是我自己觀察研究得出的……可能有錯……請大家指教……