Map-Protection – Mappedia

Map-Protection

Aus Mappedia
Wechseln zu: Navigation, Suche

Durch Map-Protection (englisch protection = Schutz, Absicherung) möchte der Autor einer Karte (englisch map) verhindern, dass sie von anderen Personen bearbeitet und verändert wird. Durch den Schutzmechanismus wird in der Regel ein Teil der Karte beschädigt, so dass der Editor die Daten nicht mehr auslesen kann, das eigentliche Spiel aber schon.

Eine Map-Protection basiert immer auf der Funktionsweise des MPQ-Formats, denn jede Karte ist ein MPQ-Archiv. Wer das MPQ-Format versteht, der versteht auch die verschiedenen Techniken des Kartenschutzes und kann sie deshalb wieder rückgängig machen.

Der Kartenschutz ist ein sehr umstrittenes Thema.

Inhaltsverzeichnis

Vor- und Nachteile

Pro

Contra

Sicherheit

Wie bereits oben ausgeführt, kann mit dem nötigen Wissen über das MPQ-Archiv-Format jeder Schutz umgangen werden. Alle Informationen, die das Programm zur Ausführung einer Karte benötigt, müssen noch in der Karte enthalten sein. Somit können diese Informationen auch für den Editor wieder lesbar gemacht werden.

Arten der Schutzmaßnahmen

MPQ-Headergröße verändern

Eine Warcraft3-Karte ist ein MPQ-Archiv. MPQ-Archive haben wie jeder Dateityp einen Header (Dateikopf), der so genannte Metadaten über die Datei beinhaltet (nicht zu verwechseln mit dem Kartenheader). Diese Metadaten bestehen sowohl aus Daten mit wichtige Informationen über den Inhalt der Datei, als auch aus technisch gesehen unnötigen Daten, die aber die Sicherheit erhöhen. Zu diesen Metadaten zählt zum Beispiel der Identifier (Kennung, Bezeichner), der aus vier Buchstaben besteht und die Datei als ein MPQ-Archiv kennzeichnet. Ausserdem markiert er den Beginn des tatsächlichen Headers. Im Header steht beispielsweise auch, wie viele Dateien das Archiv maximal aufnehmen kann. Das ist eine wesentliche Information, um Dateien aus dem Archiv lesen zu können und die, anders als der Identifier, durchaus unterschiedliche Werte haben kann.

In einer MPQ-Archivdatei beginnt der Header direkt am Anfang der Datei (Offset 0x0000), bei einer Karte etwas dahinter (Offset 0x0200). An diesem Offset sollten immer folgende acht Bytes stehen: 4D 50 51 1A 20 00 00 00. Die ersten vier Bytes bedeuten lediglich MPQ. Das ist der bereits angesprochene Identifier, wobei das vierte Byte ein Kontrollzeichen ist, das nicht angezeigt werden kann, aber wichtiger Teil des Identifiers ist. Die zweiten vier Bytes geben die Länge des Headers an.

Protection

Um einzelne Bytes einer Datei ändern zu können, wird ein Hexeditor benötigt.

Ein Hex-Editor ist ein risikobehaftetes Werkzeug. Jede noch so kleine Änderung in einer Datei kann unvorhersehbare Folgen haben. Editiere nur dann, wenn du genau weisst was du tust.


Mit dem Hex-Editor wird in der Datei der Identifier gesucht, der sich in einer Warcraft3-Karte immer an Position 0x0200 befindet. Am schnellsten ist er zu finden, wenn vom Beginn der Datei an die Suche nach MPQ vorgenommen wird, sofern er nicht bereits sofort ersichtlich ist. Die Buchstaben MPQ und das Byte danach (vierte Stelle) sind der Identifier, daran wird nichts verändert. Die vier Bytes, die darauf folgen sind 0x20000000. Hier kann eine beliebige andere Zahl eingesetzt werden (etwa 0xF66EBA76) und die Karte ist im Editor nicht mehr zu öffnen, weil die Headergröße wegen des geänderten Zahlenwertes ungültig geworden ist.

