转载自:http://www.cnblogs.com/xiaotie/archive/2007/01/18/623555.html
Danis特别记载。

QQ 2006 协议较QQ 2005 有较大变化,最大的变化在登录部分,加入了验证码验证机制,当同一 ip 地址存在过频繁的QQ登录时,服务器会向客户端发送验证码要求登录。本文将详细描述QQ 2006 正式版的登录过程以及聊天协议的变化情况。

本文中的协议分析是把 QQ 当作黑箱分析,遵循中华人民共和国《计算机软件保护条例》。分析过程中参考了 Red_angelX(http://blog.csdn.net/Red_angelX)的两篇文章:(1)QQ2006协议分析之一 登录篇(http://blog.csdn.net/Red_angelX/archive/2006/11/13/1381351.aspx)和(2)QQ2006协议分析之二 登录验证码篇(没在Red_angelX 的blog上找到这篇文章,最后还是在 baidu 快照里扒出来的)。Red_angelX 做的分析针对的是 2006 Beta 3版本,我采用 Red_angelX 的方法针对 QQ 2006 正式版的登录过程进行了验证,做了一些补充。分析工具也是仿照 Red_angelX 的 QQ_Debugger 写的 QQDebugger。本文也参考了 lumaqq(http://lumaqq.linuxsir.org/main/)的QQ2005协议文档,点此下载(http://www.cnblogs.com/Files/xiaotie/lumaqq_manual.zip)。

本文针对的主要是UDP格式的QQ协议。

一、QQ协议基本结构

QQ协议基本结构为:[头部][QQ版本号][指令][包序号][数据][尾部]。客户端和服务器端往返的数据均符合这一结构。

[头部]为固定的一个字节,0x02,[尾部]为固定的一个字节,0x03,[QQ版本号]为2个字节,QQ2006正式版的版本号为0x0f5f,[指令]为2个字节,如 QQ2006中的获取登录令牌指令为 0x00ba,[包序号]为2个字节。

一个简单的例子:

02 0f 5f 00 ba 2d  ...@...@.g.._..-
0030   90 41 0a 64 d6 7b 13 77 d5 75 11 4c fa 98 d4 5d  .A.d.{.w.u.L...]
0040   de cc 4c 82 82 32 17 91 54 41 73 34 94 e6 96 1d  ..L..2..TAs4....
0050   15 fb ef f7 b1 ee f5 36 f1 19 f9 aa 8a 6b 74 22  .......6.....kt"
0060   d0 03

表示是一个客户端QQ版本号为 0x0f5f,指令为0x00ba,包序号为0x2d90,具体负载内容为 41 0a 64 d6 7b 13 77 d5 75 11 4c fa 98 d4 5d de cc 4c 82 82 32 17 91 54 41 73 34 94 e6 96 1d 15 fb ef f7 b1 ee f5 36 f1 19 f9 aa 8a 6b 74 22 d0 的QQ数据包。

QQ 协议加密使用的算法是TEA加密算法,其密钥为16字节。C#版的QQ TEA加解密算法及源代码可见 Red_angelX 的文章<QQ的TEA填充算法>( http://blog.csdn.net/Red_angelX/archive/2006/09/19/1246701.aspx)

二、QQ2006正式版的登录流程

QQ2006正式版的登录流程为:

(1)客户端向服务器端发送 0x00ba 数据包,请求登录令牌
(2)服务器端判断客户端所在IP地址是否有频繁登录等异常情况,如果存在,则发送验证码给客户端,如果不存在,则直接将登录令牌发给客户端。需要验证验证码时:客户端发送验证码给服务器端(不用区分大小写),如果验证码正确,服务器端向客户端返回登录令牌,如果登录不正确,则返回一个新验证码图片
(3)客户端获得登录令牌后,向服务器发送登录请求包。
(4)服务器响应,分4种情况:

(a)登录成功,则服务器返回会话令牌
(b)登录失败,服务器返回登录失败提示;
(c)如果该服务器不能处理这个登录请求包,返回一个重定向数据包,告诉客户端一个新的服务器,这种情况下,客户端需要向新的服务器发送登录请求包;
(d)当该QQ号码需要激活时,服务器发来提示信息。

具体协议分析:

(1)客户端 请求登录 令牌

样本:
                                     02 0f 5f 00 ba 2d  1....@.<...._..-
0030   90 1e 97 73 5e 3a 04 b6 66 33 a0 86 3f 07 48 6b  ...s^:..f3..?.Hk
0040   3c 4e fd ec 15 f9 ca 25 d8 af 7b 90 3c 88 66 79  <N.....%..{.<.fy
0050   c1 83 1e 3f 52 fc 88 7d 65 d8 26 a7 55 03        ...?R..}e.&.U.

格式分析,只分析数据部分:

1e 97 73 5e 是QQ号。 3a 04 b6 66 33 a0 86 3f 07 48 6b 3c 4e fd ec 15 是客户端生成的随机密钥, f9 ca 25 d8 af 7b 90 3c 88 66 79 c1 83 1e 3f 52 fc 88 7d 65 d8 26 a7 55 是随机密钥加密后的密文,解密密文,得到明文: 01 00 05 00 00 00 00。每个QQ2006 请求登录猜测,这个 01 00 05 00 00 是一个子命令,表示 请求登录 令牌。 00 00 是随子指令发送的数据。

(2)服务器响应

如果验证通过,直接返回登录 令牌,样本为:

02 0f 5f 00 ba 2d  ...@...@.g.._..-
0030   90 41 0a 64 d6 7b 13 77 d5 75 11 4c fa 98 d4 5d  .A.d.{.w.u.L...]
0040   de cc 4c 82 82 32 17 91 54 41 73 34 94 e6 96 1d  ..L..2..TAs4....
0050   15 fb ef f7 b1 ee f5 36 f1 19 f9 aa 8a 6b 74 22  .......6.....kt"
0060   d0 03

数据部分为:
          41 0a 64 d6 7b 13 77 d5 75 11 4c fa 98 d4 5d  .A.d.{.w.u.L...]
0040   de cc 4c 82 82 32 17 91 54 41 73 34 94 e6 96 1d  ..L..2..TAs4....
0050   15 fb ef f7 b1 ee f5 36 f1 19 f9 aa 8a 6b 74 22  .......6.....kt"
0060   d0

用第一步客户端生成的随机密钥解密后得到: 01 00 05 00 00 20 41 5F 87 C8 F9 B7 6A 3F 0F 7B F9 3C 5A 6F 42 6C A1 D7 78 5C 5D 9F 28 E4 F2 C6 B2 7E 91 1B DD AD。其中 01 00 05 00 00 是子指令,20是登录验证码长度(0x20 = 32),后面32字节是登录 令牌,具体登录过程需要使用这一 令牌

如果服务器觉得这个IP地址登录频繁,会发送验证码,发送验证码的样本为:

02 0f 5f 00 ba 39  ...@........_..9
0030   75 20 b3 b1 55 49 3d 9d e1 1e 1e de 4d e4 02 d1  u ..UI=.....M...
0040   47 28 78 83 e6 ed f9 5b c3 44 df 4a 6e 20 cc a5  G(x....[.D.Jn ..
0050   cd 60 78 18 a3 37 f9 91 17 c7 da 63 1b ae d1 e0  .`x..7.....c....
0060   79 5c cd 47 d2 d2 a9 4e be 98 6d 52 56 99 c0 2a  y/.G...N..mRV..*
0070   26 22 01 d4 60 91 e7 47 b4 70 e9 bd ff 0d 5c 02  &"..`..G.p..../.
0080   b3 ce 40 88 b9 c4 29 d9 99 e9 d8 f2 9e 46 f4 06  ..@...)......F..
0090   74 6f 56 b7 cb bc f8 42 b3 36 fe 44 ff 74 de e6  toV....B.6.D.t..
00a0   bd c3 01 f2 09 1e 71 42 6d 7b 91 10 12 9b 29 40  ......qBm{....)@
00b0   09 f7 07 50 bd 85 8a e2 cb b8 d6 5d 7e 9c a3 bc  ...P.......]~...
00c0   da 6c fa e5 31 07 cd 5f 4e 63 35 e0 77 fe c7 9e  .l..1.._Nc5.w...
00d0   37 7f 28 d1 c0 4e 6d 9c e3 27 70 a0 cd e6 cb 08  7.(..Nm..'p.....
00e0   af 53 6f f2 f5 e9 2a d4 a4 71 21 28 78 5a 14 70  .So...*..q!(xZ.p
00f0   a5 c5 54 d0 bc 8d 8c 84 da d5 d8 2e e6 be c9 18  ..T.............
0100   ed ae 9d 4a b0 8c b2 0a 74 55 53 a7 2a 4d 0b 4d  ...J....tUS.*M.M
0110   17 89 c6 61 6e 28 ca cb b5 0b c1 31 5f 38 8f d5  ...an(.....1_8..
0120   c5 55 1b 5f 41 93 5e ce 47 0e 1a 2b 78 f5 5f 0f  .U._A.^.G..+x._.
0130   97 60 cd c3 1a bd fb fe d5 b8 10 05 bc 0e 34 32  .`............42
0140   eb 9e f2 4f f3 00 d3 b2 05 62 d5 54 e3 62 1a 69  ...O.....b.T.b.i
0150   0b 87 de 40 0a 10 01 aa eb 89 2d 6e 7f f1 a9 9d  ...@......-n....
0160   cb fc b3 9a 35 59 da 3a f2 a8 59 e8 2c 5a d2 88  ....5Y.:..Y.,Z..
0170   f0 32 cc a9 7b 1c 8b 69 28 3a b8 d2 f6 2a e8 a0  .2..{..i(:...*..
0180   50 f6 f1 6c 46 e3 7c 8b 4c e2 54 56 69 8d 5f 1c  P..lF.|.L.TVi._.
0190   c9 1e 03 71 1e 6f ea e1 a5 e8 95 3f 6a f9 ba 40  ...q.o.....?j..@
01a0   03 48 7b 12 ce 10 ba f4 9a 83 e7 97 97 11 c6 d1  .H{.............
01b0   52 ea d5 14 69 a3 ba 82 96 aa ac cd b6 0f e6 71  R...i..........q
01c0   02 ff 67 b7 ea f3 a5 8f ec db 67 a2 d4 d1 3f 0b  ..g.......g...?.
01d0   6b 03

数据部分用用第一步客户端生成的随机密钥解密后得到: 01 00 05 01 00 28 9C 3E 65 15 04 4D 6B CA B6 E8 CC CD FF 8A 1C 2B FF 5A 31 8A 02 F5 EC 8B 9D 38 3E D7 03 70 D5 30 93 23 28 DA FD 5A C4 7E 01 61 89 50 4E 47 0D 0A ......

01 00 05 01 00 代表子命令需要验证码登录, 28 是验证码验证 令牌的长度(0x28 = 40),后面40个字节是验证码验证 令牌,客户端回复验证码时需要附带上这个 令牌。随后的两个字节 01 61 是验证码图片的长度,后面的字节是验证码图片的字节流,验证码为png格式。

客户端回复验证码样本:

02 0f 5f 00 ba 39  .i...@.lr..._..9
0030   7f 1e 97 73 5e da 6a 7a fb e2 c8 c0 c5 66 fc 09  ...s^.jz.....f..
0040   86 40 22 79 3f 55 5b f5 90 87 75 a2 0e 41 e6 e1  .@"y?U[...u..A..
0050   01 ff dc 09 d8 af 54 e7 ed d5 d6 b4 38 d2 a4 de  ......T.....8...
0060   f8 f5 83 1a 05 d3 a0 f1 62 00 b1 94 3d 5f 64 aa  ........b...=_d.
0070   79 1a 2a 66 50 c3 b4 ca 78 ad f2 ba a0 be 6b 0d  y.*fP...x.....k.
0080   87 0d 30 65 b1 1e 67 0a cd f7 45 5d 05 03        ..0e..g...E]..

只分析数据部分, 1e 97 73 5e 为QQ号, da 6a 7a fb e2 c8 c0 c5 66 fc 09 86 40 22 79 3f 是又一个随机密钥,后面数据用这个密钥解密后为: 02 00 05 00 00 00 00 00 04 46 45 59 52 00 28 9C 3E 65 15 04 4D 6B CA B6 E8 CC CD FF 8A 1C 2B FF 5A 31 8A 02 F5 EC 8B 9D 38 3E D7 03 70 D5 30 93 23 28 DA FD 5A C4 7E。其中, 02 00 05 00 00 为子命令,表示是发送验证码,后面 00 00 00不清楚什么意义。 04 为验证码长度,随后的4个字节 46 45 59 52是验证码,随后的 00 28是验证码 令牌长度,随后的40个字节,是上面获得的验证码 令牌

服务器验证通过,发回:

02 0f 5f 00 ba 39  ...@...@...._..9
0030   7f 5a ed 66 34 80 df 63 ef a8 77 95 c5 6b 06 73  .Z.f4..c..w..k.s
0040   cf ee a2 2d 59 6b a2 a7 d4 44 86 01 ac d0 de e9  ...-Yk...D......
0050   8a 27 c9 b3 2a 03 5e cb 9a a3 4c 68 e5 3b d2 4b  .'..*.^...Lh.;.K
0060   48 03

数据部分用上一步生成的密钥解密后得到:

02 00 05 00 00 20 D2 CE A7 3C 8A E1 54 E7 CC 0B 2A 07 99 9A 37 00 DE A3 AE CE 0E 9C B4 38 F0 91 2F 7E 97 FD 5B 4D

02 00 05 00 00 为具体指令, 20 为登录 令牌长度,后面的32字节为登录 令牌

(3)客户端登录

样本:

02 0f 5f 00 22 2d  1....@..|..._."-
0030   94 1e 97 73 5e c2 68 f3 4e fd 9b ef db 0f 7c 4e  ...s^.h.N.....|N
0040   f8 46 6c fd b0 ee 24 4c ee f3 9c 15 36 13 df ff  .Fl...$L....6...
0050   bf 53 d8 f7 f1 a2 b8 50 8f 7d f9 4a c9 74 2f f4  .S.....P.}.J.t/.
0060   64 fd b3 2d ae 0c e9 d2 e0 9a cd 8c 73 e9 e8 d4  d..-........s...
0070   95 b1 e6 bd 4e cb d3 73 3d 48 cb ec 54 b1 7f d3  ....N..s=H..T...
0080   1c cd 66 d2 2f 8e 02 ed 80 c5 70 5b 55 c0 a9 cf  ..f./.....p[U...
0090   0f 23 8a 2b a4 b5 0a 7f 87 46 4f 11 2e 8c 43 dc  .#.+.....FO...C.
00a0   14 17 8f 0d f4 17 78 73 67 cc c1 e7 a3 37 e8 51  ......xsg....7.Q
00b0   2f e3 32 30 79 ca dc 5c e5 3a a9 72 04 54 b9 68  /.20y../.:.r.T.h
00c0   55 81 ac b9 f7 c8 ed 5f 70 05 d1 90 1f 5e 91 32  U......_p....^.2
00d0   c5 b1 86 0d eb cf af 42 a1 8a 8e 85 6d a4 6c fd  .......B....m.l.
00e0   7a ea fb 0f e2 7b bb 2f 63 f0 fe 58 e8 b3 88 78  z....{./c..X...x
00f0   d0 77 25 3a 3d bc ba 3a 1a 52 6e de 88 e2 1f f5  .w%:=..:.Rn.....
0100   31 86 ea d6 05 a1 5e ef ce 70 14 5d ed 7e 6c 32  1.....^..p.].~l2
0110   8e 0d 46 53 87 27 2b 38 73 3b cc e7 f9 a4 38 54  ..FS.'+8s;....8T
0120   89 36 26 07 6c c0 2c 9b 11 e4 85 ba 43 87 bc 06  .6&.l.,.....C...
0130   9f e6 80 35 55 72 79 2c 8a c3 de 0b fc fb 4b be  ...5Ury,......K.
0140   e3 ea a1 48 cf d5 1a 49 e5 4c 5c 85 2e df 90 f0  ...H...I.L/.....
0150   7e 0a 8c 18 66 3a be b3 24 19 1f a7 77 bf b5 81  ~...f:..$...w...
0160   0e 66 55 5d 54 dc 3f fd bd e5 71 fc 4b b7 11 3f  .fU]T.?...q.K..?
0170   d4 f3 7b 8f 09 4d 9e b2 6e 39 5f 52 61 2b 2d c1  ..{..M..n9_Ra+-.
0180   30 e0 c1 54 7f 33 d0 e6 5c fb ab 14 99 33 63 83  0..T.3../....3c.
0190   81 f7 cc 9c 7d eb 2a ac 1f e2 2d 26 7e 46 6e c7  ....}.*...-&~Fn.
01a0   5d 4a b5 80 70 c4 0e ae 73 03 dc 06 3c 5d 4e 36  ]J..p...s...<]N6
01b0   d6 06 da f8 9d f4 4c 71 fc aa 9c f4 81 8f 76 fe  ......Lq......v.
01c0   44 6d 95 98 fb bd a2 30 4f d5 e0 f0 17 dc f3 28  Dm.....0O......(
01d0   7c c8 28 8e 23 b3 29 37 45 44 23 66 97 ad eb 05  |.(.#.)7ED#f....
01e0   06 02 e4 e0 07 99 01 07 4e 0c 2c 03 9d a7 bd 05  ........N.,.....
01f0   cc 82 90 70 bc 44 2d f6 b7 2d fb 9c a0 93 99 b6  ...p.D-..-......
0200   bc 60 48 8e a4 22 8f 16 5f 5a bf 20 24 a8 d5 d5  .`H..".._Z. $...
0210   5c fe 98 95 15 03

分析数据部分,1e 97 73 5e 是QQ号,随后的16字节为又一次随机生成的密钥,余下的部分用密钥解密得到:

E5 18 65 E0 8D E3 C4 CD 69 D4 1A F2 1F 4C CA 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 D1 18 AC 14 78 58 F1 D0 81 4D 7D 7D 7B D9 1F F5 0A 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BB 1B 76 33 D7 48 5F 48 B2 21 C9 C2 55 85 9A 3D 20 41 5F 87 C8 F9 B7 6A 3F 0F 7B F9 3C 5A 6F 42 6C A1 D7 78 5C 5D 9F 28 E4 F2 C6 B2 7E 91 1B DD AD 01 40 01 62 72 1B 3E 00 10 8C 3A F1 49 F5 B4 8F 82 AC 54 AF F3 E2 2D 68 70 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 EA 34 33 C0 00 10 2A 27 9F 9A DD A1 8C 6C 89 22 04 50 03 DE 61 D4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

分析解密后数据,其中,前16字节 E5 18 65 E0 8D E3 C4 CD 69 D4 1A F2 1F 4C CA 67 是以用户密码的2次MD5计算后的值为密钥加密空字节流的结果。后面数据绝大部分是固定的,除了登录 令牌是上面获得的登录 令牌 41 5F 87 C8 F9 B7 6A 3F 0F 7B F9 3C 5A 6F 42 6C A1 D7 78 5C 5D 9F 28 E4 F2 C6 B2 7E 91 1B DD AD 。登录 令牌前面的那个字节是登录 令牌的长度。

(4)服务器响应

如果登录成功,服务器返回的包需要用用户密码的两次MD5值解密,如果登录失败,返回的包需要用登录时使用的随机密钥解密。具体格式和QQ2005协议一样,解密后的数据,第一个字节代表登录结果,00代表登录成功,05或者09代表登录失败,详情见lumaqq的文档。只是,重定向数据包和QQ2005不一样,样本偶丢了,其格式为:0a .........其中,最后4个字节(记的不是很清楚,也可能是倒数第5-倒数第2这4个字节)是新服务器的IP地址,向新服务器发送登录包就可以登录了。如果又不是00,又不是05,09,0a,则可能是登录QQ号需要激活,其具体包内容我分析过。

三、其它变化

QQ2006保持心跳的数据包同QQ2005有所不同,其中发送心跳数据同QQ2005,服务器返回的内容与QQ2005不同,未加分析过。

QQ2006中接收来自好友的聊天信息数据包同QQ2005也有不同。lumaqq 中对这种消息的说明如下:

1. 头部
     2. 发送者QQ号,4字节
     3. 接收者QQ号,4字节
     4. 包序号(并非我们发送时候的序号,因为这个是4字节,可能是服务器端得总序号)
     5. 发送者IP,如果是服务器转发的,那么ip就是服务器ip, 4字节
     6. 发送者端口,如果是服务器转发的,那么就是服务器的端口,2字节
     7. 消息类型,是好友发的,还是陌生人发的,还是系统消息等等, 2字节
     8. 发送者QQ版本,2字节
     9. 发送者的QQ号,4字节
     10. 接受者的QQ号,4字节
     11. md5处理的发送方的uid和session key,16字节
     12. 普通消息类型,比如是文本消息还是其他什么消息,2字节
     13. 会话ID,2字节,如果是一个操作需要发送多个包才能完成,则这个id必须一致
     14. 发送时间,4字节
     15. 发送者头像,2字节
     16. 是否有字体属性,4字节,有一般是0x00000001
     17. 消息的分片数,1字节
     18. 分片序号,1字节,从0开始
     19. 消息id,2字节,同一条消息的不同分片id相同
     20. 消息类型,这里的类型表示是正常回复还是自动回复之类的信息, 1字节
     21. 消息正文,长度 = 剩余字节数 - 包尾字体属性长度
     22. 字体属性,和SendIMPacket中的相同
     23. 尾部

QQ2005中,消息类型为 0x0009,在QQ2006中,消息类型为 0x0084,这是一个不同,第二个不同是 16  是否有字体属性,4字节 和 17 消息的分片数,1字节之间多了8个字节的固定内容。

QQ2006中,获取群信息的数据包也和QQ2005有所不同,在中间多了4个字节,详细情况就不说明了,一分析便知。

QQ 2006 正式版协议变动情况分析相关推荐

  1. 【腾讯QQ官方正式版下载】基于Internet的即时通信(IM)软件

    腾讯QQ官方下载,腾讯QQ官方正式版下载 软件大小:52.1MB 软件语言:简体中文 软件性质:免费软件 软件授权:共享软件 软件等级:2 更新时间:2013-03-03 14:01:55 应用平台: ...

  2. qq音乐正式版官方免费版

    qq音乐2015下载正式版 v11.43 官方免费版 软件大小:13.1MB 软件语言:简体中文 软件类别:影音播放 软件授权:官方版 更新时间:2015-01-04 应用平台:/Win8/Win7/ ...

  3. QQ2007正式版协议分析

    本文不是技术贴,想找现成的分析好的协议的人建议别往下看,要找可以去伟大的Luma那看SDK,自从一年前粗略的写了下2006的登录过程分析后,短时间内翻版无数,而且都比原版销量好的多-_-#,更有甚者引 ...

  4. 真正的小而美?新版 QQ 发布正式版,几大更新亮瞎你的眼!

    腾讯 QQ 诞生于 1999 年,经过 24 年的更迭,国民应用 QQ 已成为 80/90 后的回忆,00 后的主战场.而今,因为 QQ 一个最新版本的发布,吸引了不分年龄层次的技术人的目光. 新版 ...

  5. QQ影音1.0 正式版

    腾讯自去年9月推出QQ影音至今,历时半年时间,经过9个Beta版本,终于在今天发布了QQ影音正式版.从近5天来步步悬念的QQ影音官方网站可以看到,QQ影音正式版已经浮出水面,正式对外发布. QQ影音正 ...

  6. win10 系统安装 服务器失败怎么回事,Win10正式版安装出现问题怎么办

    Win10安装程序出现了一些问题如何解决呢?在安装Win10正式版过程中,无论采用"升级方式"还是"全新方式"进行安装,都可能会遇到"安装过程出现问题 ...

  7. ios15.0.1正式版耗电吗 ios15.0.1正式版值得升级吗

    最近,ios15.0.1正式更新了,而很多用户关心的是 ios15.0.1正式版的耗电情况,那么,ios15.0.1正式版耗电吗? ios15.0.1正式版值得升级吗?下面就一起来看看吧. ios15 ...

  8. 通过QQ2010协议技术详细分析QQ登陆过程

    来自#博客园#文章,七月份的时候突然对QQ协议产生了些兴趣,于是这几个月有空就研究QQ协议,目前对QQ2010的协议已经分析得差不多了.QQ登录分为UDP和TCP登录,还支持代理登录.默认是UDP登录 ...

  9. 微信小程序 界面禁止下拉 左右滑动_手机 QQ v8.0 正式版上线,新界面,新功能...

    本文授权转自艾橙互动公众号. 经过一段时间内测,QQ手机版8.0 版本正式上线了. 目前iOS 版本已经更新,iOS 用户可以通过在App Store 进行更新体验,目前版本为v8.0.0.472. ...

最新文章

  1. 深入分析Parquet列式存储格式
  2. 小白重装系统教程_重装系统教程,小编教你怎么重装win10系统
  3. android文件读取工具类,Android 下读取Assets Properties操作封装工具类
  4. 用了Redis里面的map和set
  5. python代码覆盖率测试_unittest+coverage单元测试代码覆盖操作实例详解_python
  6. visio中公式太小_时间序列问题中三种常见的计量模型
  7. 【Flink】Flink 基于 MailBox 实现的 StreamTask 线程模型
  8. oc 经常用到弹出view的方法
  9. 电脑f2还原系统步骤_电脑还原系统方法步骤详解
  10. 瓜瓜播放器android,瓜瓜视频播放器
  11. 格雷码编码器 c语言,格雷码编码器功能实现
  12. C#中{0}表示什么意思?
  13. layui后台管理首页配置
  14. 卫星影像领域的深度学习数据和模型项目
  15. 编程大师竟“玩”出了不像 C 的 C 程序
  16. 高并发高流量网站架构详解
  17. SSDHDD混装换一块SSD(迁移系统与资料不重装)
  18. PHP为什么只能提交数字到mysql写入_请教高手?php为什么不能把数据写入数据库?...
  19. 磁带设备使用方法总结
  20. dynamic-datasource Please check the setting of primary解决方案

热门文章

  1. Xilinx ZYNQ SOC入门基础之使用SDK自带程序测试内存及DRAM实验
  2. 浪潮5280m4导轨安装_浪潮英信服务器NF5280M4用户手册V10.pdf
  3. 对象类型数据和对象实例数据_服务数据对象简介
  4. json自动美化工具
  5. iOS组件化及架构设计
  6. fitnesse java_从Fitnesse中学习Java单元测试
  7. zabbix3.0.2 监控mysql服务down的时候不触发报警的问题修复
  8. 什么是试剂空白和样品空白?
  9. 为什么Linux系统没有病毒?原因竟是如此!
  10. NDK--利用OpenSL ES实现播放FFmpeg解码后的音频流