qq协议 0825 和 0836 udp 登录包解析

参考

0825包参考: https://www.cnblogs.com/mRRRR/p/5288931.html
虽然是2016年的, 但是里面的结构大体还是不变

参考: https://github.com/fa-ge/PCQQ-Protocol
PCQQ协议的实现, 这里面基本都写清楚了, 但是能不能用我还没试过, 最后更新时间为2018年

TEA参考: https://github.com/ColasDAD/Py3QQTEA/blob/master/QQTEA.py
用来解密QQ的TEA加密

QQ版本号参考: https://bbs.kafan.cn/thread-1295613-1-1.html

使用工具:

  • Python, 用来解密TEA, 方便的生成Hex和md5
  • 网页的dev console, 有的时候可能用来做一些杂活, 比如统计hex长度以及replaceAll
  • Wireshark, 网卡抓包, 用来抓qq的udp登录包

概念解释

qq协议中的udp包通常从02这个字节开始, 03这个字节结束, 然后后面紧跟着版本号然后就是命令, 本文以命令的2个字节作为这个包的名称, 比如:0825包的前面就是 023a570825.
下面的协议报文中的..省略号只是为了对齐, 别一起复制进去解密了

udp报文解析

0825 udp 发送包

0825发送包(本机发送)

报文原始数据:
ec4118251291c85acf44cc810800450000bf9143000040110000c0a81f2478e81418f57b1f4000ab6d89023a5708251115731717b40300000001010100006a4b00000000b899860003144579b8da863c1beed200abf0db243954f2e40089ac685f96cf905858602e7c87068d0f3c0cb7b33b17730f79ecd4d22ffdb42b98bb1c261aa2d7055a8a41def93ade17f969335848b41b8a2e671174a6487d81259c1f0b297501b8e542f04bbcc26acb7b5608d966a76ca0e0ca80648b0eee5f28bed43bd07ea12c2342bf092bd92703

hex视图:

0000   ec 41 18 25 12 91 c8 5a cf 44 cc 81 08 00 45 00
0010   00 bf 91 43 00 00 40 11 00 00 c0 a8 1f 24 78 e8
0020   14 18 f5 7b 1f 40 00 ab 6d 89 02 3a 57 08 25 11
0030   15 73 17 17 b4 03 00 00 00 01 01 01 00 00 6a 4b
0040   00 00 00 00 b8 99 86 00 03 14 45 79 b8 da 86 3c
0050   1b ee d2 00 ab f0 db 24 39 54 f2 e4 00 89 ac 68
0060   5f 96 cf 90 58 58 60 2e 7c 87 06 8d 0f 3c 0c b7
0070   b3 3b 17 73 0f 79 ec d4 d2 2f fd b4 2b 98 bb 1c
0080   26 1a a2 d7 05 5a 8a 41 de f9 3a de 17 f9 69 33
0090   58 48 b4 1b 8a 2e 67 11 74 a6 48 7d 81 25 9c 1f
00a0   0b 29 75 01 b8 e5 42 f0 4b bc c2 6a cb 7b 56 08
00b0   d9 66 a7 6c a0 e0 ca 80 64 8b 0e ee 5f 28 be d4
00c0   3b d0 7e a1 2c 23 42 bf 09 2b d9 27 03
解析

qq协议头

0020   .. .. .. .. .. .. .. .. .. .. 02 3a 57 08 25 11
0030   15 73 17 17 b4 03 00 00 00 01 01 01 00 00 6a 4b
0040   00 00 00 00 .. .. .. .. .. .. .. .. .. .. .. ..
  • 02 qq报文指定前缀
  • 3a 57 版本号, 可从这里 得知为QQ9.5.9 灰度正式版(28605/28606)
  • 08 25 登录命令
  • 11 15 序列号, 序列号默认为每个包递增
  • 73 17 17 b4 qq id hex
  • 03 00 00 fixed const
  • 00 01 01 01 客户端类型
  • 00 00 6a 4b 发行编号
  • 00 00 00 00 fixed const

TEA密钥, 16字节长

0040   .. .. .. .. b8 99 86 00 03 14 45 79 b8 da 86 3c
0050   1b ee d2 00 .. .. .. .. .. .. .. .. ..
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值