KERNEL LEVEL ANTI-CHEAT BYPASS
â ïž 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.
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
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
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 ProzesserstellungPsSetLoadImageNotifyRoutine- Ăberwacht DLL-InjectionObRegisterCallbacks- 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.
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
MmMapIoSpacenach Ă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.