def handle(self): self.OpcodesTableRecv = [ (0x00, "UNKNOWN", self.handle_unknown), (0x01, "VerifyProtocolReq", self.handle_VerifyProtocolReq), (0x02, "UNKNOWN", self.handle_unknown), (0x03, "UNKNOWN", self.handle_unknown), (0x04, "UNKNOWN", self.handle_unknown), (0x05, "AuthSessionTokenReq", self.handle_AuthSessionTokenReq), (0x06, "UNKNOWN", self.handle_unknown), (0x07, "GetCharSummaryListReq", self.handle_GetCharSummaryListReq), (0x08, "UNKNOWN", self.handle_unknown), (0x09, "GetClusterList", self.handle_GetClusterList), (0x0A, "UNKNOWN", self.handle_unknown), (0x0B, "MetricEventNotify", self.handle_MetricEventNotify), (0x0C, "UNKNOWN", self.handle_unknown), (0x0D, "GetAccountProperties", self.handle_GetAccountProperties), (0x0E, "UNKNOWN", self.handle_unknown), (0x0F, "UNKNOWN", self.handle_unknown), ] self.encrypted = False self.name = "LoginTCPHandler" print "LoginTCPHandler : New connection from %s : %d" % ( self.client_address[0], self.client_address[1]) while True: buf = self.recv_data() if buf == "": break size_packet, buf = WAR_Utils.GetByte(buf) opcode_packet, buf = WAR_Utils.GetByte(buf) print "[+] Size packet : %08X" % (size_packet) print "[+] Opcode packet : %08X" % (opcode_packet) if size_packet != 0: buf = self.recv_data(size_packet) else: buf = "" self.handle_opcode(opcode_packet, buf)