Die Schutzmaßnahme wird aufgehoben, indem der veränderte Wert wieder auf den ursprünglichen (0x20000000) zurückgestzt wird.

Löschen der war3map.wgt Datei

Die Datei war3map.wgt beinhaltet alle Informationen über Variablen, Trigger und Gruppen, die von der Karte benutzt werden. Diese Datei wird nur vom Editor verwendet, fehlt die Datei oder ist sie verändert worden, so kann der Editor die Karte nicht laden. Dieser Schutz kann sehr einfach entfernt werden - die Datei kann anhand von Informationen aus der Datei war3map.j wieder hergestellt werden.

Löschen von war3map.w3c, war3map.w3s, war3map.w3r

In der Datei war3map.w3c sind die Kameraeinstellungen für den Editor gespeichert, in der Datei war3map.w3s die Sounds, die benutzt werden und in der Datei war3map.w3r befinden sich die Regionen, die im World-Editor für diese Karte verwendet werden. Ebenso wie die war3map.wgt werden diese Dateien nur vom Editor benutzt und können ebenfalls anhand der Informationen aus der war3map.wgt Datei wieder hergestellt werden.

Verstecken der war3map.j

Eine andere Form des Schutzes ist das Verstecken der war3map.j Datei, die es einem Script nicht möglich macht, anhand dieser Datei eventuell die anderen wiederherzustellen. Normalerweise befindet sich diese Datei im Wurzelverzeichnes, durch die Maßnahme wird die Datei in ein Scripts\-Verzeichnis verschoben. Allein die Kenntnis dieser Schutzmöglichkeit reicht aus, sie durch entsprechendes Handeln zu umgehen.

Verschlüsseln der war3map.j Datei

Bei dieser Art des Schutzes werden alle Variablen und Funktionen in zufällige Zahlenkombinationen umbenannt. Die Datei ist daher ohne besondere Fachkenntnisse sehr schwer zu lesen. Mit den geeigneten Hilfsmitteln (Parser und ein entsprechendes Script) kann jedoch auch diese Maßnahme rückgängig gemacht werden.

Selber eine Map (un)protecten

  1. Eine neue, leere Textdatei auf dem Desktop erstellen
  2. Datei in war3map.wtg umbenennen
  3. Eigene Karte öffnen und mit Speichern unter eine Sicherheitskopie erstellen
  4. Den Import Manager mit F12 öffnen und die auf dem Desktop erstellte Datei importieren
  5. Den Pfad der importierten Datei soweit löschen, sodass nur noch war3map.wtg übrig bleibt
  6. Karte speichern
  1. Eine neue, leere Textdatei auf dem Desktop erstellen
  2. Datei in war3map.wtg umbenennen
  3. Eigene Karte öffnen und mit Speichern unter eine Sicherheitskopie erstellen
  4. Den Import Manager mit F12 öffnen und die auf dem Desktop erstellte Datei importieren
  5. Karte speichern
  6. Karte mit einem MPQ-Editor (beispielsweise WinMPQ) öffnen und damit das (Listfile) löschen
  1. Karte mit einem MPQ-Editor (beispielsweise WinMPQ) öffnen
  2. Die Datei war3map.wtg daraus löschen
  3. Karte im Editor öffnen
  1. Eine neue Textdatei mit unsinnigem Inhalt erstellen
  2. Datei in war3map.wtg umbenennen
  3. Die Datei mit WinMPQ der geschützten Karte hinzufügen und WinMPQ beenden (Karte wird gespeichert)
  4. WinMPQ neu starten und die Karte laden
  5. Die hinzugefügte war3map.wtg wieder daraus löschen und WinMPQ beenden (Karte wird gespeichert)
  6. Die Karte im Welt-Editor laden


Weblinks

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Warcraft-Mapping
Werkzeuge