def _connect(self): try: self._socket.close() except: pass self._socket = socks.socksocket() self._socket.settimeout(5) try: self._proxtypeserver, self._proxport = self._proxy.split(":") self._proxtype, self._proxserver = self._proxtypeserver.split("|") self._socket.setproxy(eval("socks.PROXY_TYPE_" + self._proxtype), self._proxserver, int(self._proxport)) except: ProxyManager.badProxy(self._proxy) pass try: _serverip, _serverport = self._server self._socket.connect((_serverip, _serverport)) self._socket.sendall("\x02" + CraftString(self._nickname + ";" + _serverip + ":" + str(_serverport))) except: ProxyManager.badProxy(self._proxy) return try: self._socket.settimeout(35) kz = self._startLoop() if kz == "KE": self._callback("KE", self) except: if self._sdebug: raise return
def __init__( self, nick, password="", proxy="", server="", isOffline=False, printchat=False, debug=False, attacks=[], prependFlood="", msg="", count=5, callback=dummy, eventHook=None, ): self._queuedMessages = list() self._kre = False self._eHook = eventHook self._connreconn = False self._msg = msg self._count = count self._nickname = nick self._password = password self._printChat = printchat self._server = server self._isOffline = isOffline if proxy != None: self._proxy = ProxyManager.getProxy() self._loggedIn = False self._sdebug = debug self._attacks = attacks self._prependFlood = prependFlood self._callback = callback self._isConnected = False
def _connect(self): try: self._socket.close() except: pass if self._password != "": print self._password self._session = Session.from_credentials(self._nickname, self._password) print self._password self._socket = socks.socksocket() self._socket.settimeout(5) try: self._proxtype = self._proxy.split('|')[0] self._proxport = self._proxy.split(':')[1] self._proxserver = self._proxy.split(':')[0].split('|')[1] self._socket.setproxy(eval("socks.PROXY_TYPE_" + self._proxtype), self._proxserver, int(self._proxport)) #self._socket.setproxy(None, self._proxserver, int(self._proxport)) except: ProxyManager.badProxy(self._proxy) try: _serverip = self._server[0] _serverport = self._server[1] self._socket.connect((_serverip, _serverport)) self.SendPacket('\x00' + encode_varint(self._protonum) + CraftString(_serverip) + struct.pack('>h', _serverport) + encode_varint(2)) self.SendPacket('\x00' + CraftString(self._nickname)) except: ProxyManager.badProxy(self._proxy) return try: self._socket.settimeout(35) kz = self._startLoop() if kz == 'KE': self._callback('KE', self) except Exception as e: print str(e) if self._sdebug: raise return
def _connect(self): try: self._socket.close() except: pass if self._password != "": print self._password self._session = Session.from_credentials(self._nickname, self._password) print self._password self._socket = socks.socksocket() self._socket.settimeout(5) try: self._proxtype = self._proxy.split('|')[0] self._proxport = self._proxy.split(':')[1] self._proxserver = self._proxy.split(':')[0].split('|')[1] self._socket.setproxy(eval("socks.PROXY_TYPE_" + self._proxtype), self._proxserver, int(self._proxport)) #self._socket.setproxy(None, self._proxserver, int(self._proxport)) except: ProxyManager.badProxy(self._proxy) try: _serverip=self._server[0] _serverport = self._server[1] self._socket.connect((_serverip, _serverport)) self.SendPacket('\x00' + encode_varint(self._protonum) + CraftString(_serverip) + struct.pack('>h', _serverport)+encode_varint(2)) self.SendPacket('\x00' + CraftString(self._nickname)) except: ProxyManager.badProxy(self._proxy) return try: self._socket.settimeout(35) kz = self._startLoop() if kz == 'KE': self._callback('KE', self) except Exception as e: print str(e) if self._sdebug: raise return
def __init__(self, nick, password='', protonum=210, proxy='', server='', hostx='', portx='', isOffline=False, printchat=False, debug=False, attacks=[], prependFlood='', msg='', count=5, callback=dummy, eventHook=None): self._queuedMessages = list() self._kre = False self._eHook = eventHook self._connreconn = False self._msg = msg self._count = count self._nickname = nick self._password = password self._protonum = protonum self._printChat = printchat self._server = server self._isOffline = isOffline self._hostx = hostx self._portx = portx if proxy != None: self._proxy = ProxyManager.getProxy() self._loggedIn = False self._sdebug = debug self._attacks = attacks self._prependFlood = prependFlood self._callback = callback self._isConnected = False return
def __init__(self, nick, password = '', protonum = 210, proxy = '', server = '', hostx = '', portx = '', isOffline = False, printchat = False, debug = False, attacks = [], prependFlood = '', msg = '', count = 5, callback = dummy, eventHook = None): self._queuedMessages = list() self._kre = False self._eHook = eventHook self._connreconn = False self._msg = msg self._count = count self._nickname = nick self._password = password self._protonum = protonum self._printChat = printchat self._server = server self._isOffline = isOffline self._hostx = hostx self._portx = portx if proxy != None: self._proxy = ProxyManager.getProxy() self._loggedIn = False self._sdebug = debug self._attacks = attacks self._prependFlood = prependFlood self._callback = callback self._isConnected = False return
def _runLoop(self): while True: try: _packet = self._getBytes(1) except: _packet = "ER" if self._count == 0: self._action() self._count = 20 self._count = self._count - 1 if self._eHook != None: if self._eHook(_packet, self) == True: continue if _packet == "\x00": self._debug("Ping") self._socket.sendall("\x00" + self._getBytes(4)) elif _packet == "\x01": self._debug("Login packet") self._log("Connected!") self._getBytes(4) self._readStringLong() self._readStringLong() self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) elif _packet == "\x02": # Handshake ProxyManager.coolProxy(self._proxy) server_packet = self._readStringLong() self._debug("Handshake packet [" + server_packet + "]") self._isOffline = True self._isConnected = True if server_packet == "-": server_packet = "+" if server_packet != "+" and self._password != "": self._isOffline = False while True: _data = "user="******"&password="******"&version=12" opener = urllib2.urlopen if self._proxy != None: opener = urllib2.build_opener( urllib2.ProxyHandler({"https": self._proxserver + ":" + self._proxport}) ) openURL = opener.open _handle = openURL("https://login.minecraft.net/", data=_data) _retdata = _handle.read().split(":") try: _version, _deprecated, self._nickname, self._sessionId = _retdata except: self._log("Error! [" + ":".join(_retdata) + "]") if _retdata.find("Too many") == -1: return "KE" continue _answer = urllib2.urlopen( "http://session.minecraft.net/game/joinserver.jsp?user="******"&sessionId=" + self._sessionId + "&serverId=" + server_packet ).read() if _answer != "OK": self._log("Oops! [" + _answer + "]") self._sessionId = "" continue self._loggedIn = True break self._socket.sendall( "\x01\x00\x00\x00\x1d" + CraftString(self._nickname) + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) self._socket.settimeout(20) elif _packet == "\x03": msg = self._readStringLong() if self._printChat == True: self._log("Chat message [" + msg + "]") else: self._debug("Chat message [" + msg + "]") if self._loggedIn == False: if msg.find("login") != -1: self._log("Logging in!") self._queuedMessages.append("/login omfg1336") self._loggedIn = True if msg.find("register") != -1: self._log("Registering! [" + msg + "]") self._queuedMessages.append("/register omfg1336") self._queuedMessages.append("/setpassword omfg1336") self._queuedMessages.append("/register omfg1336 omfg1336") self._queuedMessages.append("/login omfg1336") self._loggedIn = True elif _packet == "\x04": self._debug("Time Packet") self._getBytes(8) elif _packet == "\x05": self._debug("Entity Equipment") self._getBytes(10) elif _packet == "\x06": self._debug( "Spawn Position [X:" + str(int(binascii.b2a_hex(self._getBytes(4)), 16)) + ", Y:" + str(int(binascii.b2a_hex(self._getBytes(4)), 16)) + ", Z:" + str(int(binascii.b2a_hex(self._getBytes(4)), 16)) + "]" ) elif _packet == "\x08": self._debug("Health Update") self._getBytes(2) self._getBytes(2) self._getBytes(4) elif _packet == "\x09": self._debug("Respawn") self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(2) self._debug(self._readStringLong()) elif _packet == "\x0D": self._debug("Player Position & Look") self._getBytes(8) self._getBytes(8) self._getBytes(8) self._getBytes(8) self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet == "\x11": self._debug("Use Bed") self._getBytes(4) self._getBytes(1) self._getBytes(4) self._getBytes(1) self._getBytes(4) elif _packet == "\x12": self._debug("Animation") self._getBytes(4) self._getBytes(1) elif _packet == "\x14": self._getBytes(5) self._debug("Player Spawn [" + self._readString() + "]") self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(2) elif _packet == "\x15": self._debug("Pickup Spawn") self._getBytes(4) self._getBytes(2) self._getBytes(1) self._getBytes(2) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) elif _packet == "\x16": self._debug("Collect Item") self._getBytes(4) self._getBytes(4) elif _packet == "\x17": # assert self._getBytes(1) == "\x00" self._getBytes(4) self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) lolz = "Normal" if self._getBytes(4) != "\x00\x00\x00\x00": lolz = "Fireball" self._getBytes(2) self._getBytes(2) self._getBytes(2) self._debug("Add Object/Vehicle [" + lolz + "]") elif _packet == "\x18": self._debug("Mob Spawn") self._getBytes(4) self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._genMetadata() elif _packet == "\x19": self._getBytes(4) self._debug("Painting [" + self._readStringLong() + "]") self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet == "\x1A": self._debug("Experience Drop") self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(2) elif _packet == "\x1C": self._debug("Entity Velocity") self._getBytes(4) self._getBytes(2) self._getBytes(2) self._getBytes(2) elif _packet == "\x1D": self._debug("Destroy Entity") self._getBytes(4) elif _packet == "\x1E": self._debug("Entity") self._getBytes(4) elif _packet == "\x1F": self._debug("Entity Relative Move") self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) elif _packet == "\x20": self._debug("Entity Look") self._getBytes(4) self._getBytes(1) self._getBytes(1) elif _packet == "\x21": self._debug("Entity Look and Relative Move") self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(1) elif _packet == "\x22": self._debug("Entity Teleport") self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) elif _packet == "\x23": self._debug("Entity Head Look") self._getBytes(4) self._getBytes(1) elif _packet == "\x26": self._debug("Entity Status") self._getBytes(4) self._getBytes(1) elif _packet == "\x27": self._debug("Entity Attach") self._getBytes(4) self._getBytes(4) elif _packet == "\x28": self._debug("Entity Metadata") self._getBytes(4) self._genMetadata() elif _packet == "\x29": self._debug("Entity Effect") self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(2) elif _packet == "\x2A": self._debug("Remove Entity Effect") self._getBytes(4) self._getBytes(1) elif _packet == "\x2B": self._debug("Experience Update") self._getBytes(4) self._getBytes(2) self._getBytes(2) elif _packet == "\x32": self._debug("Pre-Chunk Packet") self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet == "\x33": self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(2) self._getBytes(2) lent = struct.unpack(">I", self._getBytes(4))[0] self._getBytes(4) self._debug("Chunk Update [" + str(lent) + "]") self._getBytes(lent) elif _packet == "\x34": self._debug("Multi Block Change") self._getBytes(4) self._getBytes(4) self._getBytes(1) lentk = int(binascii.b2a_hex(self._getBytes(4)), 16) self._getBytes(lentk) elif _packet == "\x35": self._debug("Block Change") self._getBytes(4) self._getBytes(1) self._getBytes(4) self._getBytes(1) self._getBytes(1) elif _packet == "\x36": self._debug("Block Action") self._getBytes(4) self._getBytes(2) self._getBytes(4) self._getBytes(1) self._getBytes(1) elif _packet == "\x3C": self._debug("Explosion") self._getBytes(8) self._getBytes(8) self._getBytes(8) self._getBytes(4) lent = int(binascii.b2a_hex(self._getBytes(4)), 16) self._getBytes(lent) self._getBytes(lent) self._getBytes(lent) elif _packet == "\x3D": self._debug("Sound/particle effect") self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(4) self._getBytes(4) elif _packet == "\x46": self._debug("New/Inval_packet State") self._getBytes(1) self._getBytes(1) elif _packet == "\x47": self._debug("Thunderbolt") self._getBytes(4) self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet == "\x64": self._getBytes(1) self._getBytes(1) self._debug("Open window [" + self._readString() + "]") self._getBytes(1) elif _packet == "\x65": self._debug("Close Window") self._getBytes(1) elif _packet == "\x66": pass elif _packet == "\x67": self._getBytes(3) self._debug("Set Slot") self._readSlot() elif _packet == "\x68": self._getBytes(1) self._debug("Set Window Items") list = int(binascii.b2a_hex(self._getBytes(2)), 16) while list != 0: self._readSlot() list = list - 1 elif _packet == "\x69": pass elif _packet == "\x6A": pass elif _packet == "\x6C": pass elif _packet == "\x82": self._getBytes(4) self._getBytes(2) self._getBytes(4) a = self._readStringLong() b = self._readStringLong() c = self._readStringLong() d = self._readStringLong() self._debug("Update Sign [" + a + ":" + b + ":" + c + ":" + d + "]") elif _packet == "\x83": self._debug("Item Data") self._getBytes(2) self._getBytes(2) sz = ord(self._getBytes(1)) self._getBytes(sz) elif _packet == "\x84": self._debug("Update Tile Entity") self._getBytes(4) self._getBytes(2) self._getBytes(4) self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet == "\xC8": self._debug("Increment Statistic") self._getBytes(4) self._getBytes(1) elif _packet == "\xC9": self._getBytes(1) self._debug("Player List Item [" + self._readString() + "]") self._getBytes(1) self._getBytes(2) elif _packet == "\xCA": self._debug("Player Abilities") self._getBytes(4) elif _packet == "\xFA": self._debug("Plugin message [" + self._readStringLong() + "]") sz = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(sz) elif _packet == "\xFF": rl = self._readStringLong() self._log("Disconnected! [" + rl + "]") self._isConnected = False try: self._socket.close() except: pass return elif _packet == "": pass elif _packet == "ER": if self._isConnected: self._log("Disconnected! [Connection Error]") try: if "pFlood" in self._attacks and self._isConnected: self._isConnected = False else: self._socket.close() except: pass self._isConnected = False return else: if self._isConnected: self._log("Disconnected! [Protocol Error]") try: self._socket.close() self._isConnected = False except: pass self._debug("Unmatched Packet [" + binascii.b2a_hex(_packet) + "], out of sync?")
def checkIP(PM): s = requests.Session() PM.proxyUp(s) print s.get("http://httpbin.org/ip").text def recoverMail(): pass PM = ProxyManager() PM.loadProxies(fromFile = True, checkProxies=False) CS = CaptchaSolver() CS.startThread(PM) friendIDs = parseFriends(None) FM = FriendMiner() FM.mineFriends(friendIDs, PM, CS)
def _runLoop(self): while True: try: self._sdebug = True self._packet = None self._packet_len = self._readVarint() if self._packet_len == None or self._packet_len <= 0: _packet_id = 'ER' if self._threshold != -1: data_lenght = self._readVarint() compressed = self._getPacket() if data_lenght == 0: self._packet = io.BytesIO(compressed) else: self._packet = io.BytesIO(compressed.decode('zlib')) _packet_id = self._readVarint() else: tmp_p = self._getPacket() self._packet = io.BytesIO(tmp_p) _packet_id = self._readVarint() self._old_packet_id = _packet_id except Exception as e: self._log( 'Nao conseguiu conectar (Servidor caiu ou bloqueou o IP)') _packet_id = 'ER' return if self._isConnected == False: if _packet_id == 0x00: rl = self._readString() self._log('Disconnected! [' + rl + ']') self._isConnected = False try: self._socket.close() except: pass return elif _packet_id == 0x01: self._debug('Encryption Request') server_id = self._readString() print server_id shared = self._read_short_array() print shared token = self._read_short_array() print token if shared != '': rsa_key = decode_public_key(shared) shared_secret = generate_shared_secret() print shared_secret response_token = encrypt_with_public_key( token, rsa_key) encrypted_shared_secret = encrypt_with_public_key( shared_secret, rsa_key) server_hash = make_server_hash( server_id, shared_secret, rsa_key, ) join_server(self._session, server_hash) self._SendEncrypt(encrypted_shared_secret, response_token) self._AES = generated_cipher(shared_secret) else: self._SendEncrypt('', token) elif _packet_id == 0x02: ProxyManager.coolProxy(self._proxy) self._debug('Login Success') self._log('Connected!') self._debug(self._readString()) self._debug(self._readString()) self._isConnected = True self.SendPacket( '\x15\x05\x65\x6e\x5f\x55\x53\x0c\x00\x01\x02\x01') self.SendPacket( '\x13\x17\x08\x4d\x43\x7c\x42\x72\x61\x6e\x64\x00\x07\x76\x61\x6e\x69\x6c\x6c\x61' ) elif _packet_id == 0x03: self._debug('Set Compression') self._threshold = self._readVarint() else: if self._count == 0: self._action() self._count = 10 self._count = self._count - 1 #if self._eHook != None: # if self._eHook(_packet_id, self) == True: # continue if _packet_id == 0x00: self._debug('Ping') self.SendPacket(self._readVarint()) elif _packet_id == 0x01: self._debug('Join Game') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._readString() elif _packet_id == 0x02: self._debug('Chat Message') msg = self._readString() if self._printChat == True: self._log('Chat message [' + msg + ']') else: self._debug('Chat message [' + msg + ']') if self._loggedIn == False: if msg.find('login') != -1: self._log('Logging in! [' + msg + ']') self._queuedMessages.append('/login omfg1336') self._loggedIn = True if msg.find('register') != -1: self._log('Registering! [' + msg + ']') self._queuedMessages.append( '/register omfg1336 omfg1336') self._queuedMessages.append('/register omfg1336') self._queuedMessages.append( '/setpassword omfg1336') self._queuedMessages.append('/login omfg1336') self._loggedIn = True self._log('Done') elif _packet_id == 0x03: self._debug('Time Update') self._getBytes(8) self._getBytes(8) elif _packet_id == 0x04: self._debug('Entity Equipment') self._getBytes(4) self._getBytes(2) self._readSlot() elif _packet_id == 0x05: x = self._getBytes(4) y = self._getBytes(4) z = self._getBytes(4) self._debug('Spawn Position [X:' + str(int(binascii.b2a_hex(x), 16)) + ', Y:' + str(int(binascii.b2a_hex(y), 16)) + ', Z:' + str(int(binascii.b2a_hex(z), 16)) + ']') elif _packet_id == 0x06: self._debug('Update Health') self._getBytes(4) self._getBytes(2) self._getBytes(4) elif _packet_id == 0x07: self._debug('Respawn') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._debug(self._readString()) elif _packet_id == 0x08: self._debug('Player Position And Look') self._getBytes(8) self._getBytes(8) self._getBytes(8) self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet_id == 0x09: self._debug('Held Item Change') self._getBytes(1) elif _packet_id == 0x0A: self._debug('Use Bed') self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(4) elif _packet_id == 0x0B: self._debug('Animation') self._readVarint() self._getBytes(1) elif _packet_id == 0x0C: pass elif _packet_id == 0x0D: self._debug('Collect Item') self._getBytes(4) self._getBytes(4) elif _packet_id == 0x0E: self._debug('Spawn Object') self._readVarint() self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) lolz = 'Normal' if self._getBytes(4) != '\x00\x00\x00\x00': lolz = 'Projectile' self._getBytes(2) self._getBytes(2) self._getBytes(2) self._debug('Add Object/Vehicle [' + lolz + ']') elif _packet_id == 0x0F: self._debug('Spawn Mob') self._readVarint() self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(2) self._getBytes(2) self._getBytes(2) self._genMetadata() elif _packet_id == 0x10: self._readVarint() self._debug('Painting [' + self._readString() + ']') self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x11: self._debug('Spawn Experience Orb') self._readVarint() self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(2) elif _packet_id == 0x12: self._debug('Entity Velocity') self._getBytes(4) self._getBytes(2) self._getBytes(2) self._getBytes(2) elif _packet_id == 0x13: self._debug('Destroy Entities') leng = int(binascii.b2a_hex(self._getBytes(1)), 16) for i in range(leng): self._getBytes(4) elif _packet_id == 0x14: self._debug('Entity') self._getBytes(4) elif _packet_id == 0x15: self._debug('Entity Relative Move') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) elif _packet_id == 0x16: self._debug('Entity Look') self._getBytes(4) self._getBytes(1) self._getBytes(1) elif _packet_id == 0x17: self._debug('Entity Look and Relative Move') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(1) elif _packet_id == 0x18: self._debug('Entity Teleport') self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) elif _packet_id == 0x19: self._debug('Entity Head Look') self._getBytes(4) self._getBytes(1) elif _packet_id == 0x1A: self._debug('Entity Status') self._getBytes(4) self._getBytes(1) elif _packet_id == "\x1B": self._debug('Attach Entity') self._getBytes(4) self._getBytes(4) elif _packet_id == 0x1C: self._debug('Entity Metadata') self._getBytes(4) self._genMetadata() elif _packet_id == 0x1D: self._debug('Entity Effect') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(2) elif _packet_id == 0x1E: self._debug('Remove Entity Effect') self._getBytes(4) self._getBytes(1) elif _packet_id == 0x1F: self._debug('Set Experience') self._getBytes(4) self._getBytes(2) self._getBytes(2) elif _packet_id == 0x20: self._debug('Entity Properties') elif _packet_id == 0x21: self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(2) self._getBytes(2) lent = int(binascii.b2a_hex(self._getBytes(4)), 16) self._debug('Chunk Update [' + str(lent) + ']') self._getBytes(lent) elif _packet_id == 0x22: self._debug('Multi Block Change') self._getBytes(4) self._getBytes(4) self._getBytes(2) lentk = int(binascii.b2a_hex(self._getBytes(4)), 16) self._getBytes(lentk) elif _packet_id == 0x23: self._debug('Block Change') pass elif _packet_id == 0x24: self._debug('Block Action') self._getBytes(4) self._getBytes(2) self._getBytes(4) self._getBytes(1) self._getBytes(1) self._readVarint() elif _packet_id == 0x25: self._debug('Block Break Animation') self._readVarint() self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet_id == 0x26: self._debug('Map Chunk Bulk') elif _packet_id == 0x27: self._debug('Explosion') self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) lent = int(binascii.b2a_hex(self._getBytes(4)), 16) self._getBytes(lent * 3) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x28: self._debug('Effect') self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet_id == 0x29: self._debug('Named Sound Effect') self._readString() self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet_id == 0x2A: self._debug('New/Inval_packet State') self._readString() self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x2B: self._debug('Change Game State') self._getBytes(1) self._getBytes(4) elif _packet_id == 0x2C: self._debug('Spawn Global Entity - thunderbolt') self._readVarint() self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x2D: self._getBytes(1) WType = int(binascii.b2a_hex(self._getBytes(1)), 16) self._debug('Open window [' + self._readString() + ']') self._getBytes(1) self._getBytes(1) if WType == 1: self._getBytes(4) elif _packet_id == 0x2E: self._debug('Close Window') self._getBytes(1) elif _packet_id == 0x2F: self._getBytes(1) self._getBytes(2) self._debug('Set Slot') self._readSlot() elif _packet_id == 0x30: self._getBytes(1) self._debug('Window Items') lens = int(binascii.b2a_hex(self._getBytes(2)), 16) while lens != 0: self._readSlot() lens = lens - 1 elif _packet_id == 0x31: self._debug('Window Property') self._getBytes(1) self._getBytes(2) self._getBytes(2) elif _packet_id == 0x32: self._debug('Confirm Transaction') self._getBytes(1) self._getBytes(2) self._getBytes(1) elif _packet_id == 0x33: self._getBytes(4) self._getBytes(2) self._getBytes(4) a = self._readString() b = self._readString() c = self._readString() d = self._readString() self._debug('Update Sign [' + a + ':' + b + ':' + c + ':' + d + ']') elif _packet_id == 0x34: self._debug('Maps') self._readVarint() leng = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(leng) elif _packet_id == 0x35: self._debug('Update Block Entity') self._getBytes(4) self._getBytes(2) self._getBytes(4) self._getBytes(1) leng = int(binascii.b2a_hex(self._getBytes(2)), 16) if leng > 0: self._getBytes(leng) elif _packet_id == 0x36: self._debug('Sign Editor Open') self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x37: self._debug('Increment Statistic') leng = self._readVarint() for i in range(leng): self._readString() self._readVarint() elif _packet_id == 0x38: self._debug('Player List Item [' + self._readString() + ']') self._getBytes(1) self._getBytes(2) elif _packet_id == 0x39: self._debug('Player Abilities') self._getBytes(1) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x3A: self._debug('Tab-Complete') self._readVarint() self._readString() elif _packet_id == 0x3B: self._debug('Scoreboard Objective') self._readString() self._readString() self._getBytes(1) elif _packet_id == 0x3C: self._debug('Update Score') self._readString() update = int(binascii.b2a_hex(self._getBytes(1)), 16) if update != 1: self._readString() self._getBytes(4) elif _packet_id == 0x3D: self._debug('Display Scoreboard') self._getBytes(1) self._readString() elif _packet_id == 0x3E: self._debug('Teams') self._readString() mode = int(binascii.b2a_hex(self._getBytes(1)), 16) if mode == 0: self._readString() self._readString() self._readString() self._getBytes(1) leng = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(leng) if mode == 2: self._readString() self._readString() self._readString() self._getBytes(1) if mode == 3: leng = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(leng) if mode == 4: leng = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(leng) elif _packet_id == 0x3F: self._debug('Plugin message [' + self._readString() + ']') sz = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(sz) else: if _packet_id == 0x40: rl = self._readString() self._log('Disconnected! [' + rl + ']') self._isConnected = False try: self._socket.close() except: pass return if _packet_id == '': pass else: if _packet_id == 'ER': if self._isConnected: self._log('Disconnected! [Connection Error]' + self._old_packet_id) try: if 'pFlood' in self._attacks and self._isConnected: self._isConnected = False else: self._socket.close() except: pass self._isConnected = False return return
def _runLoop(self): while True: try: self._sdebug =True self._packet = None self._packet_len = self._readVarint() if self._packet_len == None or self._packet_len <= 0: _packet_id = 'ER' if self._threshold != -1: data_lenght = self._readVarint() compressed = self._getPacket() if data_lenght==0: self._packet = io.BytesIO(compressed) else: self._packet = io.BytesIO(compressed.decode('zlib')) _packet_id = self._readVarint() else: tmp_p = self._getPacket() self._packet = io.BytesIO(tmp_p) _packet_id = self._readVarint() self._old_packet_id = _packet_id except Exception as e: print str(e) self._log('Disconnected!') _packet_id = 'ER' return if self._isConnected ==False: if _packet_id == 0x00: rl = self._readString() self._log('Disconnected! [' + rl + ']') self._isConnected = False try: self._socket.close() except: pass return elif _packet_id == 0x01: self._debug('Encryption Request') server_id = self._readString() print server_id shared = self._read_short_array() print shared token = self._read_short_array() print token if shared != '': rsa_key = decode_public_key(shared) shared_secret = generate_shared_secret() print shared_secret response_token = encrypt_with_public_key( token, rsa_key ) encrypted_shared_secret = encrypt_with_public_key( shared_secret, rsa_key ) server_hash = make_server_hash( server_id, shared_secret, rsa_key, ) join_server(self._session, server_hash) self._SendEncrypt(encrypted_shared_secret,response_token) self._AES = generated_cipher(shared_secret) else: self._SendEncrypt('',token) elif _packet_id == 0x02: ProxyManager.coolProxy(self._proxy) self._debug('Login Success') self._log('Connected!') self._debug(self._readString()) self._debug(self._readString()) self._isConnected = True self.SendPacket('\x15\x05\x65\x6e\x5f\x55\x53\x0c\x00\x01\x02\x01') self.SendPacket('\x13\x17\x08\x4d\x43\x7c\x42\x72\x61\x6e\x64\x00\x07\x76\x61\x6e\x69\x6c\x6c\x61') elif _packet_id == 0x03: self._debug('Set Compression') self._threshold = self._readVarint() else: if self._count == 0: self._action() self._count = 10 self._count = self._count - 1 #if self._eHook != None: # if self._eHook(_packet_id, self) == True: # continue if _packet_id == 0x00: self._debug('Ping') self.SendPacket(self._readVarint()) elif _packet_id == 0x01: self._debug('Join Game') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._readString() elif _packet_id == 0x02: self._debug('Chat Message') msg = self._readString() if self._printChat == True: self._log('Chat message [' + msg + ']') else: self._debug('Chat message [' + msg + ']') if self._loggedIn == False: if msg.find('login') != -1: self._log('Logging in! [' + msg + ']') self._queuedMessages.append('/login omfg1336') self._loggedIn = True if msg.find('register') != -1: self._log('Registering! [' + msg + ']') self._queuedMessages.append('/register omfg1336 omfg1336') self._queuedMessages.append('/register omfg1336') self._queuedMessages.append('/setpassword omfg1336') self._queuedMessages.append('/login omfg1336') self._loggedIn = True self._log('Done') elif _packet_id == 0x03: self._debug('Time Update') self._getBytes(8) self._getBytes(8) elif _packet_id == 0x04: self._debug('Entity Equipment') self._getBytes(4) self._getBytes(2) self._readSlot() elif _packet_id == 0x05: x = self._getBytes(4) y = self._getBytes(4) z = self._getBytes(4) self._debug('Spawn Position [X:' + str(int(binascii.b2a_hex(x), 16)) + ', Y:' + str(int(binascii.b2a_hex(y), 16)) + ', Z:' + str(int(binascii.b2a_hex(z), 16)) + ']') elif _packet_id == 0x06: self._debug('Update Health') self._getBytes(4) self._getBytes(2) self._getBytes(4) elif _packet_id == 0x07: self._debug('Respawn') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._debug(self._readString()) elif _packet_id == 0x08: self._debug('Player Position And Look') self._getBytes(8) self._getBytes(8) self._getBytes(8) self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet_id == 0x09: self._debug('Held Item Change') self._getBytes(1) elif _packet_id == 0x0A: self._debug('Use Bed') self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(4) elif _packet_id == 0x0B: self._debug('Animation') self._readVarint() self._getBytes(1) elif _packet_id == 0x0C: pass elif _packet_id == 0x0D: self._debug('Collect Item') self._getBytes(4) self._getBytes(4) elif _packet_id == 0x0E: self._debug('Spawn Object') self._readVarint() self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) lolz = 'Normal' if self._getBytes(4) != '\x00\x00\x00\x00': lolz = 'Projectile' self._getBytes(2) self._getBytes(2) self._getBytes(2) self._debug('Add Object/Vehicle [' + lolz + ']') elif _packet_id == 0x0F: self._debug('Spawn Mob') self._readVarint() self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(2) self._getBytes(2) self._getBytes(2) self._genMetadata() elif _packet_id == 0x10: self._readVarint() self._debug('Painting [' + self._readString() + ']') self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x11: self._debug('Spawn Experience Orb') self._readVarint() self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(2) elif _packet_id == 0x12: self._debug('Entity Velocity') self._getBytes(4) self._getBytes(2) self._getBytes(2) self._getBytes(2) elif _packet_id == 0x13: self._debug('Destroy Entities') leng = int(binascii.b2a_hex(self._getBytes(1)),16) for i in range(leng): self._getBytes(4) elif _packet_id == 0x14: self._debug('Entity') self._getBytes(4) elif _packet_id == 0x15: self._debug('Entity Relative Move') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) elif _packet_id == 0x16: self._debug('Entity Look') self._getBytes(4) self._getBytes(1) self._getBytes(1) elif _packet_id == 0x17: self._debug('Entity Look and Relative Move') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(1) self._getBytes(1) elif _packet_id == 0x18: self._debug('Entity Teleport') self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(1) elif _packet_id == 0x19: self._debug('Entity Head Look') self._getBytes(4) self._getBytes(1) elif _packet_id == 0x1A: self._debug('Entity Status') self._getBytes(4) self._getBytes(1) elif _packet_id == "\x1B": self._debug('Attach Entity') self._getBytes(4) self._getBytes(4) elif _packet_id == 0x1C: self._debug('Entity Metadata') self._getBytes(4) self._genMetadata() elif _packet_id == 0x1D: self._debug('Entity Effect') self._getBytes(4) self._getBytes(1) self._getBytes(1) self._getBytes(2) elif _packet_id == 0x1E: self._debug('Remove Entity Effect') self._getBytes(4) self._getBytes(1) elif _packet_id == 0x1F: self._debug('Set Experience') self._getBytes(4) self._getBytes(2) self._getBytes(2) elif _packet_id == 0x20: self._debug('Entity Properties') elif _packet_id == 0x21: self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(2) self._getBytes(2) lent = int(binascii.b2a_hex(self._getBytes(4)), 16) self._debug('Chunk Update [' + str(lent) + ']') self._getBytes(lent) elif _packet_id == 0x22: self._debug('Multi Block Change') self._getBytes(4) self._getBytes(4) self._getBytes(2) lentk = int(binascii.b2a_hex(self._getBytes(4)), 16) self._getBytes(lentk) elif _packet_id == 0x23: self._debug('Block Change') pass elif _packet_id == 0x24: self._debug('Block Action') self._getBytes(4) self._getBytes(2) self._getBytes(4) self._getBytes(1) self._getBytes(1) self._readVarint() elif _packet_id == 0x25: self._debug('Block Break Animation') self._readVarint() self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet_id == 0x26: self._debug('Map Chunk Bulk') elif _packet_id == 0x27: self._debug('Explosion') self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) lent = int(binascii.b2a_hex(self._getBytes(4)), 16) self._getBytes(lent*3) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x28: self._debug('Effect') self._getBytes(4) self._getBytes(4) self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet_id == 0x29: self._debug('Named Sound Effect') self._readString() self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(1) elif _packet_id == 0x2A: self._debug('New/Inval_packet State') self._readString() self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x2B: self._debug('Change Game State') self._getBytes(1) self._getBytes(4) elif _packet_id == 0x2C: self._debug('Spawn Global Entity - thunderbolt') self._readVarint() self._getBytes(1) self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x2D: self._getBytes(1) WType = int(binascii.b2a_hex(self._getBytes(1)),16) self._debug('Open window [' + self._readString() + ']') self._getBytes(1) self._getBytes(1) if WType==1: self._getBytes(4) elif _packet_id == 0x2E: self._debug('Close Window') self._getBytes(1) elif _packet_id == 0x2F: self._getBytes(1) self._getBytes(2) self._debug('Set Slot') self._readSlot() elif _packet_id == 0x30: self._getBytes(1) self._debug('Window Items') lens = int(binascii.b2a_hex(self._getBytes(2)), 16) while lens != 0: self._readSlot() lens = lens - 1 elif _packet_id == 0x31: self._debug('Window Property') self._getBytes(1) self._getBytes(2) self._getBytes(2) elif _packet_id == 0x32: self._debug('Confirm Transaction') self._getBytes(1) self._getBytes(2) self._getBytes(1) elif _packet_id == 0x33: self._getBytes(4) self._getBytes(2) self._getBytes(4) a = self._readString() b = self._readString() c = self._readString() d = self._readString() self._debug('Update Sign [' + a + ':' + b + ':' + c + ':' + d + ']') elif _packet_id == 0x34: self._debug('Maps') self._readVarint() leng = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(leng) elif _packet_id == 0x35: self._debug('Update Block Entity') self._getBytes(4) self._getBytes(2) self._getBytes(4) self._getBytes(1) leng = int(binascii.b2a_hex(self._getBytes(2)), 16) if leng>0: self._getBytes(leng) elif _packet_id == 0x36: self._debug('Sign Editor Open') self._getBytes(4) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x37: self._debug('Increment Statistic') leng = self._readVarint() for i in range(leng): self._readString() self._readVarint() elif _packet_id == 0x38: self._debug('Player List Item [' + self._readString() + ']') self._getBytes(1) self._getBytes(2) elif _packet_id == 0x39: self._debug('Player Abilities') self._getBytes(1) self._getBytes(4) self._getBytes(4) elif _packet_id == 0x3A: self._debug('Tab-Complete') self._readVarint() self._readString() elif _packet_id == 0x3B: self._debug('Scoreboard Objective') self._readString() self._readString() self._getBytes(1) elif _packet_id == 0x3C: self._debug('Update Score') self._readString() update = int(binascii.b2a_hex(self._getBytes(1)), 16) if update != 1: self._readString() self._getBytes(4) elif _packet_id == 0x3D: self._debug('Display Scoreboard') self._getBytes(1) self._readString() elif _packet_id == 0x3E: self._debug('Teams') self._readString() mode = int(binascii.b2a_hex(self._getBytes(1)), 16) if mode == 0: self._readString() self._readString() self._readString() self._getBytes(1) leng = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(leng) if mode == 2: self._readString() self._readString() self._readString() self._getBytes(1) if mode == 3: leng = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(leng) if mode == 4: leng = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(leng) elif _packet_id == 0x3F: self._debug('Plugin message [' + self._readString() + ']') sz = int(binascii.b2a_hex(self._getBytes(2)), 16) self._getBytes(sz) else: if _packet_id == 0x40: rl = self._readString() self._log('Disconnected! [' + rl + ']') self._isConnected = False try: self._socket.close() except: pass return if _packet_id == '': pass else: if _packet_id == 'ER': if self._isConnected: self._log('Disconnected! [Connection Error]'+ self._old_packet_id) try: if 'pFlood' in self._attacks and self._isConnected: self._isConnected = False else: self._socket.close() except: pass self._isConnected = False return return
def main(): """ the entrance of whole system :return: """ getter_queue = Queue(maxsize=MAXSIZE_OF_QUEUE) appender_queue = Queue(maxsize=MAXSIZE_OF_QUEUE) usage_queue = Queue(maxsize=MAXSIZE_OF_QUEUE) verify_queue = Queue(maxsize=MAXSIZE_OF_QUEUE) pm = ProxyManager.ProxyManager(getter_queue=getter_queue, appender_queue=appender_queue, usage_queue=usage_queue, verify_queue=verify_queue, host=HOST, database=DATABASE, pwd=PASSWORD, user=USER, port=PORT, multiple_timeout=MULTIPLE_TIMEOUT_WHILE_NO_PROXY, hia_amount=MAX_QUANTITY_OF_HIA_PROXY_SELECT, rarely_amount=MAX_QUANTITY_OF_RARELY_USED_PROXY_SELECT, rarely_time=INTERVAL_TIME_OF_RARELY_USED_PROXY) vm = VerifyManager.VerifyManager(verify_queue=verify_queue, feedback_queue=usage_queue, sleep_time=SLEEPING_TIME_FOR_VERIFY_MANAGER, interval_time=INTERVAL_TIME_OF_VERIFY) cm = CrawlerManager.CrawlerManager(url_getter=Parser.xici_url_construction, data_parse=Parser.xici_parse, data_queue=appender_queue, feedback_queue=usage_queue, proxy_queue=getter_queue, maxsize_queue=MAXSIZE_OF_QUEUE, interval_time=SLEEPING_TIME_FOR_CRAWLER_MANAGER, base_time=BASE_TIMEOUT_WHILE_WAITING_PROXY, multiple_time=MULTIPLE_TIMEOUT_WHILE_WAITING_PROXY) sm = Process(target=modify_launcher, args=(getter_queue, 20)) try: log_writer('pm start') pm.start() # proxy manager start log_writer('vm start') vm.start() # verify manager start log_writer('cm start') cm.start() # crawler manager start log_writer('squid modifier start') sm.start() # squid modifier start # the system controller --only func exit now while True: order = input() if order == 'exit': break finally: if pm.is_alive(): pm.terminate() if vm.is_alive(): vm.terminate() if cm.is_alive(): cm.terminate() if sm.is_alive(): sm.terminate()
import urllib2, urllib, re, time, sys, os, os.path, math, random, json, multiprocessing, requests from bs4 import BeautifulSoup import Keywords, MultiProcessor, ProxyManager, ProxyFetcher, TaskLogic, Worker # main if __name__ == '__main__': # change keywords_path, nothing else keywords_path = "/Users/fabianschneider/Desktop/writing/keywords-amz/legacy/" # logic go kw = Keywords.Keywords() # fetch current proxies ttt = time.time() print '\n\n\n> Preparing proxies...' proxy = ProxyManager.ProxyManager() list = ProxyFetcher.get_list(proxy) proxy.add_all(list) ttte = time.time() print '> > Completed. %i proxies available (took %is).\n\n\n' % (len( proxy.list), (ttte - ttt)) # bases baseline = raw_input("What's the baseline product?\n=> ") depth = int(raw_input("How deep do you wanna crawl? Rec. 1-2\n=> ")) amount = int( raw_input( "How many crawlers do you wanna enslave? Rec. 8ish\nIf you don't know what you're doing, please enter 0 to let the code figure it out.\n=> " )) time_start = time.time() print 'Alright cool. Getting to work.\n\n\n'