1
2
3 from dpkt import Packet
4
5
6 QQ_HEADER_BASIC_FAMILY = 0x02
7 QQ_HEADER_P2P_FAMILY = 0x00
8 QQ_HEADER_03_FAMILY = 0x03
9 QQ_HEADER_04_FAMILY = 0x04
10 QQ_HEADER_05_FAMILY = 0x05
11
12 header_type_str = [
13 "QQ_HEADER_P2P_FAMILY",
14 "Unknown Type",
15 "QQ_HEADER_03_FAMILY",
16 "QQ_HEADER_04_FAMILY",
17 "QQ_HEADER_05_FAMILY",
18 ]
19
20
21 QQ_CMD_LOGOUT = 0x0001
22 QQ_CMD_KEEP_ALIVE = 0x0002
23 QQ_CMD_MODIFY_INFO = 0x0004
24 QQ_CMD_SEARCH_USER = 0x0005
25 QQ_CMD_GET_USER_INFO = 0x0006
26 QQ_CMD_ADD_FRIEND = 0x0009
27 QQ_CMD_DELETE_FRIEND = 0x000A
28 QQ_CMD_ADD_FRIEND_AUTH = 0x000B
29 QQ_CMD_CHANGE_STATUS = 0x000D
30 QQ_CMD_ACK_SYS_MSG = 0x0012
31 QQ_CMD_SEND_IM = 0x0016
32 QQ_CMD_RECV_IM = 0x0017
33 QQ_CMD_REMOVE_SELF = 0x001C
34 QQ_CMD_REQUEST_KEY = 0x001D
35 QQ_CMD_LOGIN = 0x0022
36 QQ_CMD_GET_FRIEND_LIST = 0x0026
37 QQ_CMD_GET_ONLINE_OP = 0x0027
38 QQ_CMD_SEND_SMS = 0x002D
39 QQ_CMD_CLUSTER_CMD = 0x0030
40 QQ_CMD_TEST = 0x0031
41 QQ_CMD_GROUP_DATA_OP = 0x003C
42 QQ_CMD_UPLOAD_GROUP_FRIEND = 0x003D
43 QQ_CMD_FRIEND_DATA_OP = 0x003E
44 QQ_CMD_DOWNLOAD_GROUP_FRIEND = 0x0058
45 QQ_CMD_FRIEND_LEVEL_OP = 0x005C
46 QQ_CMD_PRIVACY_DATA_OP = 0x005E
47 QQ_CMD_CLUSTER_DATA_OP = 0x005F
48 QQ_CMD_ADVANCED_SEARCH = 0x0061
49 QQ_CMD_REQUEST_LOGIN_TOKEN = 0x0062
50 QQ_CMD_USER_PROPERTY_OP = 0x0065
51 QQ_CMD_TEMP_SESSION_OP = 0x0066
52 QQ_CMD_SIGNATURE_OP = 0x0067
53 QQ_CMD_RECV_MSG_SYS = 0x0080
54 QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS = 0x0081
55 QQ_CMD_WEATHER_OP = 0x00A6
56 QQ_CMD_ADD_FRIEND_EX = 0x00A7
57 QQ_CMD_AUTHORIZE = 0X00A8
58 QQ_CMD_UNKNOWN = 0xFFFF
59 QQ_SUB_CMD_SEARCH_ME_BY_QQ_ONLY = 0x03
60 QQ_SUB_CMD_SHARE_GEOGRAPHY = 0x04
61 QQ_SUB_CMD_GET_FRIEND_LEVEL = 0x02
62 QQ_SUB_CMD_GET_CLUSTER_ONLINE_MEMBER = 0x01
63 QQ_05_CMD_REQUEST_AGENT = 0x0021
64 QQ_05_CMD_REQUEST_FACE = 0x0022
65 QQ_05_CMD_TRANSFER = 0x0023
66 QQ_05_CMD_REQUEST_BEGIN = 0x0026
67 QQ_CLUSTER_CMD_CREATE_CLUSTER= 0x01
68 QQ_CLUSTER_CMD_MODIFY_MEMBER= 0x02
69 QQ_CLUSTER_CMD_MODIFY_CLUSTER_INFO= 0x03
70 QQ_CLUSTER_CMD_GET_CLUSTER_INFO= 0x04
71 QQ_CLUSTER_CMD_ACTIVATE_CLUSTER= 0x05
72 QQ_CLUSTER_CMD_SEARCH_CLUSTER= 0x06
73 QQ_CLUSTER_CMD_JOIN_CLUSTER= 0x07
74 QQ_CLUSTER_CMD_JOIN_CLUSTER_AUTH= 0x08
75 QQ_CLUSTER_CMD_EXIT_CLUSTER= 0x09
76 QQ_CLUSTER_CMD_SEND_IM= 0x0A
77 QQ_CLUSTER_CMD_GET_ONLINE_MEMBER= 0x0B
78 QQ_CLUSTER_CMD_GET_MEMBER_INFO= 0x0C
79 QQ_CLUSTER_CMD_MODIFY_CARD = 0x0E
80 QQ_CLUSTER_CMD_GET_CARD_BATCH= 0x0F
81 QQ_CLUSTER_CMD_GET_CARD = 0x10
82 QQ_CLUSTER_CMD_COMMIT_ORGANIZATION = 0x11
83 QQ_CLUSTER_CMD_UPDATE_ORGANIZATION= 0x12
84 QQ_CLUSTER_CMD_COMMIT_MEMBER_ORGANIZATION = 0x13
85 QQ_CLUSTER_CMD_GET_VERSION_ID= 0x19
86 QQ_CLUSTER_CMD_SEND_IM_EX = 0x1A
87 QQ_CLUSTER_CMD_SET_ROLE = 0x1B
88 QQ_CLUSTER_CMD_TRANSFER_ROLE = 0x1C
89 QQ_CLUSTER_CMD_CREATE_TEMP = 0x30
90 QQ_CLUSTER_CMD_MODIFY_TEMP_MEMBER = 0x31
91 QQ_CLUSTER_CMD_EXIT_TEMP = 0x32
92 QQ_CLUSTER_CMD_GET_TEMP_INFO = 0x33
93 QQ_CLUSTER_CMD_MODIFY_TEMP_INFO = 0x34
94 QQ_CLUSTER_CMD_SEND_TEMP_IM = 0x35
95 QQ_CLUSTER_CMD_SUB_CLUSTER_OP = 0x36
96 QQ_CLUSTER_CMD_ACTIVATE_TEMP = 0x37
97
98 QQ_CLUSTER_SUB_CMD_ADD_MEMBER = 0x01
99 QQ_CLUSTER_SUB_CMD_REMOVE_MEMBER = 0x02
100 QQ_CLUSTER_SUB_CMD_GET_SUBJECT_LIST = 0x02
101 QQ_CLUSTER_SUB_CMD_GET_DIALOG_LIST = 0x01
102
103 QQ_SUB_CMD_GET_ONLINE_FRIEND = 0x2
104 QQ_SUB_CMD_GET_ONLINE_SERVICE = 0x3
105 QQ_SUB_CMD_UPLOAD_GROUP_NAME = 0x2
106 QQ_SUB_CMD_DOWNLOAD_GROUP_NAME = 0x1
107 QQ_SUB_CMD_SEND_TEMP_SESSION_IM = 0x01
108 QQ_SUB_CMD_BATCH_DOWNLOAD_FRIEND_REMARK = 0x0
109 QQ_SUB_CMD_UPLOAD_FRIEND_REMARK = 0x1
110 QQ_SUB_CMD_REMOVE_FRIEND_FROM_LIST = 0x2
111 QQ_SUB_CMD_DOWNLOAD_FRIEND_REMARK = 0x3
112 QQ_SUB_CMD_MODIFY_SIGNATURE = 0x01
113 QQ_SUB_CMD_DELETE_SIGNATURE = 0x02
114 QQ_SUB_CMD_GET_SIGNATURE = 0x03
115 QQ_SUB_CMD_GET_USER_PROPERTY = 0x01
116 QQ_SUB_CMD_GET_WEATHER = 0x01
117
118 QQ_FILE_CMD_HEART_BEAT = 0x0001
119 QQ_FILE_CMD_HEART_BEAT_ACK = 0x0002
120 QQ_FILE_CMD_TRANSFER_FINISHED = 0x0003
121 QQ_FILE_CMD_FILE_OP = 0x0007
122 QQ_FILE_CMD_FILE_OP_ACK = 0x0008
123 QQ_FILE_CMD_SENDER_SAY_HELLO = 0x0031
124 QQ_FILE_CMD_SENDER_SAY_HELLO_ACK = 0x0032
125 QQ_FILE_CMD_RECEIVER_SAY_HELLO = 0x0033
126 QQ_FILE_CMD_RECEIVER_SAY_HELLO_ACK = 0x0034
127 QQ_FILE_CMD_NOTIFY_IP_ACK = 0x003C
128 QQ_FILE_CMD_PING = 0x003D
129 QQ_FILE_CMD_PONG = 0x003E
130 QQ_FILE_CMD_YES_I_AM_BEHIND_FIREWALL = 0x0040
131 QQ_FILE_CMD_REQUEST_AGENT = 0x0001
132 QQ_FILE_CMD_CHECK_IN = 0x0002
133 QQ_FILE_CMD_FORWARD = 0x0003
134 QQ_FILE_CMD_FORWARD_FINISHED = 0x0004
135 QQ_FILE_CMD_IT_IS_TIME = 0x0005
136 QQ_FILE_CMD_I_AM_READY = 0x0006
137
138 command_str = {
139 0x0001: "QQ_CMD_LOGOUT",
140 0x0002: "QQ_CMD_KEEP_ALIVE",
141 0x0004: "QQ_CMD_MODIFY_INFO",
142 0x0005: "QQ_CMD_SEARCH_USER",
143 0x0006: "QQ_CMD_GET_USER_INFO",
144 0x0009: "QQ_CMD_ADD_FRIEND",
145 0x000A: "QQ_CMD_DELETE_FRIEND",
146 0x000B: "QQ_CMD_ADD_FRIEND_AUTH",
147 0x000D: "QQ_CMD_CHANGE_STATUS",
148 0x0012: "QQ_CMD_ACK_SYS_MSG",
149 0x0016: "QQ_CMD_SEND_IM",
150 0x0017: "QQ_CMD_RECV_IM",
151 0x001C: "QQ_CMD_REMOVE_SELF",
152 0x001D: "QQ_CMD_REQUEST_KEY",
153 0x0022: "QQ_CMD_LOGIN",
154 0x0026: "QQ_CMD_GET_FRIEND_LIST",
155 0x0027: "QQ_CMD_GET_ONLINE_OP",
156 0x002D: "QQ_CMD_SEND_SMS",
157 0x0030: "QQ_CMD_CLUSTER_CMD",
158 0x0031: "QQ_CMD_TEST",
159 0x003C: "QQ_CMD_GROUP_DATA_OP",
160 0x003D: "QQ_CMD_UPLOAD_GROUP_FRIEND",
161 0x003E: "QQ_CMD_FRIEND_DATA_OP",
162 0x0058: "QQ_CMD_DOWNLOAD_GROUP_FRIEND",
163 0x005C: "QQ_CMD_FRIEND_LEVEL_OP",
164 0x005E: "QQ_CMD_PRIVACY_DATA_OP",
165 0x005F: "QQ_CMD_CLUSTER_DATA_OP",
166 0x0061: "QQ_CMD_ADVANCED_SEARCH",
167 0x0062: "QQ_CMD_REQUEST_LOGIN_TOKEN",
168 0x0065: "QQ_CMD_USER_PROPERTY_OP",
169 0x0066: "QQ_CMD_TEMP_SESSION_OP",
170 0x0067: "QQ_CMD_SIGNATURE_OP",
171 0x0080: "QQ_CMD_RECV_MSG_SYS",
172 0x0081: "QQ_CMD_RECV_MSG_FRIEND_CHANGE_STATUS",
173 0x00A6: "QQ_CMD_WEATHER_OP",
174 0x00A7: "QQ_CMD_ADD_FRIEND_EX",
175 0x00A8: "QQ_CMD_AUTHORIZE",
176 0xFFFF: "QQ_CMD_UNKNOWN",
177 0x0021: "_CMD_REQUEST_AGENT",
178 0x0022: "_CMD_REQUEST_FACE",
179 0x0023: "_CMD_TRANSFER",
180 0x0026: "_CMD_REQUEST_BEGIN",
181 }
182
183
185 __hdr__ = (
186 ('header_type', 'B', 2),
187 ('source', 'H', 0),
188 ('command', 'H', 0),
189 ('sequence', 'H', 0),
190 ('qqNum', 'L', 0),
191 )
192
193
195 __hdr__ = (
196 ('header_type', 'B', 3),
197 ('command', 'B', 0),
198 ('sequence', 'H', 0),
199 ('unknown1', 'L', 0),
200 ('unknown2', 'L', 0),
201 ('unknown3', 'L', 0),
202 ('unknown4', 'L', 0),
203 ('unknown5', 'L', 0),
204 ('unknown6', 'L', 0),
205 ('unknown7', 'L', 0),
206 ('unknown8', 'L', 0),
207 ('unknown9', 'L', 0),
208 ('unknown10', 'B', 1),
209 ('unknown11', 'B', 0),
210 ('unknown12', 'B', 0),
211 ('source', 'H', 0),
212 ('unknown13', 'B', 0),
213 )
214
215
217 __hdr__ = (
218 ('header_type', 'B', 5),
219 ('source', 'H', 0),
220 ('unknown', 'H', 0),
221 ('command', 'H', 0),
222 ('sequence', 'H', 0),
223 ('qqNum', 'L', 0),
224 )
225