Package dpkt :: Module qq
[hide private]
[frames] | no frames]

Source Code for Module dpkt.qq

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