协议分析贴
请大家将分析出的协议贴在这里我们分析的版本为QQ2005 beta1, 即版本号为0x0D05 注意,我们很多注释都是建立在Luma分析的基础上的,所以
我们先感谢Luma的出色工作!
客户端版本号:0xd05
命令类型: outDat
命令号:0x0062
包体长度: 1 字节
注释:
=========================
请求登录令牌的包,格式为:
* 1. 头部
* 2. 未知的1字节,0x00
* 3. 尾部 yunfan的签名挺有意思啊,不过不够全面,应该是:
你知道吗?一直索取不奉献,最后丢掉小命的是什么吗?是猪!
被耍了吧! :lol: 搞清楚了群资料回应包中, 每个成员之间的2个字节的含义。
第一个字节是 这个好友所在的群内分组索引号
第二个字节是 是否是管理员
另外,还有个取得群内组织的分组名称。 还有可以取得群内讨论组的名称的命令
正在分析中。 lumaqq 中不是实现了群的支持了吗? 为什么不直接参考呢? lumaqq 中不是实现了群的支持了吗? 为什么不直接参考呢?
LumaQQ 的群是大部分功能支持, 但是不完全, 像群内组织的获取 什么的。还没有分析出来,至少是没有公布出来。
我们分析的是2005版本, 在这个版本中,群部分的个别协议内容变动了。 一些在lumaqq中的未知字节, 我们也在逐步搞清楚含义。 2005 等级 协议
包类型: outDat
命令: 0X005C
名称: 好友等级请求包(QQ_CMD_GET_LEVEL)
注释: (QQ2005 beta 1)
====================================
* 好友等级请求包,格式为
* 1. 头部
* 2. byte 0: 总是0x00 可能是子命令, 目前只有0x00
* 3. byte 1-4: 好友QQ号
* 4. 如果是多个好友,重复第3部
* 6. 尾部
注意的是,腾讯QQ一次最多是发送70个好友,剩下的,
用第二个包发,够70个,再分一个包,以此直到所有好友
都发送完毕。注意,自己的号码也在这个包里发。 一般腾讯
的是在第一包的最后一个。 估计是用std::list<int> 一样的结构,
自己的号码是一个push_back 的,所以是第一个包的随后一个
***********************************************************
包类型: inDat
命令: 0X005C
名称: 好友等级请求应答包(QQ_CMD_GET_LEVEL)
注释: (QQ2005 beta 1)
====================================
* 好友等级请求应答包,格式为
* 1. 头部
* 2. byte 0: 总是0x00 可能是子命令, 不确定
* 3. byte1- 4: 好友QQ号
* 4. byte5- 8: 登录总时长, 秒为单位
* 5. byte9-10: 等级
* 6. byte11-12: 升级剩余时长,小时为单位
* 7. 如果是多个好友,重复第3到6部分
* 8. 尾部 群管理员设置协议分析
包类型: outDat
命令: 0X0030
名称: 群命令(QQ_CMD_QUN_CMD)
注释: (QQ2005 beta 1)
====================================
群管理员设置子命令 0x1B (QQ_QUN_CMD_ADMIN)
请求包
1。头部
2。byte 0, 子命令: 0x1B
3。byte 1-4, 群ID
4。byte 5-8, 要操作的成员QQ号
5。byte 9, 一个功能字节。 0x00:删除操作, 0x01:设置操作
6。尾部
包类型: inDat
命令: 0X0030
名称: 群命令(QQ_CMD_QUN_CMD)
注释: (QQ2005 beta 1)
====================================
群管理员设置子命令 0x1B (QQ_QUN_CMD_ADMIN)
1。头部
2。byte 0, 命令: 0x1B
3。byte 1, 回应码0x00 成功
3。byte 2-5, 群ID
4。byte 6-9, 群版本号
5。byte 10-13, 要操作的成员QQ号
5。byte 14, 一个功能字节。 0x00:删除操作, 0x01:设置操作
6。尾部 群转让协议分析
包类型: outDat
命令: 0X0030
名称: 群命令(QQ_CMD_QUN_CMD)
注释: (QQ2005 beta 1)
====================================
群转让子命令 0x1C (QQ_QUN_CMD_TRANSFER)
请求包
1。头部
2。byte 0, 子命令: 0x1C
3。byte 1-4, 群ID
4。byte 5-8, 要操作的成员QQ号
5。尾部
包类型: inDat
命令: 0X0030
名称: 群命令(QQ_CMD_QUN_CMD)
注释: (QQ2005 beta 1)
====================================
群转让子命令 0x1C (QQ_QUN_CMD_TRANSFER)
1。头部
2。byte 0, 命令: 0x1C
3。byte 1, 回应码 0x00 成功
4。byte 2-5, 群ID
5。byte 6-9, 要操作的成员QQ号
6。byte 10-13, 群版本号
7。尾部
注意如果回应码不为0x00, 则说明失败,那么第6部分就是一个
字符串的错误消息 修改群名片协议分析
包类型: outDat
命令: 0X0030
名称: 群命令(QQ_CMD_QUN_CMD)
注释: (QQ2005 beta 1)
====================================
修改群名片子命令 0x0E (QQ_QUN_CMD_MODIFY_CARD)
请求包
1。头部
2。byte 0, 子命令: 0x0E
3。byte 1-4, 群ID
4。byte 5-8, 自己QQ号
5。byte 9, 真实姓名长度
6。真实姓名内容字符串
7。1字节, 性别 0x00:男
8。1字节,电话长度
9。电话的字符串表示
10。1字节,电子邮件长度
11。电子邮件内容
12。1字节,备注长度
13。 备注内容
14。尾部
包类型: inDat
命令: 0X0030
名称: 群命令(QQ_CMD_QUN_CMD)
注释: (QQ2005 beta 1)
====================================
修改群名片子命令 0x0E (QQ_QUN_CMD_MODIFY_CARD)
1。头部
2。byte 0, 命令: 0x0E
3。byte 1, 回应码 0x00 成功
4。byte 2-5, 群ID
5。byte 6-9, 自己QQ号
6。尾部 个人建议:这类的内容放到 wiki 上更好一些,可以大家协作,有错误好修改 faint,没注意成了 游客了...... faint,没注意成了 游客了......
得慢慢来啊。 毕竟,我没有那么多精力。:( 我有点晕 :?