[ Skip to main content ]
1 3 3 7 4 2 0 6 6 6 1 3 3 7 4 2 0 6 9 6 6 6 1 3 3 7 4 2 0 6 6 6 4 2 0 1 3 3 7 6 9 6 6 6 4 2 0 1 3 3 7 6 9 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 6 6 6 1 3 3 7 4 2 0 6 9 6 6 6 1 3 3 7 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 4 2 0 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 6 9 4 2 0 6 9 1 3 3 7 4 2 0 6 6 6 6 9 1 3 3 7 4 2 0 6 6 6 6 9 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 6 9 4 2 0 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6 4 2 0 6 9 1 3 3 7 6 6 6
TUTORIALS / SECURITY

KERNEL LEVEL ANTI-CHEAT BYPASS

DIFFICULTY: ADVANCED UPDATED: DECEMBER 2025

⚠️ HAFTUNGSAUSSCHLUSS: NUR FÜR BILDUNGSZWECKE

Das Umgehen von Anti-Cheat-Software verstößt gegen die Nutzungsbedingungen und kann zu permanenten Bans führen. Dieser Guide erklärt die Konzepte für Sicherheitsforschung und das Verständnis moderner Anti-Cheat-Architekturen.

Kernel Level Anti-Cheat Bypass

EINFÜHRUNG

Moderne Anti-Cheats wie BattlEye, Easy Anti-Cheat (EAC) und Vanguard operieren auf Ring 0 (Kernel-Modus). Traditionelle User-Mode-Cheats mit ReadProcessMemory werden sofort durch Kernel-Mode-Callbacks erkannt.

Um diese Systeme zu umgehen, müssen Angreifer ihren eigenen unsignierten Treiber in den Kernel laden, um Speicher zu lesen/schreiben ohne Erkennungsmechanismen auszulösen. Dieser Guide erklärt, wie diese Techniken funktionieren.

Windows Protection Rings Architektur

Ring 0 - Kernel-Modus Anti-Cheat / Treiber
Ring 1 & 2 - Gerätetreiber Hardware-Zugriff
Ring 3 - User-Modus Anwendungen / Spiele
Ring 0 = Vollständiger Systemzugriff, Ring 3 = Eingeschränkter Zugriff

VORAUSSETZUNGEN

  • C/C++ Programmiererfahrung - Fortgeschrittene Kenntnisse erforderlich
  • Windows Driver Kit (WDK) - Für Treiberentwicklung
  • Verständnis von Windows Internals - Kernel-Strukturen, Callbacks, etc.
  • Ein verwundbarer Treiber - Zum Ausnutzen von Driver Signature Enforcement (DSE)

KERNKONZEPTE

1. Driver Signature Enforcement (DSE)

Windows verlangt, dass alle Kernel-Mode-Treiber von Microsoft digital signiert sind. Da Cheat-Entwickler keine Microsoft-Signaturen bekommen können, müssen sie DSE umgehen.

Häufige Bypass-Methoden:

  • KDMapper: Nutzt verwundbare Intel/AMD-Treiber (z.B. iqvw64e.sys, gdrv.sys) um unsignierte Treiber manuell in Kernel-Speicher zu mappen
  • Bootkits: Hookt den Bootloader um DSE zu deaktivieren, bevor der Windows-Kernel lädt
  • DSEFix: Patcht das CI.dll-Modul des Kernels um Signaturprüfungen zu deaktivieren
// Beispiel: Treiber laden via verwundbarem IOCTL
HANDLE hDevice = CreateFileA(
    "\\\\.\\VulnerableDriver",
    GENERIC_READ | GENERIC_WRITE,
    0, NULL, OPEN_EXISTING, 0, NULL
);

DWORD bytesReturned;
DeviceIoControl(
    hDevice, IOCTL_MAP_DRIVER,
    driverBuffer, driverSize,
    NULL, 0, &bytesReturned, NULL
);

2. Kernel Callbacks & Erkennung

Anti-Cheats registrieren Callbacks für Prozess-/Thread-/Image-Load-Events. Jede verdächtige Aktivität löst Erkennung aus.

Häufige Callbacks zu vermeiden:

  • PsSetCreateProcessNotifyRoutine - Überwacht Prozesserstellung
  • PsSetLoadImageNotifyRoutine - Überwacht DLL-Injection
  • ObRegisterCallbacks - Schützt Prozess-Handles

3. Kommunikationsmethoden

Standard-IOCTL-Kommunikation wird leicht erkannt durch Scannen nach registrierten Device-Objekten.

Stealthigere Alternativen:

Shared Memory (SMAP)

Erstelle eine gemeinsame Speichersektion, die sowohl vom User- als auch vom Kernel-Modus erreichbar ist. Kein Device-Objekt = schwerer zu erkennen.

Data Pointer Hooking

