QQ协议
QQ协议添加好友应答包
类 型: InPacket
命 令: 0x0009
名 称: 添加好友应答包(QQ_CMD_ADD_FRIEND)
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 - - 我的QQ号的字符串形式
03 - 01 分隔符0x1F
04 - 01 回复码,成功还是需要认证
00 PacketTail - - -
/**
这个添加好友的应答包,格式是
1. 头部
2. 我的QQ号的字符串形式
3. 分隔符1字节,0x1F
4. 回复码,成功还是需要认证
5. 尾部
*/
添加好友请求包
类 型: OutPacket
命 令: 0x0009
名 称: 添加好友需要认证请求包(QQ_CMD_ADD_FRIEND)
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 - - 认证的目的对象的QQ号的字符串形式
00 PacketTail - - -
/**
这个是添加好友的时候用的包,这个和AddFriendAuth有什么关系呢,AddFriend
是最初始的请求包,要加一个好友的时候,首先发这个包,如果对方不需要验证,那
就是成功了,如果需要验证,就还要继续发请求。这个包格式是
1. 头部
2. 要加的人的QQ号的字符串形式
3. 尾部
*/
用来删除好友命令应答包
类 型: InPacket
命 令: 0x000A (QQ_CMD_DELETE_FRIEND)
名 称: 用来删除好友命令
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 应答码
00 PacketTail - - -
/**
<pre>
删除好友的回复包,格式为
1. 头部
2. 应答码,1字节
3. 尾部
</PRE>
用来删除好友命令请求包
类 型: OutPacket
命 令: 0x000A (QQ_CMD_DELETE_FRIEND)
名 称: 用来删除好友命令
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 - - 要删除的好友的QQ号的字符串形式
00 PacketTail - - -
/**
<pre>
这个包用来删除一个好友,格式为:
1. 头部
2. 要删除的好友的QQ号的字符串形式
3. 尾部
</PRE>
添加好友需要认证应答包
类 型: InPacket
命 令: 0x000B
名 称: 添加好友需要认证应答包(QQ_CMD_ADD_FRIEND_AUTH)
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 应答码,1字节
00 PacketTail - - -
/**
这个包是发送好友认证信息的确认包,格式为
1. 头部
2. 应答码,1字节
3. 尾部
这个包并不是说对方已经同意了你加他为好友,只不过是说明你的请求信息已经到达而已
*/
[ Notes ]
这个包并不是说对方已经同意了你加他为好友,只不过是说明你的请求信息已经到达而已
添加好友需要认证请求包
类 型: OutPacket
命 令: 0x000B
名 称: 添加好友需要认证请求包(QQ_CMD_ADD_FRIEND_AUTH)
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 - - 认证的目的对象的QQ号的字符串形式
03 - 01 分隔符0x1F
04 - 01 命令,是请求还是拒绝请求,还是同意请求
05 - 01 分隔符0x1F
06 - - 附带的消息
00 PacketTail - - -
/**
这个包是用来处理添加好友需要认证的情况,格式为
1. 头部
2. 认证的目的对象的QQ号的字符串形式
3. 分隔符1字节,0x1F
4. 命令,是请求还是拒绝请求,还是同意请求,1字节
5. 分隔符1字节,0x1F
6. 附带的消息
7. 尾部
*/
改变在线状态命令应答包
类 型: InPacket
命 令: 0x000D (QQ_CMD_CHANGE_STATUS)
名 称: 改变在线状态命令应答包
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 应答码,0x30表示成功
00 PacketTail - - -
/**
这个是用户自己改变在线状态的应答包,格式是
1. 头部
2. 一个字节的应答码,0x30表示成功,定义在QQ接口中
3. 尾部
*/
改变在线状态命令请求包
类 型: OutPacket
命 令: 0x000D (QQ_CMD_CHANGE_STATUS)
名 称: 改变在线状态命令
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 想要切换到的状态
03 001-004 04 是否显示虚拟摄像头
00 PacketTail - - -
/**
改变状态的包,格式为
1. 头部
2. 想要切换到的状态,一个字节
3. 是否显示虚拟摄像头,4字节
4. 尾部
*/
得到好友列表命令应答包
类 型: InPacket
命 令: 0x0026 (QQ_CMD_DOWNLOAD_GROUP_FRIEND)
名 称: 得到好友列表命令
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-001 02 下一次好友列表开始位置,这个位置是你所有好友排序后的位置,如果为0xFFFF,那就是你的好友已经全部得到了每次都固定的返回50个好友,所以如果不足50个了,那么这个值一定是0xFFFF了
03 002-005 04 好友QQ号,4字节
04 006-007 02 头像,2字节
05 008-008 01 年龄,1字节
06 009-009 01 性别,1字节
07 010-010 01 昵称长度,1字节
08 - - 昵称,不定字节,由8指定
09 - 02 2个未知字节
10 - 01 1字节扩展标志
11 - 01 1字节通用标志
12 - - 重复3到11的结构
00 PacketTail - - -
/**
请求好友列表的应答包,格式为
1. 头部
2. 下一次好友列表开始位置,这个位置是你所有好友排序后的位置,如果为0xFFFF,那就是你的好友已经全部得到了
每次都固定的返回50个好友,所以如果不足50个了,那么这个值一定是0xFFFF了
3. 好友QQ号,4字节
4. 头像,2字节
5. 年龄,1字节
6. 性别,1字节
7. 昵称长度,1字节
8. 昵称,不定字节,由8指定
9. 2个未知字节
10. 1字节扩展标志,bit1表示是否有QQ Show,其他未知
11. 1字节通用标志
bit1 => 会员
bit4 => TCP方式登陆
bit5 => 开发移动QQ
bit6 => 绑定到手机
bit7 => 是否有摄像头
12. 重复3到11的结构
13.尾部
*/
得到在线好友列表命令应答包
类 型: InPacket
命 令: 0x0027 (QQ_CMD_GET_FRIEND_ONLINE)
名 称: 得到在线好友列表命令
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-001 02 下一次好友列表开始位置,这个位置是你所有好友排序后的位置,如果为0xFFFF,那就是你的好友已经全部得到了每次都固定的返回50个好友,所以如果不足50个了,那么这个值一定是0xFFFF了
03 001-030 30 30字节的FriendStatus结构
04 031-032 02 2个未知字节
05 033-033 01 1个字节扩展标志
06 034-034 01 1个字节通用标志
07 035-036 02 2个未知字节
08 037-037 01 结束符,0,应该是c语言的关系,当作字符串结尾
00 PacketTail - - -
/**
得到在线好友列表的应答包,格式为
1. 头部
2. position,和GetFriendListReplyPacket中的position一样
3. 30字节的FriendStatus结构
4. 2个未知自己
5. 1个字节扩展标志
6. 1个字节通用标志
7. 2个未知自己
8. 结束符,0,应该是c语言的关系,当作字符串结尾
9. 尾部
*/
得到在线好友列表命令请求包
类 型: OutPacket
命 令: 0x0027 (QQ_CMD_GET_FRIEND_ONLINE)
名 称: 得到在线好友列表命令
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 1个字节,只有值为0x02或者0x03时服务器才有反应,不然都是返回0xFF经过初步的试验,发现3得到的好友都是一些系统服务,号码比如72000001到72000013,就是那些移动QQ,会员服务之类的;而2是用来得到好友的
03 001-001 01 1个字节,得到好友列表的位置,也就是position,这个position的含义和GetFriendListPacket中的position相同,只不过这个position单位是1 byte,当然也有可能GetFriendListPacket中的position也是1 byte,不好说
04 002-002 01 1个未知字节,设成0
05 003-004 02 2个未知字节,设成0
00 PacketTail - - -
/**
<pre>
获取在线好友列表的请求包,格式为
1. 头部
2. 1个字节,只有值为0x02或者0x03时服务器才有反应,不然都是返回0xFF
经过初步的试验,发现3得到的好友都是一些系统服务,号码比如72000001到72000013,
就是那些移动QQ,会员服务之类的;而2是用来得到好友的
3. 1个字节,得到好友列表的位置,也就是position,这个position的含义和
GetFriendListPacket中的position相同,只不过这个position单位是1 byte,
当然也有可能GetFriendListPacket中的position也是1 byte,不好说
4. 1个未知字节,设成0
5. 2个未知字节,设成0
6. 尾部
</PRE>
群管理员设置命令应答包
类 型: InPacket
命 令: 0x0030 (QQ_CMD_QUN_CMD)
名 称: 群命令
子命令: 0x1B (QQ_QUN_CMD_ADMIN)
名 称: 群管理员设置命令
版 本: QQ2005 beta 1
分析者: yunfan
整 理: LongBow
更 新: 2005/05/27
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 子命令: 0x1B
03 001-001 01 回应码 0x00 成功
04 002-005 04 群ID
05 006-009 04 群版本号
06 010-013 04 要操作的成员QQ号
07 014-014 01 功能字节。 0x00:删除操作,0x01:设置操作
00 PacketTail - - -
群管理员设置协议分析
包类型: 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。尾部
群管理员设置命令请求包
类 型: OutPacket
命 令: 0x0030 (QQ_CMD_QUN_CMD)
名 称: 群命令
子命令: 0x1B (QQ_QUN_CMD_ADMIN)
名 称: 群管理员设置命令
版 本: QQ2005 beta 1
分析者: yunfan
整 理: LongBow
更 新: 2005/05/27
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 子命令: 0x1B
03 001-004 04 群ID
04 005-008 04 要操作的成员QQ号
05 009-009 01 一个功能字节。 0x00:删除操作, 0x01:设置操作
00 PacketTail - - -
群管理员设置协议分析
包类型: 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。尾部
上传下载好友备注命令应答包
类 型: InPacket
命 令: 0x003E (QQ_CMD_FRIEND_DATA_OP)
名 称: 上传下载好友备注命令
包体内容
子命令:0x01或0x02
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 子命令
03 001-001 01 应答码 0x0表示成功
00 PacketTail - - -
子命令:0x03
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 子命令
03 001-004 04 操作对象的QQ号
04 005-005 01 1个未知字节,全0
05 006-006 01 分隔符0x1
06 - - 以下为备注信息,一共7个域,域的顺序依次次是姓名、手机、电话、地址、邮箱、邮编、备注每个域都有一个前导字节,这个字节表示了这个域的字节长度
00 PacketTail - - -
/**
上传下载好友备注的回复包,格式为:
1. 头部
2. 子命令,1字节
3. 如果是0x1或者0x02,后面的部分为
i. 1字节应答码,0x0表示成功
如果是0x3,后面的部分为(后面也可能什么都没有,说明这个好友没有备注)
i. 操作对象的QQ号,4字节
ii. 一个未知字节0
iii. 分隔符0x1
iv. 以下为备注信息,一共7个域,域的顺序依次次是
姓名、手机、电话、地址、邮箱、邮编、备注
每个域都有一个前导字节,这个字节表示了这个域的字节长度
4. 尾部
*/
上传下载好友备注命令请求包
类 型: OutPacket
命 令: 0x003E (QQ_CMD_FRIEND_DATA_OP)
名 称: 上传下载好友备注命令
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 子命令
03 001-001 01 未知1字节,0x00
04 002-005 04 操作对象的QQ号,4字节
05 006-006 01 未知1字节,0x00
06 - - 以下为备注信息,一共7个域,域的顺序依次次是姓名、手机、电话、地址、邮箱、邮编、备注每个域都有一个前导字节,这个字节表示了这个域的字节长度
00 PacketTail - - -
/**
上传下载好友备注的消息包,格式为
1. 头部
2. 子命令,1字节
3. 未知1字节,0x00
4. 操作对象的QQ号,4字节
5. 未知1字节,0x00
6. 以下为备注信息,一共7个域,域的顺序依次次是
姓名、手机、电话、地址、邮箱、邮编、备注
每个域都有一个前导字节,这个字节表示了这个域的字节长度
7. 尾部
Note: 如果子命令是0x01(上传备注),所有部分都要
如果子命令是0x02(删除好友),仅保留1,2,4部分
如果子命令是0x03(下载备注),仅保留1,2,4部分
*/
[ Notes ]
子命令是0x01(上传备注),所有部分都要
子命令是0x02(删除好友),仅保留1,2,4部分
子命令是0x03(下载备注),仅保留1,2,4部分
高级搜索命令应答包
类 型: InPacket
命 令: 0x0061 (QQ_CMD_ADVANCED_SEARCH)
名 称: 高级搜索命令
包体内容
序号 位置 字段 长度 内容
00 PacketHead - - -
01 PacketBody - - -
02 000-000 01 应答码,0x00:还有数据,0x01:没有更多数据了,0x01:后面没有内容了
03 应答码0x00 001-002 02 页号,从1开始,如果页号后面没有内容了,那也说明是搜索结束了
04 003-007 04 QQ号
05 008-008 01 性别,表示下拉框索引
06 009-010 02 年龄
07 011-011 01 是否在线,0x01表示在线,0x00表示离线
08 012-012 01 昵称长度
09 - - 昵称
10 - 02 省份索引这个索引是以"不限"为1开始计算的,和请求包不一样哈,请求包的时候"不限"的索引是0
11 - 02 城市索引这个索引是以"不限"为0开始算的,shit
12 - 02 头像索引
13 - 01 如果有更多结果,重复04-12部分
00 PacketTail - - -
/**
高级搜索的回复包
1. 头部
2. 回复嘛,1字节,0x00表示还有数据,0x01表示没有更多数据了,当为0x01时,后面没有内容了
当为0x00时,后面才有内容
3. 页号,从1开始,2字节,如果页号后面没有内容了,那也说明是搜索结束了
4. QQ号,4字节
5. 性别,1字节,表示下拉框索引
6. 年龄,2字节
7. 在线,1字节,0x01表示在线,0x00表示离线
8. 昵称长度,1字节
9. 昵称
10. 省份索引,2字节,土鳖啊土鳖,这个索引是以"不限"为1开始计算的,和请求包不一样哈,请求包的时候
"不限"的索引是0
11. 城市索引,2字节,这个索引是以"不限"为0开始算的,shit
13. 头像索引,2字节
14. 如果有更多结果,重复4 - 13部分
15. 尾部
*/ 那我把我的QQ给你,你帮我弄一下,把所有东西激活,最后充分利用... 么意思,看着都累~ Originally posted by 沉睡月之海 at 2005-9-13 08:13:
么意思,看着都累~
我就不信,都成精了!
[ Last edited by α草摩由希ι on 2005-9-28 at 20:56 ] 斑竹辛苦哩 我不是很会耶
页:
[1]