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. Stadt Frankfurt am Main, Frankfurt am Main
  2. Wüstenrot Württembergische, Karlsruhe

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
Blu-ray-Angebote
  1. 4,25€

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...

MasekKiel 07. Feb 2018

Hallo, das ist ein toller Artikel. Danke, dass Ihr diese Geschichte ausgegraben habt...


Folgen Sie uns
       


Vampyr - Fazit

Vampyr überzeugt uns relativ schnell im Test. Nach einer Weile flacht die Blutsaugerei aber wegen langweiliger Gespräche und Probleme mit der Kameraführung ab.

Vampyr - Fazit Video aufrufen
Hacker: Was ist eigentlich ein Exploit?
Hacker
Was ist eigentlich ein Exploit?

In Hollywoodfilmen haben Hacker mit Sturmmasken ein ganzes Arsenal von Zero-Day-Exploits, und auch sonst scheinen die kleinen Programme mehr und mehr als zentraler Begriff der IT-Sicherheit verstanden zu werden. Der Hacker Thomas Dullien hingegen versucht sich an einem theoretischen Modell eines Exploits.
Von Hauke Gierow

  1. IoT Foscam beseitigt Exploit-Kette in Kameras
  2. Project Capillary Google verschlüsselt Pushbenachrichtigungen Ende-zu-Ende
  3. My Heritage DNA-Dienst bestätigt Datenleck von 92 Millionen Accounts

Deutsche Siri auf dem Homepod im Test: Amazon und Google können sich entspannt zurücklehnen
Deutsche Siri auf dem Homepod im Test
Amazon und Google können sich entspannt zurücklehnen

In diesem Monat kommt der dritte digitale Assistent auf einem smarten Lautsprecher nach Deutschland: Siri. Wir haben uns angehört, was die deutsche Version auf dem Homepod leistet.
Ein Test von Ingo Pakalski

  1. Patentantrag von Apple Neues Verfahren könnte Siri schlauer machen
  2. Siri vs. Google Assistant Apple schnappt sich Googles KI-Chefentwickler
  3. Digitaler Assistent Apple will Siri verbessern

In eigener Sache: Freie Schreiber/-innen für Jobthemen gesucht
In eigener Sache
Freie Schreiber/-innen für Jobthemen gesucht

IT-Profis sind auf dem Arbeitsmarkt enorm gefragt, und die Branche hat viele Eigenheiten. Du kennst dich damit aus und willst unseren Lesern darüber berichten? Dann schreib für unser Karriere-Ressort!

  1. Leserumfrage Wie sollen wir Golem.de erweitern?
  2. Stellenanzeige Golem.de sucht Redakteur/-in für IT-Sicherheit
  3. Leserumfrage Wie gefällt Ihnen Golem.de?

    •  /