1 Punkte von GN⁺ 2023-12-06 | 1 Kommentare | Auf WhatsApp teilen

Game-Hacking: 100 % Siegquote in Magic: The Gathering Arena erreicht

  • Eine Methode wurde entdeckt, mit der Gegner in Magic: The Gathering Arena automatisch zur Aufgabe gezwungen werden können
  • Mit der Absicht, das Problem zu melden, wurden zudem Quellcode und ein Lösungsvorschlag angeboten

Einleitung

  • Einschätzung zur Obfuskation von Client-Code: Sie erhöht die Hürde für Personen mit wenig Einsatz, ist aber ein Hindernis für engagierte Entwickler, die Sicherheitslücken melden wollen
  • Bei Kartenspielen verwaltet der Server den Spielzustand vollständig, und der Client erhält nur die notwendigen Informationen
  • Da der Client nur eingeschränkte Informationen besitzt, ist Hacking schwierig

Erste Schritte

  • Das Hacking des Spiels begann mit der Analyse der Netzwerkkommunikation
  • MTGA, geschrieben in C#, lässt sich zur Laufzeit leicht über Spielobjekte manipulieren
  • Es wurde Reflection verwendet, um auf private Felder und Methoden zuzugreifen

Auf der Suche nach Hinweisen

  • C#-Dekompilierung verknüpft Metadaten-Tokens mit für Menschen lesbaren Namen
  • Die Funktion JoinMatch wurde entdeckt und als der Punkt vermutet, an dem die erste Verbindung zum Game-Server hergestellt wird

Die Implementierung von Sparky

  • Sparky, das Maskottchen von MTGA, ist das Tutorial- und Übungs-Bot-System für neue Spieler
  • Die Bot-Logik läuft lokal, und der gesamte Entscheidungsprozess findet auf dem Rechner des Nutzers statt

Der Teufel steckt im Detail

  • Beim Start eines Bot-Matches verarbeitet die Klasse HeadlessClient die eigentliche Bot-Logik
  • Der Bot verbindet sich mit dem Game-Server und spielt die Partie, ohne das Spielbrett rendern zu müssen

Match-Übernahme

  • Mit Reflection lässt sich das Verhalten von Spielobjekten verändern
  • Es wurde Code geschrieben, der den eigenen Sitzplatz ermittelt und den Client mit einem anderen Sitzplatz verbindet, sodass der Gegner aufgibt

Meinung von GN⁺

Der wichtigste Punkt dieses Beitrags ist das verantwortungsbewusste Verhalten des Entwicklers, der eine Sicherheitslücke in einem Spiel entdeckt und sie teilt, um ihre Behebung zu verbessern. Besonders interessant ist, dass selbst in Systemen wie Kartenspielen, bei denen der Server den Spielzustand vollständig verwaltet, Schwachstellen existieren können, mit denen sich über clientseitige Manipulation das Spielergebnis beeinflussen lässt. Solche Informationen bieten Spieleentwicklern eine wichtige Lehre, um die Sicherheit zu stärken und Spiele fairer zu machen.

1 Kommentare

 
GN⁺ 2023-12-06
Hacker-News-Kommentare
  • Erste Erfahrungen mit Linux beim Untersuchen von Netzwerkverkehr

    • Nutzung des Programms ShowEQ für das Spiel EverQuest zur Analyse unverschlüsselten Datenverkehrs
    • Mit einem Hub den Traffic auf eine Linux-Maschine gespiegelt, in Echtzeit Karten gezeichnet und Charakterpositionen angezeigt
    • Sichtbarkeit der von Mobs getragenen Items sowie Unterstützung beim gezielten Farmen bestimmter Mobs
    • Eine passive und nicht erkennbare Methode, später begann SOE jedoch mit der Verschlüsselung des Datenverkehrs
  • Erstaunliche Effizienz von KI für das Spiel Magic: The Gathering

    • Überraschung über den geringen Speicherbedarf einer KI, die auf einer lokalen Maschine laufen kann
    • Es könnte sinnvoller sein, die KI lokal statt auf dem Server auszuführen
    • Überlegungen zu CPU-Unterschieden zwischen Server und lokaler Maschine sowie zu Multicore-Unterstützung
  • Komplexität und Effizienz bei der Entwicklung einer Magic: The Gathering-KI

    • Ausräumung von Missverständnissen über die Entwicklung einer komplexen KI für MTG
    • Erwähnung der Zugänglichkeit der Sparky-Logik und der Implementierungsentscheidungen der Entwickler
    • Hinweis auf die nahezu Turing-vollständige Natur des Spiels und die Entwicklung von KI-Strategien
  • Interesse an einem persönlichen Projekt zu MTGA und an Game-Hacking

    • Entwicklung eines inoffiziellen MTGA-Clients, allerdings noch in einem frühen Stadium
    • Ausdruck von Interesse an Erfahrungen mit Game-Hacking, Bug-Offenlegung und der Struktur des Clients
  • Freude an Magic 93/94 zusammen mit dem Sohn

    • Gemeinsames Spielen mit physischen Karten
    • Teilnahme an der Weltmeisterschaft in Madrid und Stolz auf die Leistung des Sohnes
  • Bedeutung clientseitiger Spiellogik und die Notwendigkeit serverseitiger Validierung

    • Betonung der Reaktionsfähigkeit clientseitiger Logik in Echtzeitspielen
    • Bedeutung serverseitiger Validierung bei Kartenspielen und Beschränkung von Informationen über den Gegner
  • Bugs in League of Legends und ihre Auswirkungen

    • Serverfehler und Manipulation des Spielergebnisses durch bestimmte Champion- und Item-Kombinationen
  • Frage zur KI-Anbindung während des Spiels und zur Behandlung von Aufgabe durch den Gegner

    • Frage, ob in echten Matches die Zuschaltung einer KI erlaubt ist und wie eine Aufgabe des Gegners verarbeitet wird
  • Erfahrung mit der Wiederverwendung von Serververbindungspaketen in Diablo 2

    • Geteilte Methode, um einen LAN-Server-Charakter mit offiziellen Internetservern zu verbinden
  • Interesse an der Entwicklung eines Server-Emulators und an LAN-Matches

    • Untersuchung der Möglichkeit, einen Server-Emulator für LAN-Matches mit allen freigeschalteten Karten zu entwickeln