《即时消息目前分析.doc》由会员分享,可在线阅读,更多相关《即时消息目前分析.doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目前看起来是这样: 加密解密 : QQ基本协议目前为止用了两种公开的加密算法:十六轮的TEA(Tiny Encryption Algorithm)和MD5。TEA是一种小型的可逆加密算法,但是TX使用了独特的填充反馈机制。如果整个明文不是8的倍数,还要在头部用16字节的随机数填充,然后在尾部补0,直到是8的倍数。QQ数据明文被分成N个8字节的明文单元,用TEA以16字节的密钥依次加密每个单元产生8字节的密文,密文再参与下一单元的加密。由于头部填充了随机字节,所以即使是同一明文的密文,也会因随机数的不同以及反馈机制而不同。推荐的TEA 算法应该是32 轮,但是QQ 目前就使用了16 轮,TEA
2、是通过增加加密算法的轮数来提高安全性的, 不是使用复杂的算法。MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的散列算法之一(又译摘要算法、哈希算法)。QQ的包一般都是加密的(包头包尾除外),但是有个别包是不加密的,QQ使用TCP协议进行文件传送的时候大多没有加密。以后如果不做特别说明,则默认这个包是需要加密的。此外,用什么密钥加密也有不同,不过基本上都是用会话密钥加密。这里要注意一下,有时候你收到的包可能不是用会话密钥加密的,比如离线的消息。你人都不在了,哪里来的会话密钥?所以服务器在你下次登录的时候,会把你还没收到
3、过的消息用密码密钥加密再传给你。这是一种特殊的情况,要分清楚。以下是对主要用到的各种密钥的简单解释:名称描述临时密钥即可以在数据包中直接提取的加密密钥,一般是数据段的前16Bytes。密码密钥先把QQ密码的字符串用MD5加密得到一个16字节的Byte数组,再把此数组作为明文用MD5加密,之后得到的是一个16字节的Byte数组。会话密钥登录认证成功后,协商出的密钥(16Bytes),用于后续报文解密使用。UDP和TCP: QQ基本通信协议支持TCP以及UDP两种方式,而且两种方式基本数据结构大同小异,只是TCP多了一个数据包长度描述的头部信息。一般使用的是UDP协议。QQ基本协议采用应答机制,也
4、就是说发送的每一个包服务器都会回应对应的包的执行结果,服务器发送的每一个包你也要回应(登出包除外,它没回应。),请求和响应通过相同的序列号来进行配对(请求代码也应该相同)。而且每种请求的发起方都是相同的。这也许是因为UDP协议的不可靠性吧。由此,QQ支持 UDP 和 TCP 登录(如果使用 HTTP 代理,则相当于 TCP登录),可以在登录设置中选择协议登陆,默认为UDP协议。协议类型:我们尝试把QQ的协议进行分类: 文字聊天协议族(TCPF, Text Chatting Protocol Family):它主要支持与其它QQ客户端进行文字聊天。TCPF是建立在UDP协议之上。UDP数据包中的
5、第一个字符02为这个协议族的标识。TCPF的服务器使用8000号端口,腾讯的QQ客户端软件一般从4000号端口开始尝试使用,试验发现如果一台PC上有两个QQ登录则一个使用4000端口号,另一个使用4001端口号。但实际上,对客户端使用的端口号并没有限制。目前的研究集中在TCPF上。其它未知可能存在的协议族:我们观察到QQ除了与TCPF服务器通信以外,还有与其它的服务器使用UDP进行通信。目前我们观察到的服务器为 218.17.217.111 : 8000,客户端使用与TCPF不同的端口。目前观察到的从客户端发出的包以06开头,而服务器返回的包则以01开头。目前其具体作用未知。我们注意到一个有趣
6、的现象是,如果选择离线后重新上线,那么在发出登录包之前,这个通讯已经开始。我们暂时把它命名为数据传输协议族(DTPF,Data Transfer Protocol Family)。最新的研究发现,它传递的是QQ Show的图片数据。语音、视频聊天:目前还没有开始分析,尚未知道是使用UDP还是TCP协议。聊天室:没有分析,应该是TCP协议。随着对这些协议分析的开始,我们会给它们更精细的划分和恰当的命名。不同种类的包头包尾:QQ 协议有多种包头,包头包括头字节以及包体之前的固定信息,每种包头都分别代表了一类用途的包,但是不是所有的包都有包尾,以下是一些存在的包头包尾格式参考头字节包尾头字节之后包头
7、的内容说明0x00无发送方 QQ 版本,或者是服务器版本:2 字节 随机密钥,1 字节,如果这个字节是 0x23,那么密钥就是 0x23232323,这个密钥用来加密 发送者和接受者的 QQ 号。加密算法: QQ 号取反再与密钥异或 发送者 QQ 号的加密形式,4 字节 接受者 QQ 号的加密形式,4 字节0x00 系列的包,用在文件传输过程中,传递控制信息。也会出现在点对点通信中。0x020x03源标志, 2 字节,表示了这个包从何处来,主要用来标识客户端版本,如果是0x010x00,表明是由服务器发送包命令, 2 字节 包序号, 2 字节, 原则是保证短期内这个序号不要重复就可以,一般我们
8、处理的时候都是递增,到最大再归0QQ号码(若请求方为客户端,则存在此字段,否则无)0x02 系列包主要完成一些基本任务,基本上处理了这个系列的包,QQ 的功能就差不多了。0x03无格式同第一类0x03 系列的包,用在文件传输过程中,传递数据信息0x040x03客户端版本号,2 字节 整个的包长,2 字节 序号,2 字节 QQ 号码,4 字节 未知的 8 字节0x04 系列的包,用在文件传输过程中,如果使用服务器中转模式传送文件,则用到这些包 0x06未知未知未知主要QQ命令:一、QQ包类型定义:1)QQ基本协议族包头0x022) QQ基本协议族包尾0x033) QQ P2P协议族0x004)
9、04开头的协议族,未知含义,文件中转包有用到过0x04二、用于网络硬盘协议族:1) 正常登陆0x0A2) 隐身登陆 0x283) 性别-男0x04) 性别-女 0x15) 性别-未知 (byte)0xFF三、用户标志,比如QQFriend类,好友状态改变包都包含这样的标志1)标志-QQ会员 0x012) 标志-手机 0x103) 标志-手机绑定 0x204) 在线状态-在线 0x0A5) 在线状态-离线 0x146) 在线状态-离开 0x1E7) 在线状态-隐身 0x288) 有摄像头 0x809) 绑定了手机 0x4010) 移动QQ用户 0x2011) 会员 0x0212) TM登录 0x
10、40000四、用户属性,在UserProperty中,相关命令0x00651)有个性签名 0x400000002) 有自定义头像 0x1000003) 好友列表从第一个好友开始 0x00004) 好友列表已经全部得到 0xFFFF5) 在线好友列表从第一个好友开始 0x006) 在线好友列表已经全部得到 (byte)0xFF7) 用户属性列表从第一个好友开始 0x00008) 用户属性列表结束 0xFFFF五、回复常量1)通用常量,操作成功 0x002)对方已经是我的好友 (byte)0x993)请求登录令牌成功 0x004) 登录信息-重定向 0x015) 登录信息-登录失败 0x056)
11、改变在线状态成功 0x307) 发送认证消息成功 0x308) 申请中转服务器,重定向 0x00019) 申请中转服务器成功 0x000010) 要发送的图片太大 0x000311) 命令常量 - 登出 0x000112) 命令常量 - 保持在线状态 0x000213) 命令常量 - 修改自己的信息 0x000414) 命令常量 - 查找用户 0x000515) 命令常量 - 得到好友信息 0x000616) 命令常量 - 添加一个好友 0x000917) 命令常量 - 删除一个好友 0x000A18) 命令常量 - 发送验证信息 0x000B19) 命令常量 - 改变自己的在线状态 0x00
12、0D20) 命令常量 - 确认收到了系统消息 0x001221) 命令常量 - 发送消息 0x001622) 命令常量 - 接收消息 0x001723) 命令常量 - 把自己从对方好友名单中删除 0x001C24) 请求一些操作需要的密钥,比如文件中转,视频也有可能 0x001D25) 命令常量 - 登陆 0x002226) 命令常量 - 得到好友列表 0x002627) 命令常量 - 得到在线好友列表 0x002728) 命令常量 - 发送短消息 0x002D29) 命令常量 - 群相关命令 0x003030) 命令常量 - 测试连接 0x003131) 命令常量 - 分组数组操作0x003
13、C32) 命令常量 - 上传分组中的好友QQ号列表 0x003D33) 命令常量 - 好友相关数据操作 0x003E34) 命令常量 - 下载分组中的好友QQ号列表 0x005835) 命令常量 - 好友等级信息相关操作 0x005C36) 命令常量 - 隐私数据操作 0x005E37) 命令常量 - 群数据操作命令 0x005F38) 命令常量 - 好友高级查找 0x006139) 命令常量 - 请求登录令牌 0x006240) 命令常量 - 用户属性操作 0x006541) 命令常量 - 临时会话操作 0x006642) 命令常量 - 个性签名的操作 0x006743) 命令常量 - 接收
14、到系统消息 0x008044) 命令常量 - 好友改变状态 0x008145) 命令常量 - 天气操作 0x00A646) 命令常量 - QQ2005使用的添加好友命令 0x00A747) 命令常量 - 发送验证消息 0X00A848) 命令常量 - 未知命令,调试用途 0xFFFF六、0x005E的子命令1)只能通过号码搜到我 0x032)共享地理位置 0x04七、是否设置一个选项,用在如0x005E这样的命令中,其他地方如果类似也可使用1)设置0x012)取消设置 0x00八、0x005C的子命令1)得到好友等级信息 0x02九、0x005F的子命令1)得到群在线成员 0x012)命令常量
15、 - 请求中转 0x00213)命令常量 - 请求得到自定义表情 0x00224)命令常量 - 开始传送 0x00235) 命令常量 - 请求开始传送 0x0026十、网络硬盘协议族1)开始会话 0x00002)身份认证 0x04013)网络硬盘密码操作 0x04024)请求网络硬盘服务器列表 0x04095)列出我的网络硬盘目录 0x1C0C6) 新建文件夹0x1C0D7) 删除 0x1C0E8) 重命名 0x1C0F9) 移动 0x1C1010) 上传文件 0x1C1611) 下载文件 0x1C1712) 得到文件实际大小 0x1C1813) 结束上传 0x1C1A14) 免费申请开通网络
16、硬盘 0x1C1C15) 准备上传或下载 0x1C1D16) 得到共享网络硬盘列表 0x1F4117) 得到某人的共享网络硬盘目录结构 0x1F4218) 得到某个目录对什么好友共享了 0x1F4319) 设置共享列表 0x1F44十一、网络硬盘子命令,用于0x04021) 密码认证 0x02) 设置网络硬盘密码 0x13) 取消网络硬盘密码0x2十二、0x0401的状态码1) 网络硬盘认证需要密码 0x1十三、网络硬盘回复码1) 认证失败 0x0402十四、网络硬盘缺省目录id1) 我的文档 0x12) 我的图片 0x23) 我的多媒体 0x34) 个人助理,其内部的名称是System 0x
17、115) 网络收藏夹0x126) 网络记事本,它的父目录是System,内部名称是Note 0x137) 自定义表情0x148) 自定义头像,它的父目录是System,内部名称是Chatword 0x169) QQ网络相册 0x1810) 根目录0xFFFFFFFF11) 网络硬盘保留的用于系统文件夹最大id 0x80十五、网络硬盘上的文件属性1) 是一个目录 0x12) 标明一个文件还没有上传完毕 0x23) 是否设置了共享 0x84) 是一个用户号码 0x405) 网络收藏夹文件0x806) 网络相册文件 0x200十六、03协议族1) 请求得到好友自定义头像数据 0x00022) 请求得
18、到好友自定义头像信息 0x0004十七、用于0x001D1) 请求密钥类型 - 未知 0x32) 请求密钥类型 - 文件中转密钥 0x43) 请求密钥类型 - 未知 0x64) 请求密钥类型 - 未知 0x75) 请求密钥类型 - 未知 0x86) 群操作命令 - 创建群 0x017) 群操作命令 - 修改群成员 0x028) 群操作命令 - 修改群资料 0x039) 群操作命令 - 得到群资料 0x0410) 群操作命令 - 激活群 0x0511) 群操作命令 - 搜索群 0x0612) 群操作命令 - 加入群 0x0713) 群操作命令 - 加入群的验证消息 0x0814) 群操作命令 -
19、 退出群0x0915) 群操作命令 - 发送群消息 0x0A16) 群操作命令 - 得到在线成员 0x0B17) 群操作命令 - 得到成员资料 0x0C18) 群操作命令 - 修改群名片 0x0E19) 群操作命令 - 批量得到成员群名片中的真实姓名 0x0F20) 群操作命令 - 得到某个成员的群名片 0x1021) 群操作命令 - 提交组织架构到服务器 0x1122) 群操作命令 - 从服务器获取组织架构 0x1223) 群操作命令 - 提交成员分组情况到服务器 0x1324) 群操作命令 - 得到各种version id 0x1925) 群操作命令 - 扩展格式的群消息 0x1A26)
20、群操作命令 - 设置成员角色 0x1B27) 群操作命令 - 转让自己的角色给他人 0x1C28) 解散群,如果自己是群的创建者,则使用这个命令 0x1D29) 群操作命令 - 创建临时群 0x3030) 群操作命令 - 修改临时群成员列表 0x3131) 群操作命令 - 退出临时群 0x3232) 群操作命令 - 得到临时群资料 0x3333) 群操作命令 - 修改临时群资料 0x3434) 群操作命令 - 发送临时群消息 0x3535) 群操作命令 - 子群操作 0x3636) 群操作命令 - 激活临时群 0x3737) 群操作命令回复 - 不存在这个群 0x0238) 群操作命令回复 -
21、 群已经被删除 0x0339) 群操作命令回复 - 你已经不是临时群的成员 0x0440) 群操作命令回复 - 你已经不是固定群的成员 0x0A十八、临时会话操作回复码1) 临时会话消息发送成功,但是对方可能不在线,无法及时回复 0x02十九、短信回复码,用来表示单条短信的状态1) 短信发送成功 0x002) 队列中,准备发送 0x013) 发送失败 0x044) 群类型常量 - 固定群 0x015) 临时群类型常量 - 多人对话0x016) 临时群类型常量 - 讨论组 0x027) 群成员角色操作 - 设置管理员 0x018) 群成员角色操作 - 取消管理员 0x009) 群成员角色标志位
22、- 管理员 0x0110) 群成员角色标志位 - 股东 0x0211) 群操作子命令 - 添加成员,用在修改成员列表命令中 0x0112) 群操作子命令 - 删除成员,用在修改成员列表命令中 0x0213) 群操作子命令 - 得到群内的讨论组列表 0x0214) 群操作子命令 - 得到多人对话列表 0x0115) 群认证消息类型 - 请求加入群 0x0116) 群认证消息类型 - 同意加入群 0x0217) 群认证消息类型 - 拒绝加入群 0x0318) 加入群的回复码 - 加入成功 0x0119) 加入群的回复码 - 对方需要认证 0x0220) 加入群的回复码 - 群禁止加入 0x0321
23、) 群的搜索方式 - 根据群号搜索 0x0122) 群的搜索方式 - 搜索示范群 0x02二十、操作码,用在设置角色时1) 取消管理员 0x002) 设置管理员 0x01二十一、群消息的content type1) 消息中不包含自定义表情 0x00012) 消息中包含自定义表情 0x00023) 消息回复类型 - 正常回复 0x014) 消息回复类型 - 自动回复0x02二十二、子命令常量,用于命令0x00271) 得到在线好友 0x22) 得到系统服务 0x3二十三、子命令常量,服务于命令0x003C1) 服务器端数据操作 - 上传组名 0x22) 服务器端数据操作 - 下载组名 0x1二十
24、四、子命令常量,用于命令0x00661) 临时会话操作 - 发送临时会话消息 0x01二十五、子命令常量,服务于命令0x003E1) 服务器端数据操作 - 批量下载好友备注 0x02) 服务器端数据操作 - 上传好友备注 0x13) 服务器端数据操作 - 添加好友到列表中 0x24) 服务器端数据操作 - 下载好友备注 0x3二十六、子命令常量,用于子命令0x00671) 修改个性签名 0x012) 删除个性签名 0x023) 得到个性签名0x03二十七、子命令,用于0x00651) 得到用户属性 0x01二十八、子命令,用于0x00A61) 得到天气数据 0x01二十九、这两个常量用在下载好
25、友分组时1) 号码类型 - 号码代表一个用户 0x12) 号码类型 - 号码是一个群 0x4三十、消息类型,就是ReceiveIMHeader中的类型,对于有些类型,我们做为通知来处理,而不是显示在消息窗口中,比如请求加入,验证之类的消息。1)来自好友的消息 0x00092)来自陌生人的消息 0x000A3)手机短消息 - 普通绑定用户 0x000B;4)手机短消息 - 普通手机0x000C;5)会员登录提示,这个消息基本没内容,就是用来提醒你是会员,可以显示一个窗口来告诉你上次登录时间和ip 0x0012;6)手机短消息 - 移动QQ用户 0x0013;7)手机短消息 - 移动QQ用户(使用
26、手机号描述) 0x0014;8) QQ直播消息 0x0018;9) 好友属性改变通知 0x001E;10) 临时会话消息 0x001F;11) 未知类型的群消息,在2003时是普通群消息 0x0020;12)通知我被加入到一个群,这个群先前已经建立,我是后来被加的 0x0021;13)我被踢出一个群 0x0022;14)有人请求加入群 0x002315)同意对方加入群 0x0024;16)拒绝对方加入群 0x0025;17)通知我被加入到一个群,我是在群被创建的时候就被加的 0x0026;18)临时群消息 0x002A;19)固定群消息 0x002B;20)群通知0x002C;21)收到的系统
27、消息 0x0030;22)收到个性签名改变通知 0x0041;23)收到自定义头像变化通知 0x0049;三十一、QQ直播消息类型1) 网络硬盘通知 0x0400三十二、移动QQ手机短信的发送者描述类型1) 用QQ号描述发送者0x002) 用手机号码描述发送者 0x01三十三、系统消息类型1) 同一个QQ号在其他地方登录,我被踢出 0x01三十四、消息类型,这个类型比上面的类型又再低一级,他们基本从属于QQ_RECV_IM_FRIEND,所以他们是normalIMHeader中的类型。1)普通文件消息 0x000B;2)一个TCP连接请求 0x0001;3)接收TCP连接请求 0x0003;4
28、)拒绝TCP连接请求 0x0005;5)UDP连接请求 0x0035;6)接受UDP连接请求 0x0037;7)拒绝UDP连接请求 0x0039;8) 通知文件传输端 0x003B;9)请求对方主动连接 0x003F;10)未知含意 0x0041;11)未知含意,0x0041的回复 0x0042;12)通知文件中转服务器信息 0x004B;13)取消TCP或者UDP连接请求 0x0049;三十五、以下常量用于消息中的表情,对于自定义表情的表示格式参考NormalIM.java的注释1)系统自带表情前导字节 0x14;2)自定义表情前导字节 0x15;3)新自定义表情,普通格式 0x33;4)已
29、经出现过的自定义表情 0x34;5)新自定义表情,存储在服务器端 0x36;6)已经出现过的服务器端自定义表情 0x37;7) 未知自定义表情格式描述1,未知含义 0x38;8)未知自定义表情格式描述2,未知含义 0x39;三十六、这三个常量用在添加好友认证的包中,表示你是请求,或者你拒绝还是同意别人的请求1) 通过认证 0x302) 拒绝认证 0x313) 请求认证 0x32三十七、QQ_SYS_ADD_FRIEND_REQUEST_EX消息中的最后一个字节标志,是否允许对方加自己为好友1) 允许对方也加自己为好友 0x012) 不允许对方加自己为好友 0x02三十八、这是搜索用户时指定的搜
30、索类类型,比如是查看全部在线用户,还是自定义查找1) 看谁在线上 0x312) 自定义搜索 0x30下面都是文件传输相关,这些常量是很早之前定义的,现在仅留做参考,是否正确无法保证一、 文件数据信息包的命令类型1)heart beat 0x0001;2) heart beat的确认 0x0002;3)文件传输已完成 0x0003;4)文件操作 0x0007;5) 文件操作的确认 0x0008;二、 QQ_FILE_CMD_FILE_OP携带的信息类型1) 文件基本信息 0x12) 文件数据 0x23) 文件EOF 0x3三、文件控制信息传输包的命令类型1)发送者say hello 0x0031
31、;2) 对发送者hello的确认 0x0032;3)接收者say hello 0x0033;4)对接受者hello的确认 0x0034;5) 对通知IP的确认,即对QQ_IM_NOTIFY_IP的确认 0x003C;6)试探连接 0x003D;7) 试探连接的确认 0x003E;8)主动连接对方0x0040;四、 文件中转信息包的命令类型1) 发送者请求对方提供中转服务 0x00012) 接收者向中转服务器报到 0x00023) 转发包,这个包里面内嵌着一个文件数据信息包0x00034) 传输结束0x00045) 服务器通知可以开始传输数据 0x00056) 我已经准备好 0x0006五、 Q
32、Q_FILE_CMD_REQUEST_AGENT命令的应答类型1) 批准中转请求 0x00002) 我现在忙 0x0001六、 传输类型1) 传输文件 0x652) 传输自定义表情 0x6BQQ使用的主要协议为TCPF,其标志为包的头字节为0x02,包尾为0x03,以下分析均基于TCPF包。TCPF包格式如下:客户端报文格式服务器报文格式2008版之前的QQ:一、 登陆QQ 通信协议的登录过程是从用户输入QQ 号码和密码后点击“登录”按钮后开始的,从先到后按命令子域cmd 可以分为以下几个过程:Touch 过程、PreLoginToken 过程、LoginToken 过程、PreSession
33、Key 过程、SessionKey 过程,其命令子域值分别为:0x0091、0x0062、0x00ba、0x00dd、0x0022。每个过程又分为Request(由客户端发出)和Respond(由服务器发出)2 个子过程。服务器与客户端各自有自己的包序列号,各自先初始一个,然后每次发一个包用当前序列号,再将序列号加1以备下次使用。当为0XFFFF时清零(0X0000)。例如客户向服务器发送命令0X0091,包序列号为0X0410,那么服务器返回命令为0X0091、包序列号为0X0410的包。下一次客户又发了一个命令为0X00BA、包序列号为0X0410+1,即0X0041的包,服务器返回命令为
34、0X00BA、包序列号为0X0041的包的处理结果。(1)0X0091命令(客户端发起)询问服务器本QQ号是否可以在这里登录,具体格式如下。l 发送:02 0F 5F 00 91 01 11 25 DF 2F BF 75 60 28 8C 5D 30 74 A7 52 50 12 CE 54 C2 00 47 7E 1B 21 B7 4D F5 29 36 9E 51 6F AC 02 E7 95 13 A6 8A 27 CE C3 5A 9B 9D 89 6B C2 07 D5 E9 55 9A 03共计60字节,其中第0-10字节为头部,11字节;第11-26字节为临时密钥(随机产生),1
35、6字节;第27-58字节为加密的数据,32字节;第59字节为包尾,1字节。密文(第2758字节)用临时密钥解密后为00 01 01 00 00 00 03 00 00 00 00 3A 3C 0E 21,初始客户端会发送 15 个0x00,作为尝试连接。l 服务器返回1:02 0F 5F 00 91 01 11 C8 38 BD F8 EA 72 0D 1C 1C F0 E7 72 39 F6 84 F2 03共24字节,其中第0-6字节为头部,7字节;第7-22字节为加密的数据,16字节;第23字节为包尾,1字节;密文(第722字节)用初始密钥解密后为00 00, 表示此服务器成功接受连接,
36、不再重定向。 注:可能会有多个服务器接受连接,客户端一般会选择第一个成功接受的服务器l 服务器返回2:02 0F 5F 00 91 01 11 E3 0E 5A 51 8F F9 96 B4 6E DE A2 9F 9E EC AB 0D 93 4E 24 92 32 18 B4 A2 97 42 06 EF FE D4 F5 58 03共40字节,其中第0-6字节为头部,7字节;第7-38字节为加密的数据,32字节;第39字节为包尾,1字节。密文(第738字节)用临时密钥解密后为00 01 01 00 00 00 01 00 00 00 00 DB 85 3E 08,共15字节。明文中的第0
37、10字节固定,我们可以凭借第0和第1字节是否全是0来判断是否需要重定向新的服务器;第1114字节为服务器分配的新服务器地址,本例为219.133.62.8(按位转换成十进制),这是告诉客户端重新去另一个服务器试试(再向新的服务器发送0X0091命令)。(2)0X0062命令(客户端发起)此过程不加密。具体格式如下。l 发送:02 0F 5F 00 91 01 12 25 DF 2F BF 00 03共13字节,其中第0-10字节为头部,11字节;第11字节为数据0x00,1字节;第12字节为包尾,1字节;l 服务器返回:02 0F 5F 00 91 01 12 00 18 0B 3B AE 3
38、8 09 11 99 1F C0 A3 A7 C1 CD 14 14 27 94 E4 66 EF 7C 3A 3D 8E 03共34字节,其中第0-6字节为头部,7字节;第7-8字节为令牌长度00 18,2字节;第9-32字节:令牌内容,24字节;第33字节为尾部,1字节(3)0X00BA命令(客户端发起)这个是请求登录令牌命令,格式如下。l 发送:02 0F 5F 00 BA 01 13 25 DF 2F BF 3F 6B E0 82 C8 E2 82 CA A8 5F F6 EE 00 4B 91 3B A3 C6 F3 D9 EF 23 6A DE 81 D9 DE DF A6 8E
39、C6 91 EE E7 41 E6 7F AD CC 5E F5 3C 2D 0E 95 AC 0D 8C A8 FF 51 18 C3 E3 4A 86 7F 6A 64 EB 46 EE 71 35 03共76字节,其中第0-10字节为头部,11字节;第11-26字节为本包临时密钥,16字节;第27-74字节为加密的数据,48字节;第75字节为包尾,1字节。密文(第27-74字节)用本包临时密钥解密后18 0B 3B AE 38 09 11 99 1F C0 A3 A7 C1 CD 14 14 27 94 E4 66 EF 7C 3A 3D 8E 03 00 05 00 00 00 00 00 00 00,固定,共35字节第0 字节: 0x18 为令牌长度 第1-24字节:为令牌内容,其实就是0x62命令服务器返回的令牌内容。 第25-28字节:子命令,如果由验证码获得,第一位是04。第29-34字节:固定,未知。注:此数据包客户端会重复连续发3次。l 服务器返回:服务