
Willkommen im Repository des EvilDoggie Workshop Auto-Simulators! Dieses Tool repliziert die Fahrzeug-CAN-Bus-Umgebung, die in der Black Hat Arsenal 2025-Sitzung verwendet wurde. Der von Faraday Security entwickelte Simulator emuliert mehrere elektronische Steuergeräte (ECUs) in einem Fahrzeug und ermöglicht es Forschern, offensive CAN-Bus-Angriffe mit EvilDoggie in einer kontrollierten Umgebung zu üben.
Der Simulator unterstützt sowohl serielle als auch SocketCAN-Schnittstellen und ermöglicht eine nahtlose Integration mit der Doggie-Hardware zum Sniffen, Injizieren und Manipulieren von CAN-Nachrichten. Er ist für Bildungszwecke in der Automobilsicherheit konzipiert und konzentriert sich auf Herausforderungen wie VIN-Spoofing, Türöffnung, Verwirrung der Geschwindigkeitsregelung, Airbag-Umschaltung, ABS-Trennung und mehr – wie in den beigefügten Workshop-Anleitungen beschrieben.
Dieser Open-Source-Simulator ist unter MIT lizenziert und Teil des größeren Doggie/EvilDoggie-Ökosystems. Vollständige Details zu Firmware und Hardware finden Sie im Haupt-Repository.
Eine vollständige Workshop-Anleitung finden Sie in der evilDoggie-Workshop-Dokumentation.

Zum Ausführen des Simulators benötigen Sie 2 Doggies (eines für TX und eines für RX); 3 Doggies werden empfohlen – eines als Angreifer (EvilDoggie) und zwei als simulierte ECUs – um sicherzustellen, dass Nachrichten über einen echten physischen Bus übertragen werden.
Erstellen Sie eine Python-Virtual-Environment, um Abhängigkeiten zu isolieren:
python3 -m venv doggie_venv
source doggie_venv/bin/activate
Installieren Sie die erforderlichen Pakete aus requirements.txt:
python3 -m pip install -r requirements.txt
Installieren Sie das Simulator-Paket lokal:
python3 -m pip install -e .
Starten Sie den Simulator über serielle oder SocketCAN-Schnittstellen. Verbinden Sie für ein 2-Doggie-Setup zwei Doggies mit Ihrem System (z. B. über USB) und ermitteln Sie deren Ports (z. B. /dev/ttyUSB0 und /dev/ttyUSB1). Verwenden Sie die Option --serial für serielle Verbindungen oder --socketcan für virtuelle CAN-Schnittstellen.
Beispiel mit seriellen Schnittstellen (Ports und Baudraten nach Bedarf anpassen):
python3 -m doggie_lab --serial /dev/ttyUSB0@921600 /dev/ttyUSB1@921600 --speed 500000
--serial TX_PORT RX_PORT: Serielle Ports und Baudraten angeben (z. B. /dev/ttyUSB0@115200 /dev/ttyUSB1@115200).--speed SPEED: CAN-Bus-Geschwindigkeit in Bits pro Sekunde festlegen (Standard: 500000).Für SocketCAN (virtuelle Schnittstellen):
python3 -m doggie_lab --socketcan can0 can1 --speed 500000
--socketcan TX_CAN RX_CAN: SocketCAN-Schnittstellen verwenden (z. B. can0 can1).Führen Sie python3 -m doggie_lab --help aus, um alle Optionen anzuzeigen.
Für schnelle Tests ohne Hardware können Sie unter Linux mit SocketCAN eine einzelne virtuelle CAN-Schnittstelle simulieren. Dies ist ideal für grundlegendes Sniffing oder Injection, repliziert jedoch nicht die physikalischen Busverhalten, die für fortgeschrittene Herausforderungen erforderlich sind.
Richten Sie eine virtuelle CAN-Schnittstelle ein:
sudo modprobe vcan.sudo ip link add dev vcan0 type vcan und sudo ip link set up vcan0.--socketcan vcan0 vcan0 aus (Verwendung derselben Schnittstelle für den TX/RX-Loopback).Für alle Workshop-Herausforderungen sind jedoch physische Doggies unerlässlich, um reale Bus-Interaktionen wie Fehlerausbreitung und Buskonkurrenz zu beobachten. Verwenden Sie mindestens 3 Doggies: zwei für die ECU-Simulation (TX/RX) und eines als EvilDoggie-Angreifer, das mit dem gemeinsamen physischen Bus verbunden ist.
requirements.txt aufgeführt sind (z. B. python-can, tkinter für die UI).Dieser Simulator dient ausschließlich Forschungs- und Schulungszwecken. Nicht an echten Fahrzeugen verwenden. Beiträge sind willkommen – eröffnen Sie Issues oder PRs für Verbesserungen!
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Einzelheiten finden Sie in der Datei LICENSE.