├── README.md ├── config ├── config.json ├── proxies.txt └── usernames.txt ├── main.py └── output └── tokens.txt /README.md: -------------------------------------------------------------------------------- 1 | Im not responsible on how you use this tool., 2 | and this is meant for eduacation use only. 3 | 4 | 5 | 6 | 7 | -- Made By SoloDev -- 8 | --------------------- 9 | HOW TO USE 10 | 1.) open the config folder 11 | 2.) you will see three files. (usernames, proxies, config) open the proxies file 12 | and load all http proxies into it 13 | 3.) open the config file you will see the following 14 | { 15 | "CaptchaKey": "YOUR KEY HERE", 16 | "CaptchaType": "capmonster" 17 | } 18 | 4.) replace 'YOUR KEY HERE' with your api key from capmonster.cloud, anti-captcha, or 19 | 2captcha. 20 | 5.) if your not using capmonster replace 'capmonster' with 'anticaptcha' if your 21 | using anti-captcha, and if your using 2Captcha replace 'capmonster' with 2captcha. 22 | 5.)[OPTIONAL] want your own usernames? add them to usernames.txt 23 | 6.) run the exe and enjoy! -------------------------------------------------------------------------------- /config/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "CaptchaKey": "your key here", 3 | "CaptchaType": "anticaptcha" 4 | } -------------------------------------------------------------------------------- /config/proxies.txt: -------------------------------------------------------------------------------- 1 | proxies here http -------------------------------------------------------------------------------- /config/usernames.txt: -------------------------------------------------------------------------------- 1 | cropbesides 2 | sweatywound 3 | shortspinto 4 | jabbercod 5 | distressedbeetroots 6 | survivalweird 7 | strawberriespleasant 8 | patapt 9 | clockcard 10 | viperhearty 11 | scandaloushaircut 12 | insistleader 13 | clowderhermit 14 | notableassorted 15 | obscenelate 16 | throbjibboom 17 | kitegrass 18 | mechanicbake 19 | dominantbetrayed 20 | deafoink 21 | factidle 22 | nestlefault 23 | aloofnumber 24 | threewainscot 25 | headscarfskill 26 | cobblestonechief 27 | elatedrind 28 | chiseledgild 29 | nearbysir 30 | babyvessels 31 | applauddefiant 32 | technologyblackfish 33 | ovalabundant 34 | bendcharm 35 | leeboardbank 36 | savingsuperior 37 | efficiencycranberries 38 | meetingunkempt 39 | redwinggerbil 40 | widevengeful 41 | expressionnot 42 | wheelhurtful 43 | mobsnappy 44 | pettydelight 45 | lipinitiative 46 | unablesimplistic 47 | glitteringshall 48 | inflatepropose 49 | merchanthug 50 | haylaugh 51 | distancepartial 52 | provislillerton 53 | coffeenumerous 54 | chambremain 55 | timmixture 56 | pressergroppy 57 | knewmakeshift 58 | ludicrousequal 59 | connectchickle 60 | soullessblockson 61 | impedechildlike 62 | whafflestressed 63 | whiffleland 64 | plasterergooker 65 | kentledgeconfide 66 | dimwittedcirith 67 | pradaamuck 68 | latterdunnock 69 | genoatoboggan 70 | watshedferret 71 | onlyportkey 72 | okayuntidy 73 | sleatgigglemug 74 | albusnicken 75 | sparrowdownright 76 | simplewarbed 77 | vigilantrostrum 78 | relayconstitute 79 | smaukerdelightful 80 | porterstaverner 81 | qualedevice 82 | cuckoldrich 83 | witchkingworkshop 84 | determinecirce 85 | mirkwoodsociable 86 | decaderepelo 87 | rwandanruffian 88 | whippenceaccessible 89 | concedepetulant 90 | instrumentchang 91 | suicideclemency 92 | ropejaded 93 | sighorchestra 94 | fleshache 95 | frowningrighteous 96 | headsailsanta 97 | bacterialonster 98 | hadfirkytoodle 99 | muffledsardines 100 | chipmunkmess 101 | gringottsblaring 102 | mentalpressure 103 | obstinacyamuse 104 | industrynoddlers 105 | wheethtimersome 106 | pavergroan 107 | laughablecoarse 108 | everythingspirited 109 | gormlessjarndyce 110 | peachesstreet 111 | arslelosberne 112 | mimbingextend 113 | chorsecanoe 114 | flamwellbeather 115 | loutishportion 116 | verbgush 117 | dialstigs 118 | auditorsabbage 119 | screamstorm 120 | taffettylower 121 | trackauto 122 | assigncompass 123 | backbonerecall 124 | timidwuss 125 | tartiestogether 126 | whinedemocracy 127 | haughingtoots 128 | yawningtail 129 | ughpipchin 130 | enjoystrudel 131 | woundpip 132 | blakesmippling 133 | parvititrain 134 | pleetarena 135 | luttybouncy 136 | sparkleswalk 137 | glanceevil 138 | ashamedunderwear 139 | qualifyexemplary 140 | itempicky 141 | shiverevasive 142 | rosemarylean 143 | profitpepperoni 144 | finalprevent 145 | jibesurgery 146 | formeat 147 | limescistus 148 | expertbreak 149 | macawrelation 150 | chargeclass 151 | phonyshabby 152 | collapseclub 153 | dogwatchmedical 154 | implementdiligence 155 | dirtpakistani 156 | intendpiglin 157 | urethradrill 158 | studydiscovery 159 | glassesglaring 160 | untiegymnasium 161 | prismarineharmful 162 | hillbillymossy 163 | crackgamy 164 | tabernaclephase 165 | packedweaver 166 | trialplonk 167 | obsessedlayer 168 | highdry 169 | badlysecondhand 170 | doesmule 171 | makercultivated 172 | kentishorchard 173 | buzzbattle 174 | expectfries 175 | drilldeveloping 176 | jumpingcloak 177 | camelscatter 178 | twinklingfascinated 179 | tutudrawer 180 | pretzelgeneral 181 | fesnyingscore 182 | avocadosbelong 183 | waspretain 184 | anorakseries 185 | gardencareful -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from requests.sessions import session 2 | import cli_ui 3 | from requests.api import head 4 | 5 | import requests 6 | import json 7 | import random 8 | import base64 9 | import time 10 | import urllib3 11 | import captchatools 12 | import string 13 | import colorama 14 | import ctypes 15 | import psutil 16 | import inspect 17 | import sys 18 | import os 19 | import subprocess 20 | 21 | from captchatools import captcha_harvesters, exceptions 22 | from requests_futures.sessions import FuturesSession 23 | from threading import Thread 24 | from time import sleep 25 | from termcolor import cprint 26 | from colorama import Fore, Back, Style 27 | colorama.init(autoreset=True) 28 | from pyfiglet import figlet_format 29 | from twocaptcha import TwoCaptcha 30 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | register_link = "https://discordapp.com/api/auth/register" 41 | alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 42 | 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 43 | PASSWORD = "3219442@4324hjfdx6" 44 | 45 | 46 | with open('Config/config.json') as r: 47 | config = json.load(r) 48 | 49 | captcha_api_key = config.get('CaptchaKey') 50 | captchatype1 = config.get('CaptchaType') 51 | 52 | 53 | API_KEY = f"{captcha_api_key}" # capmonster key 54 | SITE_KEY = "f5561ba9-8f1e-40ca-9b5b-a0b3f719ef34" 55 | 56 | 57 | def typewritter2(text): 58 | for x in text: 59 | print(f'{Fore.RED}' + x, end="") 60 | sys.stdout.flush() 61 | time.sleep(0.05) 62 | 63 | 64 | 65 | def gen_email(): 66 | new_mail = "" 67 | i = 0 68 | length = random.randint(10, 20) 69 | while(i < length): 70 | new_mail += random.choice(alphabet) 71 | i += 1 72 | 73 | return new_mail + "@gmail.com" 74 | 75 | 76 | proxies1 = open('config/proxies.txt','r').read().splitlines() 77 | proxies1 = [{'https':f'http://{proxy}'} for proxy in proxies1] 78 | 79 | def Get_cap_Balance(): 80 | session = FuturesSession() 81 | try: 82 | json = { 83 | "clientKey": API_KEY 84 | } 85 | r = session.post('https://api.capmonster.cloud/getBalance', json=json, ).result() 86 | if r.json()['errorId'] == 1: 87 | return 'error, information about it is in the errorCode property' 88 | if r.json()['errorId'] == 0: 89 | return r.json()['balance'] 90 | except: 91 | pass 92 | 93 | 94 | def Get_anti_Balance(): 95 | session = FuturesSession() 96 | try: 97 | json = { 98 | "clientKey": API_KEY 99 | } 100 | r = session.post('https://api.anti-captcha.com/getBalance', json=json).result() 101 | if r.json()['errorId'] == 1: 102 | return 'error, information about it is in the errorCode property' 103 | if r.json()['errorId'] == 0: 104 | return r.json()['balance'] 105 | except: 106 | pass 107 | 108 | 109 | def Get_2cap_Balance(): 110 | try: 111 | solverbal = TwoCaptcha(f'{API_KEY}') 112 | balance = solverbal.balance() 113 | return balance 114 | except: 115 | pass 116 | 117 | 118 | def get_super_properties(os, browser, useragent, browser_version, os_version, client_build): 119 | return { 120 | "os": os, 121 | "browser": browser, 122 | "device": "", 123 | "browser_user_agent": useragent, 124 | "browser_version": browser_version, 125 | "os_version": os_version, 126 | "referrer": "", 127 | "referring_domain": "", 128 | "referrer_current": "", 129 | "referring_domain_current": "", 130 | "release_channel": "stable", 131 | "client_build_number": client_build, 132 | "client_event_source": None 133 | } 134 | 135 | 136 | def get_user_agent(): 137 | return ("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0") 138 | 139 | 140 | def get_headers(): 141 | return { 142 | 'Host': 'discordapp.com', 143 | 'Accept': '*/*', 144 | 'Accept-Language': 'en-US', 145 | 'Content-Type': 'application/json', 146 | 'Referer': 'https://discordapp.com/register', 147 | 'Origin': 'https://discordapp.com', 148 | 'DNT': '1', 149 | 'Connection': 'keep-alive', 150 | 'user-agent': "", 151 | 'X-Fingerprint': "", 152 | 'X-Super-Properties': '' 153 | } 154 | 155 | 156 | def get_user_agent(): 157 | return ("Windows", "Firefox", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0", "54.0", "7") 158 | 159 | 160 | proxies = open('config/proxies.txt','r').read().splitlines() 161 | proxies = [{'https':f'http://{proxy}'} for proxy in proxies] 162 | 163 | def register(): 164 | # get balance 165 | if captchatype1 == 'capmonster': 166 | Title = f'SoloX Gen | Current Balance: {Get_cap_Balance()}' 167 | 168 | if captchatype1 == 'anticaptcha': 169 | Title = f'SoloX Gen | Current Balance: {Get_anti_Balance()}' 170 | 171 | if captchatype1 == '2captcha': 172 | Title = f'SoloX Gen | Current Balance: {Get_2cap_Balance()}' 173 | ctypes.windll.kernel32.SetConsoleTitleW(Title) 174 | headers = get_headers() 175 | proxy = random.choice(proxies) 176 | os, browser, headers['user-agent'], browserver, osvers = get_user_agent() 177 | r = requests.Session() 178 | fingerprint_json = requests.get("https://discordapp.com/api/v6/experiments", 179 | timeout=10, proxies = proxy, headers=get_headers() , verify=False).json() 180 | fingerprint = fingerprint_json["fingerprint"] 181 | xsuperprop = base64.b64encode(json.dumps(get_super_properties( 182 | os, browser, headers['user-agent'], browserver, osvers, 36127), separators=",:").encode()).decode() 183 | headers['X-Super-Properties'] = xsuperprop 184 | # print 185 | print('[+] Creating Account!') 186 | email = gen_email() 187 | letters1 = string.ascii_letters 188 | 189 | #if REALN == 'y': 190 | # namesfile=open("config/usernames.txt","r").readlines() 191 | # username = random.choice(namesfile) 192 | #else: 193 | # username = 'join | gg/solox' 194 | 195 | realistic = '1' 196 | if realistic == '1': 197 | r=requests.get('https://story-shack-cdn-v2.glitch.me/generators/username-generator?') 198 | text = json.loads(r.text) 199 | pairs = text.items() 200 | for name, value in pairs: 201 | newname1 = (value) 202 | username = newname1["name"] 203 | print(username) 204 | 205 | input('pog: ') 206 | else: 207 | username = 'gg/twitch-followers' 208 | 209 | if captchatype1 == 'capmonster': 210 | solver = captcha_harvesters(solving_site=1, api_key=f"{API_KEY}", sitekey=f"{SITE_KEY}", captcha_type="hcap", captcha_url="https://discord.com/register") 211 | recaptcha_answer = solver.get_token() 212 | 213 | if captchatype1 == 'anticaptcha': 214 | solver = captcha_harvesters(solving_site=2, api_key=f"{API_KEY}", sitekey=f"{SITE_KEY}", captcha_type="hcap", captcha_url="https://discord.com/register") 215 | recaptcha_answer = solver.get_token() 216 | 217 | if captchatype1 == '2captcha': 218 | solver = captcha_harvesters(solving_site=3, api_key=f"{API_KEY}", sitekey=f"{SITE_KEY}", captcha_type="hcap", captcha_url="https://discord.com/register") 219 | recaptcha_answer = solver.get_token() 220 | 221 | payload = { 222 | 'fingerprint': fingerprint, 223 | 'email': email, 224 | 'username': username, 225 | 'password': PASSWORD, 226 | 'invite': f"{INVITE}", 227 | 'captcha_key': recaptcha_answer, 228 | 'consent': True, 229 | "date_of_birth": "2001-01-01", 230 | 'gift_code_sku_id': None 231 | } 232 | response = r.post('https://discordapp.com/api/v6/auth/register', 233 | json=payload, proxies = proxy, headers=headers, timeout=15000, verify=False) 234 | if response.status_code == 429: 235 | print('[-] proxy has been ratelimited!') 236 | return False 237 | else: 238 | try: 239 | token = response.json() 240 | data = token['token'] 241 | print(f'{Fore.RED}[+] Joined The Server: {username}') 242 | with open(f"output/tokens.txt", "a+") as f: 243 | f.write(str(data + '\n')) 244 | f.close() 245 | except: 246 | print('[-] Could not get token!') 247 | 248 | 249 | def Task(): 250 | register() 251 | 252 | 253 | def title(): 254 | os.system('cls') 255 | print(""" 256 | \x1b[31m███████  ██████  ██  ██████  ██████  ███████ ██  ██  257 | ██      ██    ██ ██  ██    ██ ██   ██ ██      ██  ██  258 | ███████ ██  ██ ██  ██  ██ ██  ██ █████  ██  ██  259 | ██ ██  ██ ██  ██  ██ ██  ██ ██      ██  ██   260 | ███████  ██████  ███████  ██████  ██████  ███████   ████  \x1b[D Discord Member Generator 261 | """) 262 | 263 | 264 | 265 | if __name__ == "__main__": 266 | typewritter2('server invite code: ') 267 | INVITE = input('') 268 | typewritter2('real names? [y/n]: ') 269 | REALN = input() 270 | while True: 271 | Thread(target=Task).start() 272 | time.sleep(0.3) 273 | 274 | 275 | -------------------------------------------------------------------------------- /output/tokens.txt: -------------------------------------------------------------------------------- 1 | output --------------------------------------------------------------------------------