Info2go

Hier gibt ́s Videos über spannende Experimente, Aufnahmen von wissenschaftlichen Phänomenen und Reportagen über nordbord-Projekte sowie interessante Unternehmen. Das Beste: Du kannst auch deine eigenen Filme drehen und hier mit anderen nordbordern teilen.

Wir hacken ein Spiel!

Was macht man, wenn ein Spiel keine Cheatcodes anbietet aber trotzdem zu schwierig ist? Man bastelt sich den Schummelcode einfach selber!

Die grundsätzliche Funktionsweise ist dabei ziemlich einfach: Alle Werte, die das Spiel anzeigt müssen irgendwo im Arbeitsspeicher abgelegt sein. Und der Administrator hat die Befugnis, den gesamten Arbeitsspeicher zu verändern. Jetzt braucht es nur noch ein Programm, mit dem man herausfinden kann, welche Stellen im Arbeitsspeicher wir eigentlich verändern müssen. An dieser Stelle habt ihr unglaublich viel Auswahl, in diesem Beispiel verwende ich das Programm "Cheat Engine". Achtet nur unbedingt darauf, bei der Installation keine Toolbars oder sonstigen unnützen Programme mit auf den Rechner zu packen. Vorsicht: Viele dieser Programme arbeiten ähnlich, wie es ein Virus möglicherweise tun würde. Wenn also euer Virenscanner anschlägt hat das im Normalfall nichts zu bedeuten, seid aber trotzdem vorsichtig! Verwendet keinesfalls irgendwelche "verbesserten" Versionen die euch über den Weg laufen, sondern nehmt nur die Version vom originalen Entwickler. Und dann brauchen wir natürlich noch ein Spiel, in dem wir gerne schummeln möchten. Theoretisch funktioniert dieses Verfahren mit jedem Spiel, aber ein paar Dinge machen das Hacken leichter oder schwieriger:
  • Bei Multiplayerspielen zeigt das Spiel nur die Daten an, die der Server ihm vorgibt. Wenn Ihr in solchen Spielen also hackt, sieht kein anderer Spieler eure Veränderungen und ihr habt davon auch keinen Vorteil. Abgesehen davon führt die Verwendung solcher Programme typischerweise zu einer Sperre.
  • Moderne Spiele haben einen sehr großen Speicherbedarf. Und je mehr Speicher ein Spiel verwendet, desto länger dauert die Suche nach den richtigen Speicherbereichen, die wir gerne verändern möchten.
