出售本站【域名】【外链】

首页 AI人工智能软件 qqAI人工智能 微信AI人工智能 抖音AI人工智能 快手AI人工智能 云控系统 手机AI人工智能

QQ协议深度解析(一)

2024-03-26

原篇文章次要讲演PC QQ和谈的入门和腾讯的勾引收配 Warning:假如没有一定和谈根原看此类文章会感觉很魔幻

留心:PC和谈

UDP or TCP

QQ和谈是分为UDP和TCP的,正常状况下咱们以UDP为范例,因为官方也是大局部运用的UDP。

为什么会大局部运用UDP?UDP传输不是不牢靠吗,这么我的音讯不是会显现丢包,而后看似发出而后真际丢掉的状况?又大概因为非阻塞招致音讯顺序异样?

噗,真际上腾讯也是不会那么傻的,于是正在和谈中整了点魔法,很是有意思的是本理类似的另有将来技术Http3(Quic) 颇有此番风味

魔法

这么方才说到的魔法是什么呢? 传统所谓的牢靠性传输是基于网络传输和谈层面 虽然咱们可以正在使用和谈层整点加个包序加个验证的hash大概返回一个包确认 噗 假如你没完全理解tcp和udp 你可能会问 那种有什么用呢 觉得更省事了 真际上UDP不须要效劳端握手 间接一次性完成 而且还是暴力型 不牌队这种 彻底不清楚谁先发出 而后咱们的TCP就比较文明了 须要敲敲门 握几屡次手 还要牌队进去 那样发出顺序很清楚 而后咱们依照腾讯的方案是怎样样的 便是给UDP的包加个序号 而后让他们发出 那样包序就不会有问题了 对于不牢靠性 仅需一个返回包大概一个hash校验就止。

正片初步

选择UDP 而后咱们来理理腾讯的历程 xxxx包是指腾讯给每个号令一个非凡的符号 长度2字节 未指定效劳器 解析腾讯域名 获与IP 0825包 发现 Say Hello 0826包 验证账号

0825包 一切的初步 均衡负载

点击登录的一霎时会给效劳器发一个0825包链接效劳器 发那个包就问候效劳器 Say Hello 问他能不能让我进去 假如不能,就讲述QQ 我不止了 人太多了 你去下家效劳器 我讲述你这效劳器 IP okok 颠终几屡次效劳器的交接 咱们找到一位能止的的效劳器 接下来就发送账号和暗码了(发送0826包)

提示

以下包为转载的 由于太忙 阐明QQ请用工具抓包后hex(16进制)下阐明 QQ和IP转16进制算法可自止百度 腾讯包以tea魔改算法加解密 版原号早已差异 包内有些牢固的东西

0825 发送包

02 //包头 腾讯所有发送的数据包都是以那个开头

2F 35 //版原号 QQ版原差异。那个东西也会变

08 25 // 号令 初度跟效劳器接触发送滴。。

4B B1 //序号 那个东东是随机的 。。。 随机生成那个就可以了。

39 80 8C 2C // QQ号的HEX 转换过来便是 964725804

03 00 00 00 01 01 01 00 00 65 A6 00 00 00 00 //那个是牢固的。。详细啥么东西,不清楚

3E 59 4A DF 55 04 B1 AD 22 33 9F B3 E1 C3 CC D7 //那个是随机的tea key 软件里随机生功效可以 -------------------------------------------------------------------------------以下便是颠终 tea key加密后的数据了

39 16 78 35 92 0F 3D 37 95 4C 7C C8 8E 26 5C E6 D4 D9 47 C0 EE 30 08 94 BE 08 AC 8C 14 C8 CD 1A 90 CF 7F 01 AE 8D 55 75 51 56 D9 A7 92 6B A0 C6 79 00 BF 99 47 06 8F 5C D9 2C 6B 97 C9 D4 AE 79 C1 31 1B AC A6 0E 5F 9C

----------------------------------------------------------------------------- 以下是颠终tea key解密后的数据

00 18 00 16 00 01 //token1 牢固的6的长度 那些后续的发包里须要用到。所以要记下来,好便捷背面组折

00 00 04 11 00 00 00 01 00 00 12 91 //token2 牢固的 12的长度

39 80 8C 2C //那个是QQ号

00 00 00 00 01 14 00 19 01 01 //牢固的数据

00 15 //那个呢。下面数据大小 16进制的15 换成10进制便是21 下面方才好是21的长度

03 2A 37 9C 8E 0B 74 A2 F1 E5 47 56 0B 02 CE 2C D0 0A 83 9E D2 //那21的长度是随机的。等闲生成

03 //包尾 腾讯所有发送的数据包都是以那个结尾

0825 返回包阐明

02 2F 35 08 25 4B B1 39 80 8C 2C //前面的和上面的意思一样。那个是QQ的返回包

00 00 00 //用牢固的 00 00 00离隔了

--------------------------------------------------------------------------------以下是加密数据,用发送的这个tea key解密

30 10 39 3F 8B 13 9F 79 36 24 8A 07 78 25 94 C7 2C 50 D1 2A 3D B1 54 5E 19 8C 93 EA 10 4E 5E 99 80 96 C0 D0 39 39 6C 14 D2 53 D9 35 C4 95 4A 3B 60 94 80 9C F8 B5 D9 8B DC 65 D6 3F C1 6C DA 10 4A A3 9A CC BA FB 98 44 6B B2 91 53 7F A8 94 A0 11 38 BB EA 8B 89 22 1B 51 94 87 1B 77 22 00 EE EB 43 EE E1 7B 9F 4F E0 F8 10 20 66 DC 97 E6 A5 EA D4 F4 DD 02 A5 3C CA -------------------------------------解密出来的数据

FE // 效劳器IP须要中转..。。。其真依据接管的数据包大小就可以晓得。须要中转的话 接管的数据包是135的长度,不须要的话是111的长度

01 12 // 牢固 00 38 //0038的token 38的10进制是56,下面56的长度后就可以是下一个号令了,那些数据正在 0826包都须要

D8 62 09 42 21 5C FE 51 C6 E6 07 C6 0A 3A 2A 7F 7B 50 E0 86 A3 0F 7E 10 FB A4 04 E6 DA 6E 9B BF 19 CA 64 52 2E 27 FB B0 9C 68 A0 4F BA 6A EC 9B 24 F4 F3 14 BF A1 D8 5F

00 17 00 0E 00 01 //牢固了

50 F2 C9 3F //那个是连贯的光阳 2013-01-13 22:48:31

7B B6 90 44 //偶的原机IP 123.182.144.68

BD 0B 00 00 00 0C 00 16 00 02 00 00 00 00 00 09 00 00 00 00

70 5A 54 65 //中转的效劳器IP 112.90.84.101 那里把解密出来的IP地址间接放到socket的IP设置这里就可以了,

00 00 00 00 00 00 !--------------------------------------------------------- 03 //包尾

0836包

这就下篇文章啦

原文参取 腾讯云自媒体分享筹划,分享自做者个人站点/博客。

本始颁发:2020-06-06,如有侵权请联络 cloudcommunity@tencentss 增除

前往查察

udp

tcp/ip

原文分享自 做者个人站点/博客 前往查察

如有侵权,请联络 cloudcommunity@tencentss 增除。

热门文章

友情链接: 永康物流网 本站外链出售 义乌物流网 本网站域名出售 手机靓号-号码网