QQ2006正式版登陆包分析以及困惑,登陆数据包的加密方式变了么?
QQ登陆包如下 (QQ号略去,UDP以及其他协议的协议头全部去除,只剩下UDP的数据区)
02 0f 5f 00 91 00 00 XX XX XX XX 16 25 7f 8b 0d c6 4a 66 09 67 ee 2b eb 72 fb b9 49 cb d1 1b dc 13 63 35 53 90 47 14 e4 a9 af af 62 10 ad 37 8e ff 49 53 c7 4f 1b ca 07 98 50 b3 03
分析如下:
02 (包开始)
0f 5f (版本号, QQ2006正式版)
00 91 (登陆命令,似乎不是0xba,而是0x91...?是不是加密算法有变化?)
00 00 (序列号)
XX XX XX XX (QQ号,我在此略去)
16 25 7f 8b 0d c6 4a 66 09 67 ee 2b eb 72 fb b9 (随机密钥)
49 cb d1 1b dc 13 63 35 53 90 47 14 e4 a9 af af 62 10 ad 37 8e ff 49 53 c7 4f 1b ca 07 98 50 b3 (密文)
03 (包结束)
我用这个密文和密钥用TEA算法反向解密为什么总是得到00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (15组0),我抓了好几组登陆包,当然登陆密钥每次都不同,应该密钥是随机的,但是反向解密的结果始终是上面这15组0.
但是我用这15组0和密钥再加密,似乎结果是不定的,可以有无数组结果.
请问有人知道是怎么回事么?有没有人也在研究QQ登陆协议的朋友?
我看了LumaQQ的2006 M2代码好像它并不是基于2006协议阿,好像默认版本还是2005阿.只是界面变成2006风格.
[解决办法]
016 - 051 固定组合
052 登录方式 正常 0x0a,隐身 0x28
053 - 068 固定组合
069 LoginToken的长度 这个版本是0x20 也就是32位长
070 - 070+LoginToken.Length LoginToken内容
剩下的 固定组合
基本变的就是固定组合
每个版本都会多一些小命令,不过搞不清楚这些命令起什么作用,没有也能正常登录
不过我发现qq有穿墙技术,没研究出来
[解决办法]
整体变化不大,由于返回的令牌比老版本多了8个字节,所以整体打包长度也由416变成了424