├── README.md ├── bypass └── captcha.pt ├── main.py └── tokens.txt /README.md: -------------------------------------------------------------------------------- 1 | # wick bypass 2 | a wick discord bot bypass full made in python (no need captcha key) 3 | 4 | C͟o͟n͟t͟a͟c͟t͟ 5 | - 📫 If you need help contact me on discord: **over_on_top** 6 | -------------------------------------------------------------------------------- /bypass/captcha.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0verp0wer/wick-bypass/c64155463daf21f8f19f9c5436f2635e42f7cfa7/bypass/captcha.pt -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | #thanks to https://github.com/imAETHER/AI-CaptchaSolver for his model 2 | 3 | import os 4 | import re 5 | import json 6 | import time 7 | import torch 8 | import random 9 | import string 10 | import requests 11 | import websocket 12 | 13 | from PIL import Image 14 | from pystyle import Center, Anime, Colors, Colorate, System, Write 15 | from colorama import init, Fore 16 | 17 | init() 18 | 19 | model = torch.hub.load('ultralytics/yolov5', 'custom', path='bypass/captcha.pt', force_reload=True) 20 | os.system("cls") 21 | 22 | text = ''' 23 | ╦ ╦╦╔═╗╦╔═ ╔═╗╦ ╦╔═╗╦╔═╔═╗╦═╗ 24 | ║║║║║ ╠╩╗ ╠╣ ║ ║║ ╠╩╗║╣ ╠╦╝ 25 | ╚╩╝╩╚═╝╩ ╩ ╚ ╚═╝╚═╝╩ ╩╚═╝╩╚═''' 26 | 27 | print(Colorate.Diagonal(Colors.blue_to_purple, Center.XCenter(text))) 28 | 29 | channel_id = input('['+ Fore.BLUE + '>' + Fore.RESET + ']' + 'insert the channel id:') 30 | guild_id = input('['+ Fore.BLUE + '>' + Fore.RESET + ']' + 'insert the guild id:') 31 | button_id = input('['+ Fore.BLUE + '>' + Fore.RESET + ']' + 'insert the button id:') 32 | 33 | failed = 0 34 | bypassed = 0 35 | 36 | def connect(ws): 37 | ws.connect('wss://gateway.discord.gg/?encoding=json&v=9&compress=json') 38 | ws.send( 39 | json.dumps( 40 | { 41 | "op":2, 42 | "d":{ 43 | "token":token, 44 | "capabilities":8189, 45 | "properties": 46 | { 47 | "os":"Windows", 48 | "browser":"Chrome", 49 | "device":"", 50 | "system_locale":"it-IT", 51 | "browser_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", 52 | "browser_version":"114.0.0.0", 53 | "os_version":"10", 54 | "referrer":"", 55 | "referring_domain":"", 56 | "referrer_current":"", 57 | "referring_domain_current":"", 58 | "release_channel":"stable", 59 | "client_build_number":201332, 60 | "client_event_source":None}, 61 | "presence": 62 | { 63 | "status":"online", 64 | "since":0, 65 | "activities":[], 66 | "afk":False 67 | }, 68 | "compress":False, 69 | "client_state": 70 | { 71 | "guild_versions":{}, 72 | "highest_last_message_id":"0", 73 | "read_state_version":0, 74 | "user_guild_settings_version":-1, 75 | "user_settings_version":-1, 76 | "private_channels_version":"0", 77 | "api_code_version":0 78 | } 79 | } 80 | } 81 | ) 82 | ) 83 | 84 | def process(img, hex_color, tolerance = 20): 85 | image_data = img.load() 86 | height, width = img.size 87 | r, g, b = tuple(int(hex_color[i:i+2], 16) for i in (0, 2, 4)) 88 | r_min, r_max = max(0, r - tolerance), min(255, r + tolerance) 89 | g_min, g_max = max(0, g - tolerance), min(255, g + tolerance) 90 | b_min, b_max = max(0, b - tolerance), min(255, b + tolerance) 91 | for loop1 in range(height): 92 | for loop2 in range(width): 93 | try: 94 | pixel_r, pixel_g, pixel_b, _ = image_data[loop1, loop2] 95 | except ValueError: 96 | pixel_r, pixel_g, pixel_b = image_data[loop1, loop2] 97 | if not (r_min <= pixel_r <= r_max and g_min <= pixel_g <= g_max and b_min <= pixel_b <= b_max): 98 | image_data[loop1, loop2] = 0, 0, 0, 0 99 | return img 100 | 101 | def solveCaptcha(url, color = "fcc434") -> str: 102 | img = Image.open(requests.get(url, stream=True).raw) 103 | img = process(img, color) 104 | 105 | result = model(img) 106 | 107 | a = result.pandas().xyxy[0].sort_values('xmin') 108 | while len(a) > 6: 109 | lines = a.confidence 110 | linev = min(a.confidence) 111 | for line in lines.keys(): 112 | if lines[line] == linev: 113 | a = a.drop(line) 114 | 115 | result = "" 116 | for _, key in a.name.items(): 117 | result = result + key 118 | return result 119 | 120 | with open("tokens.txt", "r") as f: 121 | tokens = f.readlines() 122 | for i in tokens: 123 | token = i.rstrip() 124 | 125 | System.Title(f"Wick Fucker by over_on_top - {bypassed} verification bypassed - {failed} verification failed") 126 | 127 | authorization = { 128 | 'Authorization': token 129 | } 130 | 131 | r = requests.get("https://discord.com/api/v9/users/@me", headers=authorization).json() 132 | token_id = r["id"] 133 | 134 | r = requests.get(f'https://discord.com/api/v9/channels/{channel_id}/messages?limit=50', headers=authorization) 135 | response = r.content 136 | 137 | match = re.search(r'"custom_id": "([^"]+)"', str(response)) 138 | if match: 139 | custom_id = match.group(1) 140 | 141 | match2 = re.search(r'"author": {"id": "([^"]{18})"', str(response)) 142 | if match2: 143 | application_id = match2.group(1) 144 | 145 | headers = { 146 | 'Accept': '*/*', 147 | 'Accept-Encoding': 'gzip, deflate, br', 148 | 'Accept-Language': 'it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7', 149 | 'Authorization': token, 150 | 'Content-Length': '318', 151 | 'Content-Type': 'application/json', 152 | 'Cookie': '__dcfduid=891dff9010ab11ed90c90d12ffc986ae; __sdcfduid=891dff9110ab11ed90c90d12ffc986ae85bbb81c810406a1f87aee8de8359de48e5eb21623770d623a1e763dd3c8424b; locale=it;', 153 | 'Origin': 'https://discord.com', 154 | 'Sec-Ch-Ua': '"Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"', 155 | 'Sec-Ch-Ua-Mobile': '?0', 156 | 'Sec-Ch-Ua-Platform': '"Windows"', 157 | 'Sec-Fetch-Dest': 'empty', 158 | 'Sec-Fetch-Mode': 'cors', 159 | 'Sec-Fetch-Site': 'same-origin', 160 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 161 | 'X-Debug-Options': 'bugReporterEnabled', 162 | 'X-Discord-Locale': 'it', 163 | 'X-Discord-Timezone': 'Europe/Rome', 164 | 'X-Super-Properties': 'eyJvcyI6IldpbmRvd3MiLCJicm93c2VyIjoiQ2hyb21lIiwiZGV2aWNlIjoiIiwic3lzdGVtX2xvY2FsZSI6Iml0LUlUIiwiYnJvd3Nlcl91c2VyX2FnZW50IjoiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2IiwiYnJvd3Nlcl92ZXJzaW9uIjoiMTE0LjAuMC4wIiwib3NfdmVyc2lvbiI6IjEwIiwicmVmZXJyZXIiOiJodHRwczovL2l0LnNlYXJjaC55YWhvby5jb20vIiwicmVmZXJyaW5nX2RvbWFpbiI6Iml0LnNlYXJjaC55YWhvby5jb20iLCJzZWFyY2hfZW5naW5lIjoieWFob28iLCJyZWZlcnJlcl9jdXJyZW50IjoiIiwicmVmZXJyaW5nX2RvbWFpbl9jdXJyZW50IjoiIiwicmVsZWFzZV9jaGFubmVsIjoic3RhYmxlIiwiY2xpZW50X2J1aWxkX251bWJlciI6MjA4MzE5LCJjbGllbnRfZXZlbnRfc291cmNlIjpudWxsfQ==', 165 | } 166 | 167 | print('['+ Fore.GREEN + '+' + Fore.RESET + ']' + 'Button clicked succesfully') 168 | print('['+ Fore.BLUE + '>' + Fore.RESET + ']' + 'Getting captcha...') 169 | 170 | ws = websocket.WebSocket() 171 | connect(ws) 172 | r = requests.post("https://discord.com/api/v9/interactions", headers=headers, json={"type":3,"nonce":"".join([str(random.randint(1, 9)) for _ in range(19)]),"guild_id":guild_id,"channel_id":channel_id,"message_flags":0,"message_id":button_id,"application_id":application_id,"session_id":"".join(random.choice(string.ascii_letters + string.digits) for _ in range(32)),"data":{"component_type":2,"custom_id":custom_id}}) 173 | while True: 174 | response = json.loads(ws.recv()) 175 | if response['t'] == 'MESSAGE_CREATE': 176 | try: 177 | value = response['d']['embeds'][0]['fields'][0]['value'] 178 | if value == '`Please type the captcha below to be able to access this server!`': 179 | message_id = response['d']['id'] 180 | link = response['d']['embeds'][0]['image']['url'] 181 | ws.close() 182 | break 183 | except: 184 | continue 185 | 186 | print('['+ Fore.GREEN + '+' + Fore.RESET + ']' + 'Captcha obtained correctly') 187 | print('['+ Fore.BLUE + '>' + Fore.RESET + ']' + 'Bypassing captcha...') 188 | 189 | connect(ws) 190 | r = requests.post("https://discord.com/api/v9/interactions", headers=headers, json={"type":3,"nonce":"".join([str(random.randint(1, 9)) for _ in range(19)]),"guild_id":guild_id,"channel_id":channel_id,"message_flags":64,"message_id":message_id,"application_id":application_id,"session_id":"".join(random.choice(string.ascii_letters + string.digits) for _ in range(32)),"data":{"component_type":2,"custom_id":f"mver_{guild_id}_{token_id}"}}) 191 | while True: 192 | response = json.loads(ws.recv()) 193 | if response['t'] == 'INTERACTION_SUCCESS': 194 | id_value = response['d']['id'] 195 | ws.close() 196 | break 197 | 198 | captcha = solveCaptcha(link) 199 | print('['+ Fore.GREEN + '+' + Fore.RESET + ']' + f'Captcha bypassed: {captcha}') 200 | print('['+ Fore.BLUE + '>' + Fore.RESET + ']' + 'Bypassing verification...') 201 | 202 | r = requests.post("https://discord.com/api/v9/interactions", headers=headers, json={"type":5,"application_id":application_id,"channel_id":channel_id,"guild_id":guild_id,"data":{"id":id_value,"custom_id":f"modalmmbrver_{token_id}","components":[{"type":1,"components":[{"type":4,"custom_id":"answer","value":captcha}]}]},"session_id":"".join(random.choice(string.ascii_letters + string.digits) for _ in range(32)),"nonce":"".join([str(random.randint(1, 9)) for _ in range(19)])}) 203 | time.sleep(1) 204 | r = requests.get(f'https://discord.com/api/v9/channels/{channel_id}/messages?limit=50', headers=authorization) 205 | if r.status_code == 200: 206 | failed+=1 207 | print('['+ Fore.RED + '!' + Fore.RESET + ']' + f'Verification bypass failed with {token[:-5]}.....') 208 | else: 209 | bypassed+=1 210 | print('['+ Fore.GREEN + '+' + Fore.RESET + ']' + f'Verification bypassed correctly with {token[:-5]}.....') 211 | -------------------------------------------------------------------------------- /tokens.txt: -------------------------------------------------------------------------------- 1 | 2 | --------------------------------------------------------------------------------