QQ聊天记录的存储格式

最近有空………

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

这里说一下它的存储格式吧……

119 ''
221 ''
348 '0'
465 'A'
548 '0'
648 '0'
748 '0'
848 '0'
970 'F'
1070 'F'
1148 '0'
1248 '0'
1356 '8'
1454 '6'
1548 '0'
1650 '2'
1723435 '宋'
1820307 '体'
1913 '/r'

当年解密随便一条聊天记录,它都会以类似上面的字串作为终结。

其实这串字符是记录文字的格式。

119 ''
221 ''

据我推测,是起始的标记。

348 '0'
465 '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号大小的字,会表示如下:

349 '1'
450 '2'

 

548 '0'
648 '0'
748 '0'
848 '0'
970 'F'
1070 'F'

则代表字体的颜色……

剩下的

1148 '0'
1248 '0'
1356 '8'
1454 '6'
1548 '0'
1650 '2'

估计是字的编码……具体我也没了解……

接着就是

1723435 '宋'
1820307 '体'

代表字体的名称

最后的

1913 '/r'

其实是代表值 13 ,也就是 (3)-(10) 和 (17)-(19) 的字节数(汉字是2个byte的)的数量……

 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值