国际版QQ登陆协议的详细分析-握手包发送

免责声明:分析协议只是为了学习,请勿使用在其他的用途上,因此发生的任何法律责任,本帖作者不付任何责任,如果分析协议中损害了您的权益,请联系作者删除本帖,谢谢合作.

上文写到工具的准备,准保好工具之后,安装一个虚拟机,下载一个纯净版的国际板.
为什么要在虚拟机里跑呢?  主要因为QQ协议的我自升级功能,例如你的电脑装了最新的7.1版本,之后你下载7.1 安装一个低版本的QQ,虽然QQ的版本的低版本的,但是协议以及加密方式都是最新的,这点会让我们非常难受的,

打开WireShark 

选择正确的网卡,点击Start
之后就可以开始愉快的抓包之旅

打开QQ,开始抓包 结果如下
Filter里填写udp.port==8000搜索我们抓到的udp协议,跟8000端口有关系的数据包
筛选后:
前面有几个30037端口的数据包,可以无视了,QQ的发送端口是4000-4999 (如果占用顺延) 接收端口是8000
从第一个4000端口的包开始分析,复制出数据块
02325d082519a30034000003000000020101000066b000000000038e03d384020adc58fcf9b425dcc54cb14534194f9ad1a11ab82ad85cc2c66c917815175c1b907a0b046f3f65c0fdeacb41d270db2740fc6af834ef8803af5a8e4f0a692b3139836187eb0a8458d6c21bd4df9db8c89c9ce9d5d383541165cdcfcc6509485960f122e468c886604e0800f8a5b2733d88ad0cd77ee221b12070528b4be3ec0beafb03
额,好乱 格式化下
02 32 5D 08 25 19 A3 00 34 00 00 03 00 00 00 02
01 01 00 00 66 B0 00 00 00 00 03 8E 03 D3 84 02
0A DC 58 FC F9 B4 25 00 00 4C B1 45 34 19 4F 9A
D1 A1 1A B8 2A D8 5C C2 C6 6C 91 78 15 17 5C 1B
90 7A 0B 04 6F 3F 65 C0 FD EA CB 41 D2 70 DB 27
40 FC 6A F8 34 EF 88 03 AF 5A 8E 4F 0A 69 2B 31
39 83 61 87 EB 0A 84 58 D6 C2 1B D4 DF 9D B8 C8
9C 9C E9 D5 D3 83 54 11 65 CD CF CC 65 09 48 59
60 F1 22 E4 68 C8 86 60 4E 08 00 F8 A5 B2 73 3D
88 AD 0C D7 7E E2 21 B1 20 70 52 8B 4B E3 EC 0B
EA FB 03 
这样就差不多了,我们一句一句的来分析
通过抓包,发现QQ的的数据包都是02开头,03结尾, 所以最上面的02 和最后的03我们不考虑
02 包头
32 5D 这两个字节是版本号,
08 25 这两个字节就是命令号
19 A3 这个是包号,发送包河返回包的这一部分是相同的,后面有可能会出现重复命令的包,可以用这个对应自己的接收包
00 34 00 00 QQ号,因为某些原因,我隐藏了部分
03 00 00 00 02 01 01 00 00 66 B0这一块也跟版本有关系,我们起个名字吧VersionCode,这个东西以后会经常见
00 00 这个是固定的,至少我抓的包里是固定的
00 00 这里有时候是00 01 不过一般是00 00
03 8E 03 D3 84 02 0A DC 58 FC F9 B4 25 00 00 4C 这里就是这个包的teakey 我隐藏了一部分,因为这里面有QQ号
其他的    到最后一个03之前就是tea加密的内容了.
用tea解密之后是这样子的,加密的内容是标准的TLV(title,length,version)具体分析如下:
#region 密文
TLV0018:
00 18 title 0018
00 16 length 0x16 22Byte
00 01 version 1
00 00 04 31 SSOVresion
00 00 00 01 SSOIndex
00 00 13 E5 ClientVersion
00 34 00 00  QQ号
00 00 固定 跟上面的一样
00 00 重发次数,也叫重定向次数
TLV0008:
00 08 title0008
00 08 length 0x8 8Byte
00 01 version 1
00 00 04 04 01 E0 这里并不知道是干啥的,但我抓了很多次包 这里没有变,所以我暂时固定了
TLV0309
03 09 title0309
00 08 length0x8 8Byte
00 01 version 1
00  00 00 00 serverIP,链接服务器的IP,全0,必定需要重定向
00 重定向次数
01 这里并不知道是干啥的,但我抓了很多次包 这里没有变,所以我暂时固定了
TLV0036
00 36 title
00 12 length 0x12 22Byet
00 02 version 2
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 固定,每次抓包都一样
TLD0114
01 14 title0114 ECCdata
00 1D length0x1d 29Byte
Data:
TLD0102
01 02 title 0102 HDKey ECC在这个版本中也就验证码有用到,但在pc版本中,密码包对ecc加密的运用不要太好
00 19 length0x19
03 69 05 BE A5 15 58 97 0B 9F 19 A6 8A 00 98 98 07 9F 1F 84 41 80 95 50 B4 
#endregion
写了这么多,差不多要断一断,再长了就写不下去了,你也看不下去了,下篇写下返回包

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值