So hacken Sie den Kopierschutz der Sega Dreamcast-Konsole


Nach der Veröffentlichung des DOOM Black Book machte ich Urlaub in Japan, wo ich es schaffte, Ikaruga auf einem echten Arcade-Automaten im Taito HEY-Spielzimmer im Akihabara-Viertel von Tokio zu spielen. Diese Erfahrung hat mein Interesse an der neuesten SEGA-Videospielkonsole - Dreamcast - wiederbelebt.

Im Netzwerk finden Sie viele Dokumente, die das Studium des Problems erheblich erleichtern. Es gibt zwei hervorragende Ressourcen, mit denen jeder schnell auf den neuesten Stand gebracht werden kann: die wunderbare Marcus Comstedt-Website, auf der alles bis auf die GPU-Register beschrieben wird, und Jockels Ressource „Lassen Sie uns ein Spiel für Sega Dreamcast von Grund auf neu erstellen .

Als ich das Auto studierte, entdeckte ich eine erstaunliche Geschichte darüber, wie Hacker den Schutz von Kopien von Spielen schnell aufbrachen und die neuesten Hardware-Hoffnungen von SEGA ruinierten.

Erste Schutzstufe: GD-ROM


Auf dem Papier sah der Kopierschutz für SEGA Dreamcast sehr stark aus. Die Spiele wurden auf einem speziellen Medium namens GD-ROM ausgeliefert, das nur SEGA produzieren konnte. GD steht für "Gigabyte Disc" ("Gigabyte Disk"), dh die erhöhte Aufnahmedichte ergab ein maximales Volumen von 1 GB, was viel mehr war als die Fähigkeiten einer herkömmlichen CD-ROM (700 MB).


Bild

Die GD-ROM hatte die gleichen physischen Abmessungen wie die CD-ROM, bestand jedoch auf Makroebene aus zwei Bereichen, die mit bloßem Auge unterscheidbar waren.

Die erste (dunkle) Zone ist eine CD-ROM-kompatible Region mit niedriger Dichte, die bis zu 35 MB enthält. Es enthielt eine Sprach-Audiospur, die den Benutzer daran erinnerte, dass der Inhalt der Disc für SEGA Dreamcast und nicht für einen CD-Player bestimmt war [1] . Außerdem fügte der Entwickler dort einen Titel mit Textdateien hinzu, z. B. Copyright-Informationen und manchmal Werbematerialien, z. B. Kunst aus dem Spiel.

Der Bereich mit hoher Dichte (Licht) wurde bis zu 984 MB [2] gespeichert und der gesamte Inhalt des Spiels befand sich darauf.

Für die Hacker schien es unmöglich, das Spiel von der Festplatte zu werfen und es erneut zur Verteilung zu brennen.

Booten von GD-ROM: IP.BIN und 1ST_READ.BIN


Bevor wir darüber sprechen, wie Piraten es geschafft haben, Spiele zu kopieren, müssen wir die Ladesequenz verstehen. Dreamcast hatte kein Betriebssystem. Es gibt ein weit verbreitetes Missverständnis, dass Windows CE verwendet wurde. Tatsächlich war Microsoft OS jedoch nur eine zusätzliche statische Bibliothek, mit der Dreamcast-Entwickler eine Verbindung herstellen konnten, um DirectX, DirectInput und DirectSound zu verwenden [3] . In einigen Spielen wurde WinCE verwendet [4] , aber in den meisten (zum Beispiel Ikaruga) wurde es nicht verwendet. Unabhängig davon, was der Entwickler verwendet hat, wurde ein Spiel mit einem vollständig verbundenen Betriebssystem und Dreamcast immer auf die gleiche Weise gestartet.

Während des normalen Gebrauchs und des Starts des offiziellen Spiels im neu aktivierten Dreamcast wurde BOOTROM gestartet und das Bootstrap-Programm von der GD-ROM in den RAM geladen. Dieses winzige Programm, das sich auf der letzten GD-ROM-Spur befindet und der Community als „IP.BIN“ bekannt ist, zeigte einen SEGA-lizenzierten Bildschirm an und führte zwei Startebenen durch, um Hardwareregister einzurichten, einen CPU-Stack zu erstellen und VBR zu initialisieren [5] .

Noch wichtiger ist, dass IP.BIN den Namen der ausführbaren Spieldatei enthielt. Dieser Name wurde im GD-ROM-Dateisystem gesucht und um 0x8C010000 in den RAM geladen, wonach das Programm dorthin übertragen wurde. In der Regel wurde die ausführbare Datei "1ST_READ.BIN" genannt.


Nachdem die CPU die Adresse 0x8C010000 erreicht hatte, wurde das Spiel wie gewünscht gestartet.

Zweite Schutzstufe: Scrambler-Ransomware


Die theoretische Möglichkeit des Hackens ergab sich aus der scheinbar unbedeutenden Fähigkeit von Dreamcast, nicht von GD-ROM, sondern von CD-ROM zu booten. Ursprünglich war diese als „MIL-CD“ bezeichnete Funktion zum Hinzufügen von Multimedia-Funktionen zu Musik-CDs konzipiert, wurde jedoch mit Ausnahme von sieben Karaoke-Anwendungen praktisch nicht verwendet.

Die SEGA-Ingenieure haben verstanden, dass das Laden einer MIL-CD als Angriffsvektor verwendet werden kann, und haben daher zusätzlichen Schutz geboten. Als die Konsole die CD-ROM erkannte, lud BOOTROM IP.BIN auf die übliche Weise, verschlüsselte jedoch 1ST_READ.BIN auf den ersten Blick zufällig. Die funktionierende ausführbare Datei verwandelte sich in einen chaotischen Hash, der dazu führte, dass die Konsole einfrierte.


