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. CSL Behring GmbH, Marburg, Hattersheim am Main
  2. Robert Bosch GmbH, Stuttgart

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
Spiele-Angebote
  1. 59,99€ mit Vorbesteller-Preisgarantie (Release 26.02.)
  2. 9,95€
  3. (-56%) 10,99€
  4. 42,49€

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
       


Golem.de besucht Pininfarina (Reportage)

Golem.de hat bei Pininfarina in Turin hinter die Kulissen geschaut und sich mit den Designern des Elektrosportwagens PF0 unterhalten.

Golem.de besucht Pininfarina (Reportage) Video aufrufen
Gaming-Tastaturen im Test: Neue Switches für Gamer und Tipper
Gaming-Tastaturen im Test
Neue Switches für Gamer und Tipper

Corsair und Roccat haben neue Gaming-Tastaturen auf den Markt gebracht, die sich vor allem durch ihre Switches auszeichnen. Im Test zeigt sich, dass Roccats Titan Switch besser zum normalen Tippen geeignet ist, aber nicht an die Geschwindigkeit des Corsair-exklusiven Cherry-Switches herankommt.
Ein Test von Tobias Költzsch

  1. Azio RCK Retrotastatur wechselt zwischen Mac und Windows-Layout
  2. OLKB Planck im Test Winzig, gerade, programmierbar - gut!
  3. Alte gegen neue Model M Wenn die Knickfedern wohlig klackern

IMHO: Valves Ka-Ching mit der Brechstange
IMHO
Valves "Ka-Ching" mit der Brechstange

Es klingelt seit Jahren in den Kassen des Unternehmens von Gabe Newell. Dabei ist die Firma tief verschuldet - und zwar in den Herzen der Gamer.
Ein IMHO von Michael Wieczorek

  1. Artifact im Test Zusammengewürfelt und potenziell teuer
  2. Artifact Erste Kritik an Kosten von Valves Sammelkartenspiel
  3. Virtual Reality Valve arbeitet an VR-Headset und Half-Life-Titel

Mars Insight: Nasa hofft auf Langeweile auf dem Mars
Mars Insight
Nasa hofft auf Langeweile auf dem Mars

Bei der Frage, wie es im Inneren des Mars aussieht, kann eine Raumsonde keine spektakuläre Landschaft gebrauchen. Eine möglichst langweilige Sandwüste wäre den beteiligten Wissenschaftlern am liebsten. Der Nasa-Livestream zeigte ab 20 Uhr MEZ, dass die Suche nach der perfekten Langeweile tatsächlich gelang.

  1. Astronomie Flüssiges Wasser auf dem Mars war Messfehler
  2. Mars Die Nasa gibt den Rover nicht auf
  3. Raumfahrt Terraforming des Mars ist mit heutiger Technik nicht möglich

    •  /