1 Punkte von GN⁺ 2025-01-21 | 1 Kommentare | Auf WhatsApp teilen

Reverse Engineering des Anti-Cheat-Systems von Call of Duty

  • Einführung
    • Es werden die Ergebnisse der Untersuchung des User-Mode-Anti-Cheat-Systems von Black Ops Cold War vorgestellt.
    • Es handelt sich um ein Spiel von Treyarch; das System wird als TAC (Treyarch Anti-Cheat) bezeichnet.
    • Der wichtigste Unterschied zu neueren Spielen ist das Vorhandensein bzw. Fehlen eines Kernel-Mode-Treibers.

Arxan

  • Rolle von Arxan
    • Ein Obfuskations-/Schutzwerkzeug, das in Call-of-Duty-Spielen verwendet wird.
    • Es verschlüsselt die ausführbare Datei und beendet den Prozess, wenn ein Debugger oder eine Prüfsummenabweichung erkannt wird.

Laufzeitverschlüsselung der ausführbaren Datei

  • Schutz der ausführbaren Datei
    • Die ausführbare Datei des Spiels ist gepackt und verschlüsselt, und Arxan entpackt und entschlüsselt sie.

Prüfsumme der ausführbaren Datei

  • Überwachung der Prüfsumme
    • Arxan überwacht fortlaufend, ob die ausführbare Datei gepatcht wurde.

Jmp-Obfuskation

  • Funktionsobfuskation
    • Funktionen und Instruktionen werden durch jmp aufgeteilt, um die Analyse zu erschweren.

Obfuskation des Einstiegspunkts

  • Schutz des Einstiegspunkts
    • Dem Einstiegspunkt eines mit Arxan geschützten Spiels zu folgen ist schwierig.

Pointer-Verschlüsselung

  • Schutz von Pointern
    • Wichtige Pointer werden vor jeder Verwendung ver- und entschlüsselt.

Methoden von TAC zur Erkennung von Überwachung

  • Erkennung von API-Hooks
    • TAC nutzt die Windows-API für Anti-Cheat-Funktionen und erkennt bestimmte Muster.

Nachschlagen von API-Exports zur Laufzeit

  • API-Nachschlagen
    • TAC schlägt APIs anhand von Modul-Hashes und API-Namens-Hashes nach.

Debug-Register

  • Erkennung von Debug-Registern
    • TAC erkennt Debug-Register und beendet den Prozess.

Erzwingung von Treibersignaturen

  • Erkennung des Testmodus
    • Der Testmodus von Windows wird erkannt und das Konto entsprechend markiert.

Methoden von TAC zum Beenden von Prozessen

  • Beenden von Prozessen
    • TAC beendet Prozesse auf zwei Arten und initialisiert Register zurück.

Erkennung von Cheat-Logging

  • Erkennung zugewiesener Konsolen
    • Es wird geprüft, ob ein Konsolenfenster zugewiesen wurde, um Cheats zu erkennen.

Erkennung visueller Elemente

  • Erkennung von ESP und UI
    • Cheats, die mit DirectX 12 auf den Bildschirm zeichnen, werden erkannt.

1 Kommentare

 
GN⁺ 2025-01-21
Hacker-News-Kommentare
  • Es braucht gesetzliche Regulierung dagegen, Produktfunktionen nach dem Verkauf zu entfernen. Insbesondere wenn Funktionen durch Verträge oder EULAs entfernt werden, sollten Spielbesitzer eine Rückerstattung erhalten. Die Annullierung eines Kaufs auf Steam sollte rechtlich nicht möglich sein, und selbst bei eingeschränktem Account-Login sollten Gegenstände und Inventar handelbar bleiben. Wenn man in Multiplayer-Spielen einen Verhaltenskodex durchsetzen will, darf man für das Spiel kein Geld verlangen, Sanktionen müssen dem Grundsatz der Verhältnismäßigkeit folgen, und es braucht ein kostengedeckeltes Berufungssystem mit menschlicher Beteiligung

  • In einem zweijährigen Rechtsstreit mit Activision wurde eine ungerechtfertigte permanente Sperre aufgehoben. Activision verlor, ohne Beweise für Cheating vorzulegen

  • Ich spiele das Spiel nicht, aber mein Partner spielt es. Ich habe gesehen, wie Spieler unter der Erde beobachtet wurden, und selbst wenn der Client gehackt ist oder Cheats verwendet, sollte der Server serverseitig prüfen, ob der Zustand eines Spielers gültig ist

  • Ich frage mich wegen der Jump-Obfuskation: Sind unbedingte Sprünge nicht häufig genug, dass man danach als Vorbedingung filtern könnte? Es wirkt, als müsste es einfach sein, das Ende einer Funktion zu finden. Könnte man den Stack analysieren, um zu wissen, wohin eine Funktion zurückkehrt, und dann direkt vor der Rücksprungadresse nach einem Call suchen?

  • Ich frage mich, wo man diese Techniken lernt. Ich würde gern die Hälfte dieses Artikels verstehen, aber ich weiß nicht, wie ich anfangen soll

  • Ich habe ein wenig Reverse Engineering bei einem populären Horde-/Alliance-basierten MMO betrieben und dabei fast dieselben Schritte befolgt, einschließlich FNV32-Export-Hashing. Es scheint sehr ähnliche Tricks zu verwenden. Ich frage mich, ob es mit demselben Schutz gepackt wurde

  • Hervorragende Forschungsarbeit. Das ist ganz klar nicht die erste Erfahrung des Autors

  • Solange man Speicher lesen und schreiben kann, lässt sich Online-Cheating in FPS-Spielen nicht verhindern

  • Signature Scanning ist der süchtig machendste Teil des Reverse Engineering. Man erstellt eine Liste von Signaturen und schreibt Bindings zu einer Skriptsprache, um Funktionszeiger aufzurufen. Das ist die Grundlage, auf der viele Third-Party-Modding-Plattformen funktionieren

  • Cheating in Multiplayer-Spielen ist ein großes Problem und zerstört das Vertrauen in große FPS-Titel. Als CS-Spieler habe ich neue CoD-Spiele kurz ausprobiert, aber es gibt kein Spiel, das ich wegen des Cheatings empfehlen könnte. In Spielen wie Escape From Tarkov stehlen Cheats sogar die Läufe von Waffen und erzwingen das Beenden des Spiels/PCs. Der Competitive-Modus von Counter-Strike wirkt wie ein Werbebereich für Cheats direkt im Spiel. Valorant ist mit seinem invasiven Anti-Cheat besser als andere Spiele, aber nicht so sauber, wie Fans behaupten. Die Private-Matchmaking-Industrie bei Counter-Strike wurde auf dem Versprechen von Anti-Cheat und Spiel auf Pro-Niveau aufgebaut