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. : 以上都是我自己观察研究得出的……可能有错……请大家指教……

你好!对于开发一个基于 Linux 平台的 QQ 聊天系统,你可以按照以下步骤进行操作: 1. 了解 QQ 协议:QQ 使用了自己的通信协议,你需要先了解这个协议的具体细节,包括消息格式、登录验证方式等等。这将帮助你理解系统的工作原理。 2. 设计系统架构:根据你的课设要求和功能需求,设计系统的整体架构。考虑到 Linux 平台的特点,可以选择使用 C/C++ 进行开发。确定系统的组成部分,例如客户端、服务器、数据库等。 3. 开发服务器端:使用 C/C++ 开发服务器端程序,处理用户的登录、注册、好友管理、消息传输等功能。服务器端需要处理多个客户端的请求,并且应该具备一定的并发处理能力。 4. 开发客户端:同样使用 C/C++ 开发客户端程序,提供用户界面和交互功能。客户端需要实现用户登录、添加好友、发送消息等功能,并与服务器进行通信。 5. 数据库设计与集成:设计并实现适合的数据库模型,存储用户信息、好友关系、聊天记录等数据。在服务器端和客户端中集成数据库操作,实现数据的存储和读取。 6. 聊天功能实现:在客户端中实现聊天窗口,支持文字、表情、文件传输等基本的聊天功能。服务器端负责转发消息,并将聊天记录保存到数据库中。 7. 安全性考虑:确保系统的安全性,例如用户登录的验证机制、消息的加密传输等。防止用户信息泄露和非法操作。 8. 测试和优化:进行系统测试,发现并修复可能存在的 bug,并对系统进行性能优化,以提高系统的响应速度和稳定性。 这只是一个简单的指导步骤,你可以根据自己的需求和能力进行相应的调整和扩展。祝你在课设中顺利完成!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值