from scapy.all import Dot11, Dot11Beacon, Dot11Elt, RadioTap, sendp, get_if_list
from scapy.volatile import RandMAC
import time
# --- ШАГ 1: УЗНАЕМ ИМЯ ИНТЕРФЕЙСА ---
# В Windows имена выглядят странно, типа "Wi-Fi" или "{...GUID...}"
print("Список доступных интерфейсов:")
interfaces = get_if_list()
for i, name in enumerate(interfaces):
print(f"[{i}] {name}")
# ВНИМАНИЕ: Измени индекс ниже на тот, под которым идет твой Wi-Fi
# Или просто впиши название текстом, например: interface = "Wi-Fi"
choice = int(input("\nВведите номер Wi-Fi адаптера из списка выше: "))
interface = interfaces[choice]
# --- ШАГ 2: НАСТРОЙКА СПАМА ---
# Список названий сетей, которые будут видны в эфире
ssids = ["HACKED_BY_PYTHON", "FREE_INTERNET", "M5_STICK_V2", "DODIK_DETECTOR"]
print(f"\nЗапуск спама на интерфейсе: {interface}")
print("Нажми Ctrl+C для остановки.")
try:
while True:
for ssid in ssids:
# Генерируем случайный MAC-адрес отправителя
mac = RandMAC()
# Собираем пакет:
# RadioTap - заголовок для радиоэфира
# Dot11 - заголовок Wi-Fi (type 0, subtype 8 = Beacon)
# Dot11Beacon - сам маяковый кадр
# Dot11Elt - параметры (название сети и т.д.)
dot11 = Dot11(type=0, subtype=8, addr1="ff:ff:ff:ff:ff:ff", addr2=mac, addr3=mac)
beacon = Dot11Beacon(cap="ESS+privacy")
essid = Dot11Elt(ID="SSID", info=ssid, len=len(ssid))
packet = RadioTap() / dot11 / beacon / essid
# Отправка пакета в бесконечном цикле
sendp(packet, iface=interface, verbose=False)
time.sleep(0.1) # Небольшая пауза, чтобы не повесить систему
except KeyboardInterrupt:
print("\nСкрипт остановлен пользователем.")
except Exception as e:
print(f"\nОшибка: {e}")
print("Проверь, запущен ли IDLE от имени Администратора и установлен ли Npcap.")