http://www.c78.net/anqn/web/12962.html
刚接触PCQQ协议,根据以前借鉴了网上的协议分析文章,写了个笔记,如发现有错误欢迎之处,我会改正本文
有一款抓包工具很好用,名字是LCQQPaser
0825发送包:
下载了个最新的QQ(QQ2014版本6.4),打开抓包工具,登录QQ,登录数据被捕获到了,捕获第一个发送的数据包如下:
[NO.0 0 111.161.88.35:8000 SEND 147字节]
02 35 41 08 25 75 1A 40 2D 53 95 03 00 00 00 01
01 01 00 00 67 25 00 00 00 00 6E AF 0E BA CF F6
43 43 F9 64 70 90 D2 DB 45 A6 2F B8 B2 0C 28 5D
EA 57 74 34 D9 31 F7 E6 D0 2F 95 69 E8 21 79 F2
7F 5A 1B CD 30 21 20 6E 27 09 49 18 B4 1F DC F3
18 0A AB BF 58 AA F5 F7 CD 82 85 40 32 FF FF 5F
55 51 68 DF BC FB 5C 66 A2 1E 5C 05 7E 41 45 5A
B2 20 73 C2 6F 1E DA 2D 60 BB 69 25 E7 C8 DD 74
D3 ED 82 8B 82 9B D7 22 97 B8 A7 A3 A9 12 7F 09
C8 53 03
都是十六进制的,分析如下:
【
02 //固定,头部
35 41 //版本,QQ每次升级都修改这个数
08 25 //0825 发送包和接收包对应标志
75 1A //序号
40 2D 53 95 //QQ号码
03 00 00 00 01 01 01 00 00 67 25 00 00 00 00 //固定
6E AF 0E BA CF F6 43 43 F9 64 70 90 D2 DB 45 A6 //0825key,tea算法中加密的key
//--------被tea算法加密的数据,使用0825key可以解开
2F B8 B2 0C 28 5D EA 57 74 34 D9 31 F7 E6 D0 2F 95 69 E8 21 79 F2
7F 5A 1B CD 30 21 20 6E 27 09 49 18 B4 1F DC F3
18 0A AB BF 58 AA F5 F7 CD 82 85 40 32 FF FF 5F
55 51 68 DF BC FB 5C 66 A2 1E 5C 05 7E 41 45 5A
B2 20 73 C2 6F 1E DA 2D 60 BB 69 25 E7 C8 DD 74
D3 ED 82 8B 82 9B D7 22 97 B8 A7 A3 A9 12 7F 09
C8 53
//-------------------
03 //固定,末尾
】
LCQQPaser中含有tea解密功能,输入0825key和加密数据,解密后的数据如下:
00 18 00 16 00 01 //固定
00 00 04 45 00 00 00 01 00 00 14 F5//固定
40 2D 53 95 //QQ号码
00 00 //第几次登录
00 00 03 09 00 08 00 01//固定
6F A1 58 23 //要登录的服务器IP
00 02 00 36 00 12 00 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 14 00 1D 01 02 //固定
00 19 //接下来要有多少个字节(换成十进制是25)
02 AB D2 88 B8 10 D5 CC 8D DF 61 03 36 77 9F DD C3 03 B0 7E 36 68 B1 2B 98 //25个字节,听大神们说以后解决验证码问题
0825接收包:
【
02
35 41 //版本
08 25
75 1A //序号
40 2D 53 95 //QQ
00 00 00 //固定
//-------被tea加密的数据
32 80 66 71 36 38 BD 9D 7A 70 EC 77 D2 71 86 58 7C 86
6A 49 5D 97 69 32 3E 6B AD 8E 0F C6 19 B5 86 E6
46 76 22 CB 13 7B 2D FF 65 C1 0C 9F 6E C7 AD 29
E5 C3 71 28 FC FD 15 45 34 43 FC 65 00 C0 68 E4
5C 04 0D 9A CD 53 44 2E 1B AB 88 7F 16 E9 52 58
E4 22 2B E3 FA B4 49 94 E3 FE 86 33 C9 F0 E8 EA
C0 7B E3 48 6D 9B
//------------------------------
03
】
使用0825key将加密数据解密了,如下:
00
01 12
00 38
FB 5C 91 F3 8F 06 01 1A 27 F3 82
72 EB AB A4 A0 F6 87 1C D3 04 E3 B4 04 7C A4 7D
E8 81 83 68 C7 4C 52 5C 8B 02 F2 2E 9E 66 51 24
61 61 C2 FF 43 F1 FD 7E 60 66 B0 3D 6D
00 17 00 0E 00 01 //固定
54 3D D1 2B //时间
3D 8A B8 BA //返回的服务器的IP
A8 D5//端口
00 00
03 10 //某指令
00 04//下面有4个字节
6F A1 58 23//发送的时候用的IP