Hijacke einen Pointer in einem legitimen Treiber (z.B. NIC-Treiber) um auf deine Kommunikationsfunktion zu zeigen.

Mouse/Keyboard Filter

Hänge einen Filter an Eingabegeräte und kodiere Befehle in gefälschten Input-Events.

4. Spuren verwischen

Nach dem Laden musst du alle Spuren deines Treibers aus dem Kernel-Speicher entfernen.

// MmUnloadedDrivers Liste löschen
PVOID MmUnloadedDrivers = GetProcAddress("MmUnloadedDrivers");
RtlZeroMemory(MmUnloadedDrivers, sizeof(UNLOADED_DRIVERS) * 50);

// Big Pool Allokationen löschen
ExFreePoolWithTag(DriverObject, 'TAG');

// PE-Header löschen
RtlZeroMemory(DriverBase, 0x1000);

5. Speicher lesen ohne Erkennung

Direkte MmCopyVirtualMemory-Aufrufe werden gehookt. Nutze alternative Methoden:

  • Physical Memory: Lesen via MmMapIoSpace nach Übersetzung von virtuellen→physischen Adressen
  • MDL Mapping: Erstelle Memory Descriptor Lists um Zielprozess-Seiten zu mappen
  • APC Injection: Queue Asynchronous Procedure Calls um im Zielkontext auszuführen

FAZIT

Kernel-Level Anti-Cheat-Bypass ist ein Katz-und-Maus-Spiel. Sobald ein öffentlicher Mapper oder eine Technik veröffentlicht wird, wird sie innerhalb von Tagen oder Wochen geflaggt.

⚠️ Rechtliche & Ethische Erinnerung:

  • Cheats in Online-Spielen zu nutzen verstößt gegen die Nutzungsbedingungen
  • Das Verteilen von Cheat-Software kann gegen Computerbetrug-Gesetze verstoßen
  • Diese Informationen dienen nur der Sicherheitsforschung und dem Verständnis von Verteidigungstechniken

Der einzige Weg, langfristig unerkannt zu bleiben, ist die Entwicklung privater, maßgeschneiderter Treiber und das Finden eigener verwundbarer Treiber zum Ausnutzen. Öffentliche Tools werden sofort verbrannt.

FAQ / KONZEPTE

⚠️ Defensive Perspektive: Angriffe verstehen, um Abwehrmaßnahmen zu verbessern

❓ Was ist DSE und warum verlangt Windows signierte Treiber?

Driver Signature Enforcement stellt sicher, dass nur von Microsoft genehmigter Kernel-Code geladen werden kann. Das stoppt die Mehrheit der Rootkits und Keylogger, ist aber nicht unfehlbar — verwundbare signierte Treiber können ausgenutzt werden, um beliebigen Code nachzuladen.

❓ Wie erkennen Anti-Cheats manuell gemappte Treiber?

Mehrere Techniken: Scannen auf Hashes bekannter verwundbarer Treiber, Suche nach nicht-verknüpften Treibern in PsLoadedModuleList, Erkennung von Big-Pool-Allokationen mit verdächtigen Tags, Aufzählen von MmUnloadedDrivers und Integritätschecks kritischer Kernel-Strukturen.

❓ Ist die Nutzung eines verwundbaren Treibers illegal?

Für Security-Research und Pentests auf eigenen Systemen: in den meisten Rechtsräumen legal. Für Anti-Cheat-Evasion in Online-Spielen: verstößt gegen die EULA/ToS und kann zu permanenten Banns führen. Für das Laden unsignierter Treiber auf fremden Systemen: Computerbetrug / unbefugter Zugriff in den meisten Ländern.

❓ Was ist der Unterschied zwischen BattlEye, EAC und Vanguard?

BattlEye und EAC laden beim Spielstart und entladen beim Schließen (User-Mode + optionaler Kernel-Treiber). Vanguard (Riot Games) lädt beim Boot und bleibt resident — Neustart zum Deaktivieren nötig. Alle drei nutzen Kernel-Callbacks und Integritätschecks.

❓ Kann HVCI das vollständig blockieren?

HVCI (Hypervisor-Enforced Code Integrity) erhöht die Hürde deutlich, indem Code-Integrität in einem VTL-1-Hypervisor erzwungen wird. Es blockiert die meisten Manual-Mapping-Techniken, ist aber auf Consumer-Windows nicht standardmäßig aktiviert und kostet ~3-5% Performance.

❓ Was ist mit Linux / macOS Spielen?

Die meisten AAA-Anti-Cheats zielen nur auf Windows. Easy Anti-Cheat hat Linux-Support (für manche Spiele via Proton), aber Kernel-Level-Detection ist weniger ausgereift. macOS nutzt GameIntegrity/Notarisierung, hat aber nicht die reiche Kernel-Angriffsoberfläche von Windows.

📚 Weiterführende Literatur (defensive Forschung):

Microsoft WDK Dokumentation · WDF Samples