spmoisa548/sama1
14.2k
1import requests
2import pyotp
3import uuid
4import random
5import string
6import time
7import hashlib
8from datetime import datetime
9
10class FB():
11 def proxy():
12 data = ['']
13 send = random.choice(data)
14 return send
15 def sort(data):
16 sorted_keys = sorted(data.keys())
17 sorted_data = {}
18 for key in sorted_keys:
19 sorted_data[key] = data[key]
20 return sorted_data
21
22 def encodesig(data):
23 sorted_data = sorted(data.items())
24 encoded_data = '&'.join(['{}={}'.format(k, v) for k, v in sorted_data])
25 return hashlib.sha256(encoded_data.encode()).hexdigest()
26
27 def jso(data1):
28 access_token = data1['access_token']
29 cookie = ''
30 appstate = []
31 for i in data1['session_cookies']:
32 name = i['name']
33 value = i['value']
34 cookie += f'{name}={value};'
35 appstate.append({
36 "key": name,
37 "value": value,
38 "domain": "facebook.com",
39 "path": "/",
40 "hostOnly": False,
41 "creation": str(datetime.now()).replace(' ', 'T').split('.')[0]+'Z',
42 "lastAccessed": str(datetime.now()).replace(' ', 'T').split('.')[0]+'Z'
43 })
44 open('token.txt', 'a+').write(f'{access_token}\n')
45 return {
46 'access_token': access_token,
47 'cookie': cookie,
48 'appstate': appstate
49 }
50
51 def main(account):
52 #try:
53 prox = FB.proxy()
54 session = requests.Session()
55 #session.proxies.update({
56 # 'http': 'http://'+prox,
57 # 'https': 'http://'+prox,
58 #})
59 #print('Nhập kài khoản theo dạng này uid|pass|auth|token (token -> EAAD6V7 hoặc EAAAAU, ...')
60 #account = input('Nhập tài khoản: ')
61 username = account.split('|')[0]
62 password = account.split('|')[1]
63 auth = account.split('|')[2].replace(' ', '')
64 token_key = account.split('|')[3]
65 token_obj = {
66 'EAAD6V7': "275254692598279|585aec5b4c27376758abb7ffcb9db2af",
67 'EAAAAU': '350685531728|62f8ce9f74b12f84c123cc23437a4a32',
68 'EAAD': '256002347743983|374e60f8b9bb6b8cbb30f78030438895',
69 'EAAGO': '438142079694454|fc0a7caa49b192f64f6f5a6d9643bb28',
70 'EAAAAAY': '6628568379|c1e620fa708a1d5696fb991c1bde5662',
71 'EAAClA': '181425161904154|95a15d22a0e735b2983ecb9759dbaf91',
72 'EAAVB': '1479723375646806|afb3e4a6d8b868314cc843c21eebc6ae',
73 'EAAC2S': '200424423651082|2a9918c6bcd75b94cefcbb5635c6ad16',
74 'EAATK': '1348564698517390|007c0a9101b9e1c8ffab727666805038',
75 'EAAQr': '1174099472704185|0722a7d5b5a4ac06b11450f7114eb2e9',
76 'EAAI7': '628551730674460|b9693d3e013cfb23ec2c772783d14ce8',
77 }
78 machine = ''.join(random.choices(string.ascii_lowercase + string.ascii_uppercase + string.digits, k=24))
79 form = {
80 'adid': str(uuid.uuid4()),
81 'email': username,
82 'password': password,
83 'format': 'json',
84 'device_id': str(uuid.uuid4()),
85 'cpl': 'true',
86 'family_device_id': str(uuid.uuid4()),
87 'locale': 'en_US',
88 'client_country_code': 'US',
89 'credentials_type': 'device_based_login_password',
90 'generate_session_cookies': '1',
91 'generate_analytics_claim': '1',
92 'generate_machine_id': '1',
93 'currently_logged_in_userid': '0',
94 'try_num': "1",
95 'enroll_misauth': "false",
96 'meta_inf_fbmeta': "NO_FILE",
97 'source': 'login',
98 'machine_id': machine,
99 'meta_inf_fbmeta': '',
100 'fb_api_req_friendly_name': 'authenticate',
101 'fb_api_caller_class': 'com.facebook.account.login.protocol.Fb4aAuthHandler',
102 'api_key': '882a8490361da98702bf97a021ddc14d',
103 'access_token': token_obj.get(token_key, '')
104 }
105 form['sig'] = FB.encodesig(form)
106 headers = {
107 'content-type': 'application/x-www-form-urlencoded',
108 "x-fb-friendly-name": 'authenticate',
109 'x-fb-http-engine': 'Liger',
110 'user-agent': 'Mozilla/5.0 (Linux; Android 13; SM-A336E Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36[FBAN/EMA;FBLC/vi_VN;FBAV/371.0.0.2.104;]',
111 }
112 res_data1 = session.post(f'https://b-graph.facebook.com/auth/login',data=form, headers=headers)
113 print(res_data1.text)
114 if res_data1.status_code == 200:
115 return FB.jso(res_data1.json())
116 elif res_data1.status_code != 200:
117 #print(res_data1.json())
118 err = res_data1.json()['error']['error_data']
119 totp = pyotp.TOTP(auth)
120 code = totp.now()
121 form['twofactor_code'] = code
122 form['encrypted_msisdn'] = ''
123 form['userid'] = err['uid']
124 form['machine_id'] = err['machine_id']
125 form['first_factor'] = err['login_first_factor']
126 form['credentials_type'] = 'two_factor'
127 time.sleep(2)
128 del form['sig']
129 form['sig'] = FB.encodesig(form)
130 #print(form)
131 headers = {
132 'content-type': 'application/x-www-form-urlencoded',
133 'x-fb-http-engine': 'Liger',
134 'user-agent': 'Mozilla/5.0 (Linux; Android 13; SM-A336E Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36[FBAN/EMA;FBLC/vi_VN;FBAV/371.0.0.2.104;]',
135 }
136 res_data2 = session.post('https://b-graph.facebook.com/auth/login', headers=headers, data=form).json()
137 print(res_data2)
138 return FB.jso(res_data2)
139 else:
140 return {
141 'code': 1,
142 'message': 'Lỗi Tùm Lum! '
143 }
144 #except Exception:
145 # return {
146 # 'code': 1,
147 # 'message': 'Lỗi Tùm Lum! '
148 # }
149
150#print(FB.proxy())
151if __name__ == '__main__':
152
153 print('Định dạng uid|pass|2fa|token')
154 print('EAAAAU, EAAD6V7,...')
155 a = input('Nhập tài khoản: ')
156 b = FB.main(a)
157 print(b)
158 #Test.main()