Damit ihr dieses Beispiel alle nachvollziehen könnt, habe ich mich für ein etwas älteres Spiel entschieden: Tyrian. Das gibt es kostenlos auf z.B. Abandonia.com oder GOG.com. Tyrian läuft unter modernen Systemen nur in einem DOS-Emulator wie DOS Box, die Version von GOG.com ist dafür schon fertig eingerichtet und lässt sich einfach so starten. Wer schon Erfahrungen mit der DOS Box gesammelt hat greift zur Version von Abandonia und muss sich dann nirgends registrieren. Alle benötigten Programme heruntergeladen? Dann wollen wir mal schauen, wie kompliziert es ist Tyrian zu hacken. Die folgenden Schritte zeigen übrigens, anders als das Tutorial der Cheat Engine, einen typischen Fallstrick, dem man beim Hacken häufiger begegnet und nimmt daher einen kurzen Umweg.
  1. Starte Tyrian. Mit Alt + Enter kannst du in Tyrian (bzw. der DOS Box) zwischen Vollbild und Fenstermodus umschalten.
  2. Wähle "Start New Game" und beginne ein "1 Player Full Game". Persönlich würde ich empfehlen in "Episode 1" auf "Normal" zu starten, das ist für dieses Beispiel aber egal. Ihr beginnt das Spiel mit 10.000 Geldeinheiten, und genau davon wollen wir uns noch ein paar mehr erschummeln.
  3. Wechsle im Spielmenü auf "Upgrade Ship" und wähle dann "Front Gun". In diesem Menü kann man die Hauptwaffe des Raumschiffs verbessern.
  4. Startet jetzt die Cheat Engine. Sofern ihr das Programm noch nicht gestartet habt erscheint ein durchaus gut gemachtes (englisches) Tutorial, das wir fürs erste aber ignorieren (also schließen). Dieses Beispiel geht allerdings nicht so sehr in die Tiefe wie das mitgelieferte Tutorial, wer mag kann sich also auch gerne daran versuchen. Übrigens gibt es das Tutorial auf der Downloadseite auch in einer deutschen Übersetzung.
  5. Klickt auf den "Select Process To Open" Knopf in der Menüleiste ganz oben links. Aus der Liste der ausgeführten Programme wählt ihr die DOS-Box.exe. Eine Tyrian.exe werdet ihr nicht finden, das Programm läuft innerhalb der DOS Box.
  6. Sucht nach dem Wert "10000" indem ihr diese Zahl in das Textfeld unter "Value" eingebt. Klickt dann auf "First Scan". Der korrekte Scantyp ist "Exact Value", den "Value Type" belassen wir erstmal auf "4 Bytes". Klickt dann auf "New Scan".
  7. Ihr werdet sehen, dass sich auf der linken Seite eine Liste mit Speicheradressen gefüllt hat. An jeder dieser Stellen im Speicher steht die Zahl 10000. Um jetzt herauszukriegen welche dieser Adressen für das aktuelle Guthaben steht, geben wir in Tyrian ein bisschen Geld aus: Gebt 500 Geldeinheiten aus, um eure Frontwaffe auf Stufe 2 zu bringen. Startet danach einen erneuten Scan nach einem exakten Wert, der eurem Restguthaben also "9500" entspricht. Mit einem Klick auf "Next Scan" sucht ihr in den schon gefundenen Speicherzellen nach dem Wert 9500.
  8. Ihr werdet nun feststellen, dass alle Werte einfach verschwinden. Tyrian ist ein etwas älteres Spiel, da hat man möglicherweise mit dem Speicher gespart. Startet einen neuen Scan (Schritt 6), aber verwendet dieses Mal als "Value Type" nur "2 Bytes". Jetzt solltet ihr die passende Speicheradresse durch Käufe im Spiel mit anschließender Nutzung von "Next Scan" finden können.
  9. Wenn nur noch eine Adresse übrig ist, kannst man sie doppelt anklicken, um sie in den unteren Teil des Programms zu übernehmen. Hier könnt ihr der Adresse eine Bezeichnung geben oder den Wert verändern (durch einen Doppelklick auf die jeweilige Zelle). Ändert nun den Guthabenwert.
  10. Mist, da klappt anscheinend wieder etwas nicht: Der Wert springt nach der Änderung immer wieder zurück. Das liegt an dem Eingangs erwähnten Fallstrick. Vermutlich betrachten wir gerade einen vorhersagenden Wert: Die Anzeige beim Upgrade der Waffe zeigt nur an, wieviel Geld noch übrig bleiben würde, wenn man das Uprade jetzt kauft. Und weil dieser Wert jeden Frame neu berechnet wird lässt er sich durch die Game Engine auch nicht dauerhaft verändern.
  11. Was kann man dagegen tun? Man kauft das Upgrade einfach wirklich, indem man mit zwei Klicks auf "Done" ins Spielmenü von Tyrian wechselt.  Dann startest du in der Cheat Engine einen neuen Scan nach deinem aktuellen Guthaben. Durch die Kombination von neuen Käufen und der Eingrenzung der Adressen mit "Next Scan" sollte am Ende wiederum nur eine Adresse übrig bleiben. Tipp: Der gesuchte Wert ist doch 4 Byte groß ;)
In der Challenge am kommenden Freitag werden wir uns erneut mit der Cheat Engine befassen um in einem anderen Spiel zu schummeln. Der grundsätzliche Ablauf bleibt dabei aber gleich:
  • Sucht in der Anzeige des Spiels nach initialen Werten, die ihr gerne verändern möchtet und scannt mit "New Scan" danach.
  • Grenzt die in Frage kommenden Speicherberieiche durch gezielte Änderungen im Spiel und anschließendes nutzen von "Next Scan" weiter ein.

Zurück