Unter diesem Gesichtspunkt schien die Konsole zuverlässig geschützt zu sein. Dreamcast konnte eine Raubkopie des Spiels erkennen, die ausführbare Datei während des Downloadvorgangs beschädigen und die Piraten besiegen.

Serviere mein langes Schwert!


Das Problem mit der beschädigten Datei wurde behoben, als Ende 1999 das Katana SDK (offizielles Sega SDK für Dreamcast) vom Utopia-Hackerteam gestohlen wurde [6] . Es stellte sich heraus, dass der Scrambler nichts anderes als eine Implementierung des Prinzips „Sicherheit durch Dunkelheit“ war. Das SDK enthielt einen Reverse-Scrambler, der die korrekte ausführbare Datei in einen "Rückwärts-Hash" verwandelte, der nach dem Laden und Verwürfeln mit der Dreamcast-Konsole beim Booten von einer CD-ROM wieder zu einer ausführbaren Datei wurde.


Ein Spiel mit seiner GD-ROM abrufen


Das gestohlene SDK war alles, was Piraten brauchten. Dank der Möglichkeit, Code auf einem Computer auszuführen, konnte Dreamcast jetzt nicht mehr als Spielekonsole, sondern als GD-ROM-Laufwerk verwendet werden. Das „Encoder-Kabel“ aus dem SDK [7] ermöglichte es, die Konsole an einen PC anzuschließen und eine physische Verbindung herzustellen. Damit die Konsole den Inhalt der GD-Tracks sichern kann, wurde eine spezielle ausführbare Datei geschrieben. Dann wurde es erneut verschlüsselt und auf eine CD-ROM gebrannt, um alle 1 GB Daten über die serielle Schnittstelle der Konsole auszugeben. Es war ein fehleranfälliger Prozess, der bis zu 18 Stunden dauerte [8] [9] . Das Ergebnis wurde in einem speziell erstellten ".gdi" -Format gespeichert.

  ikaruga.gdi 153 Bytes
 track01.bin 13 982 640 Bytes
 track02.raw 2.088.576 Bytes
 track03.bin 1 185 760 800 Bytes 

Eine interessante Tatsache : Sie können sehen, dass die Gesamtdatenmenge nicht 1 GB beträgt, wie oben erwähnt, sondern 1,2 GB. Dies liegt daran, dass die 2352-Byte-GD-ROM-Sektoren dem Red Book-Format folgen, das 12 Byte für die Synchronisation, 4 Byte für den Header, 2048 Byte für die Nutzlast und 288 Byte für den Fehlererkennungscode / Fehlerkorrekturcode verwendet [10 ] .

  $ cat ikaruga.gdi 
 3
 1 0 4 2352 track01.bin 0
 2 5945 0 2352 track02.raw 0
 3 45000 4 2352 track03.bin 0 

So passen Sie eine 1000-Megabyte-GD-ROM an eine 700-Megabyte-CD-ROM an


Um das Spiel auf eine 700-Megabyte-CD-ROM zu bringen, wurden die Spielressourcen überarbeitet. Das in GD-ROM verwendete ISO-9660-Dateisystem machte es einfach, die Diskretisierung von Videos und Musik zu ändern und sie vollständig zu löschen. Für die meisten Spiele war ein derart komplexer Prozess jedoch nicht erforderlich, da sie nicht die gesamten 1 GB belegten. Zum Beispiel nahm Treasures Ikaruga nur 150 MB ein, und der größte Teil seines Inhalts war mit Nullen gefüllt. In solchen Fällen reichte es aus, nur die Fülldaten zu bearbeiten.

Tatsächlich ist ISO-9660 ein so bekanntes Format, dass sogar Python-Skripte (z. B. gditools.py ) geschrieben wurden, um den Inhalt von .gdi-Archiven zu untersuchen.

Verpackung und Vertrieb


Die letzten beiden Schritte des Prozesses waren das umgekehrte Verwürfeln von 1ST_READ.BIN und das Packen aller Informationen in ein .cdi-Archiv, damit DiscJuggler das Image auf CD-R brennen konnte. Das erzielte Ergebnis funktionierte problemlos auf jedem Vanilla Dreamcast, ohne dass ein Modifikationschip erforderlich war.

SEGA-Reaktion und Konsequenzen


SEGA veröffentlichte schnell die zweite Version der DC-Konsole mit vollständig deaktivierter MIL-CD, aber der Schaden wurde bereits angerichtet. Nach einem katastrophalen Umsatzrückgang und der Veröffentlichung der konkurrierenden PS2 gaben die Entwickler Dreamcast auf und SEGA verließ die Entwicklung der Geräte und konzentrierte sich ausschließlich auf die Erstellung von Software.

Referenzen


[1] Quelle: SEGA GD Workshop
[2] Quelle: segaretro.org: GD-ROM
[3] Quelle: Microsoft kündigt Windows CE Toolkit für Dreamcast an
[4] Quelle: Dreamcast-Spiele unter Windows CE
[5] Quelle: IP.BIN und 1ST_READ.BIN
[6] Quelle: Lassen Sie uns ein Sega Dreamcast-Spiel von Grund auf neu erstellen
[7] Quelle: PC Serial Adapter
[8] Quelle: Ein genauerer und detaillierterer Blick auf die Sicherheit von Dreamcast
[9] Quelle: Zuletzt wurden schnellere Wege unter Verwendung des Breitbandanschlusses des DC entworfen
[10] Quelle: Dreamcast Mythos: GD-ROM-Speicherkapazität

Source: https://habr.com/ru/post/de433072/


All Articles