Abo
  • Services:

Jäger und Sammler von Speicheradressen

Bachaalany begann, in mühsamer Kleinarbeit alle Speicheradressen zu sammeln, die von den EUD-Karten genutzt wurden. Dafür startete er die Karten wieder und wieder und führte verschiedene Aktionen aus. "Ich habe diese Karten Hunderte Mal geladen. Die Tastenkombinationen, um mich durch das Menü zu navigieren, kenne ich auswendig", sagte Bachaalany Golem.de. Leider sei es nicht möglich, bestimmte Karten und Ereignisse über die Kommandozeile aufzurufen, was die Arbeit erleichtert hätte.

Stellenmarkt
  1. Wüstenrot & Württembergische AG, Ludwigsburg
  2. August Beck GmbH & Co. KG, Winterlingen

Im Hintergrund zeichnete Bachaalany auf, welche Befehle und Aktionen ausgeführt wurden und auf welchen Speicherbereich zugegriffen wurde. Außerdem nutzte er den Debugger und Decompiler Ida Pro von Hex-Rays, um Anweisungen des Programms nachzuvollziehen und zu verstehen. An einigen Stellen konnte er auch auf Quellcode von Blizzard zugreifen und diesen mit der Ida-Ausgabe vergleichen.

Als Nächstes mussten die Speicherzugriffe der EUD-Karten erkannt werden. Die Datenbank mit den Speicheradressen diente dabei als Grundlage, um ein neues Speichermanagement zu entwerfen. Dabei werden die hardcodierten Adressen der Karten dann an das eigentliche Interface des modernen Programms weitergegeben, um die Zugriffe zu ermöglichen. Am Ende der sechsmonatigen Entwicklungszeit enthielt die Datenbank etwa 800 Einträge.

Der Emulator verknüpft dann die 'alte' Speicheradresse mit der, an der die entsprechenden Daten im neuen Spiel abgelegt werden, und gibt den erwarteten Wert zurück, damit die Karte weiterhin funktioniert. Diese Datenbank bezeichnet Bachaalany als Shadow Table. Doch das war nur der einfache Teil der Arbeit.

Datenbank mit Speicherzugriffen reicht nicht aus

Die Datenbank zur Übersetzung der Speicheradressen reicht nicht aus, um die Karten lauffähig zu halten. Denn an manchen Stellen wird der Speicherbereich nicht direkt aufgerufen, sondern indirekt von einem Pointer oder einem Trigger. Hier sollte neuer Code die Zuweisung von Speicheradressen vornehmen. Von den Karten aufgerufene Out-of-Bounds-Speicherbereiche analysierte Bachaalany also und wies den entsprechenden Aufrufen Variablennamen zu, um eine dauerhafte Lösung zu schaffen.

An anderen Stellen werden zudem EUD-Adressen aufgerufen, die vom neuen Spiel gar nicht mehr adressiert werden. Hier musste Bachaalany das Verhalten in der alten Spielversion studieren und an einigen Stellen nicht nur den Speicherbereich, sondern auch den Rückgabewerte emulieren.

Neben den Speicheraufrufen waren zahlreiche weitere Anpassungen notwendig, weil Datenstrukturen und Architekturen sich mit dem neuen Release geändert hatten. So waren in Starcraft 1.16.1 Trigger in einer Storm Linked List abgelegt.

Bei Storm handelt es sich um eine Bibliothek, die plattformunabhängige Container für die Listenverwaltung bereitstellt. In Starcraft Remastered werden die Daten hingegen in einem Format abgelegt, das mit den Standard Template Libraries (STL) von C++ kompatibel ist. Auch hier waren also Anpassungen und Übersetzungen notwendig.

 Die Karten sind selbst komplexe ProgrammeModder bauten einen eigenen Compiler 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


Anzeige
Hardware-Angebote
  1. (Neuware für kurze Zeit zum Sonderpreis bei Mindfactory)
  2. täglich neue Deals bei Alternate.de

Bachsau 29. Aug 2018

und hätte Blizzard die Sicherheitslücke sofort nach bekanntwerden gepatcht, hätten sich...

elgooG 08. Feb 2018

Also unser Unternehmen kann auf über 20 Jahre alten Code zurückgreifen. Irgendwann wurde...

thorben 07. Feb 2018

DANKE. Die Begründung ist herrlich :-D Ich bin also wie C 8-)

0xDEADC0DE 07. Feb 2018

In dem Fall wird das per Mapping entschieden.

toastedLinux 07. Feb 2018

Was würdest du denn erwarten? Die Präsi von dem hätte ich mir auf jeden Fall gar nicht...


Folgen Sie uns
       


FritzOS 7 - Test

FritzOS 7 steckt voller sinnvoller Neuerungen: Im Test gefallen uns der einfach einzurichtende WLAN-Gastzugang und die praktische Mesh-Übersicht. Nachholbedarf gibt es aber noch bei der NAS-Funktion.

FritzOS 7 - Test Video aufrufen
SpaceX: Milliardär will Künstler mit zum Mond nehmen
SpaceX
Milliardär will Künstler mit zum Mond nehmen

Ein japanischer Milliardär ist der mysteriöse erste Kunde von SpaceX, der um den Mond fliegen will. Er will eine Gruppe von Künstlern zu dem Flug einladen. Die Pläne für das Raumschiff stehen kurz vor der Fertigstellung.
Von Frank Wunderlich-Pfeiffer

  1. Mondwettbewerb Niemand gewinnt den Google Lunar X-Prize

Leistungsschutzrecht: So viel Geld würden die Verlage von Google bekommen
Leistungsschutzrecht
So viel Geld würden die Verlage von Google bekommen

Das europäische Leistungsschutzrecht soll die Zukunft der Presse sichern. Doch in Deutschland würde derzeit ein einziger Verlag fast zwei Drittel der Einnahmen erhalten.
Eine Analyse von Friedhelm Greis

  1. Netzpolitik Willkommen im europäischen Filternet
  2. Urheberrecht Europaparlament für Leistungsschutzrecht und Uploadfilter
  3. Leistungsschutzrecht/Uploadfilter Wikipedia protestiert gegen Urheberrechtsreform

Elektroroller-Verleih Coup: Zum Laden in den Keller gehen
Elektroroller-Verleih Coup
Zum Laden in den Keller gehen

Wie hält man eine Flotte mit 1.000 elektrischen Rollern am Laufen? Die Bosch-Tochter Coup hat in Berlin einen Blick hinter die Kulissen der Sharing-Wirtschaft gewährt.
Ein Bericht von Friedhelm Greis

  1. Neue Technik Bosch verkündet Durchbruch für saubereren Diesel
  2. Halbleiterwerk Bosch beginnt Bau neuer 300-mm-Fab in Dresden
  3. Zu hohe Investionen Bosch baut keine eigenen Batteriezellen

    •  /