免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2172 | 回复: 0
打印 上一主题 下一主题

QQ协议分析之消息数据包 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 03:43 |只看该作者 |倒序浏览
*   发送消息的包,格式为
*   1.   头部   7个字节(1.   包头标志,1字节,0x02,2.   客户端版本代码,2字节,3.   命令,2字   节,4.   包序号,   2字节)
*   2.   发送者QQ号,4个字节
*   3.   接收者的QQ号,4个字节
*   4.   发送者QQ版本,2字节
*   5.   发送者QQ号,4字节
*   6.   接收者QQ号,4个字节(奇怪,为什么要搞两个在里面)
*   7.   发送者QQ号和session   key合在一起用md5处理一次的结果,16字节
*   8.   消息类型,2字节(41)
*   9.   会话ID,2字节,如果是一个操作需要发送多个包才能完成,则这个id必须一致
*   10.   发送时间,4字节
*   11.   发送者头像,2字节
*   12.   字体信息,4字节,设成0x00000001吧,不懂具体意思
*   13.   消息分片数,1字节,如果消息比较长,这里要置一个分片值,QQ缺省是700字节一个分片,这个700字节是纯消息,
*   不包含其他部分
*   14.   分片序号,1字节,从0开始(55)
*   15.   消息的id,2字节,同一条消息的不同分片id相同
*   16.   消息方式,是发送的,还是自动回复的,1字节
*   17.   消息内容,最后一个分片的结尾需要追加一个空格。
*   Note:   结尾处的空格是必须的,如果不追加空格,会导致有些缺省表情显示为乱码
*   18.   消息的尾部,包含一些消息的参数,比如字体颜色啦,等等等等,顺序是
*   1.   字体修饰属性,bold,italic之类的,2字节,已知的位是
*   i.   bit0-bit4用来表示字体大小,所以最大是32
*   ii.   bit5表示是否bold
*   iii.   bit6表示是否italic
*   iv.   bit7表示是否underline
*   2.   颜色Red,1字节
*   3.   颜色Green,1字节
*   4.   颜色Blue,1字节
*   5.   1个未知字节,置0先
*   6.   消息编码,2字节,0x8602为GB,0x0000为EN,其他未知,好像可以自定义,因为服务器好像不干涉
*   7.   字体名,比如0xcb,   0xce,   0xcc,   0xe5表示宋体
*   19.   1字节,表示18和19部分的字节长度
*   20.   包尾部
*
*   请求传送文件的包,这是这个包的另一种用法,其格式为
*   1   -   14.   1到14部分均与发送消息包相同,只有第8部分不同,对于UDP的请求,8部分是0x0035,对于TCP,是0x0001
*   15   -   17.   怀疑也和发送消息包相同,但是在这种情况中,这部分没有使用,为全0,一共11个0字节
*   18.   传输类型,1字节,表示是传文件还是传表情
*   19.   连接方式字节,UDP是0,   TCP是3
*   20.   4个字节的发送者外部ip地址(也就是可能为代理地址)
*   21.   2个字节的发送者端口
*   22.   2个字节的端口,第一个监听端口,TCP没有这个部分
*   23.   4个字节的地址,真实IP
*   24.   2个字节的端口,第二个而监听端口
*   25.   空格符号做为上述信息的结束,一个字节,0x20
*   26.   分隔符0x1F
*   27.   要传送的文件名
*   28.   分隔符0x1F
*   29.   字节数的字符串形式后跟 "   字节 ",比如文件大小3字节的话,就是 "3   字节 "这个字符串的编码形式
*   30.   尾部
*
*   同意传送文件的包,格式为
*   1   -   24.   除了8部分,其他均与发送消息包相同。对于UDP的情况,8部分是0x0037,TCP是0x0003。
*   UDP时,最后的本地ip和端口都是0;TCP时没有22部分
*   25.   尾部
*
*   拒绝接收文件的包,格式为
*   1   -   19.   除了8部分,均与同意传送文件包相同。对于UDP的情况,8部分是0x0039,对于TCP,是0x0005
*   20.   尾部
*
*   通知我的IP信息,格式为
*   1   -   24.   除了8部分,均与请求传送文件包相同。8部分是0x003B
*   25.   尾部
*
*   取消传送文件,格式为
*   1   -   18.   除了8部分,均与请求传送文件包相同。8部分是0x0049
*   19.   尾部
*
*   要求别人主动连接我的包,格式为
*   1   -   18.   除了8部分,均与请求传送文件包相同。8部分是0x003F
*   19.   尾部
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP