def send_data(self, buf): print "[+] Sending data (%s) to %s : %d" % ( self.name, self.client_address[0], self.client_address[1]) print "[+] len(buf) = %d (0x%08X)" % (len(buf), len(buf)) print WAR_Utils.hexdump(buf) self.request.send(buf) return
def recv_data(self, size = 1000): buf = self.request.recv(size) print "[+] Receiving data (%s) from %s : %d" % (self.name, self.client_address[0], self.client_address[1]) buf_len = len(buf) print "[+] len(buf) = %d (0x%08X)" % (buf_len, buf_len) if buf_len == 0: return "" print WAR_Utils.hexdump(buf) return buf
def recv_data(self, size=1000): buf = self.request.recv(size) print "[+] Receiving data (%s) from %s : %d" % ( self.name, self.client_address[0], self.client_address[1]) buf_len = len(buf) print "[+] len(buf) = %d (0x%08X)" % (buf_len, buf_len) if buf_len == 0: return "" print WAR_Utils.hexdump(buf) return buf
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)
def send_data(self, buf): print "[+] Sending data (%s) to %s : %d" % (self.name, self.client_address[0], self.client_address[1]) print "[+] len(buf) = %d (0x%08X)" % (len(buf), len(buf)) print WAR_Utils.hexdump(buf) self.request.send(buf) return