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
JoinMatchwurde 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
HeadlessClientdie 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
Hacker-News-Kommentare
Erste Erfahrungen mit Linux beim Untersuchen von Netzwerkverkehr
Erstaunliche Effizienz von KI für das Spiel Magic: The Gathering
Komplexität und Effizienz bei der Entwicklung einer Magic: The Gathering-KI
Interesse an einem persönlichen Projekt zu MTGA und an Game-Hacking
Freude an Magic 93/94 zusammen mit dem Sohn
Bedeutung clientseitiger Spiellogik und die Notwendigkeit serverseitiger Validierung
Bugs in League of Legends und ihre Auswirkungen
Frage zur KI-Anbindung während des Spiels und zur Behandlung von Aufgabe durch den Gegner
Erfahrung mit der Wiederverwendung von Serververbindungspaketen in Diablo 2
Interesse an der Entwicklung eines Server-Emulators und an LAN-Matches