• IT-Karriere:
  • Services:

Die Karten sind selbst komplexe Programme

Die Erweiterungen sind selbst zum Teil komplexe Entwicklungen. Nach Angaben von Bachaalany entwickelte die Community über die Jahre sogar eigene Skriptsprachen, um Einheitenkommandos zu entwerfen, vom Spiel nicht vorgesehene Eingaben über die Tastatur abzurufen oder eigene Grafiksets einzubauen, die im ursprünglichen Level-Editor nicht vorgesehen sind.

Stellenmarkt
  1. CBR Fashion GmbH, Hannover-Isernhagen/Kirchhorst
  2. GK Software SE, Hamburg, St. Ingbert

Die Karten enthalten zudem selbst zum Teil mehrere Level. Bei der EUD-Karte Mario Exodus sollen es 20 Level sein, durch die sich Spieler kämpfen können. Andere Karten enthalten sogar eine eigene Physik-Engine, um etwa das Hüpfverhalten eines Balls zu steuern.

In einigen Karten gebe es sogar kommerzielle Werbung, mit der die Ersteller der Map Geld verdienen, sagte Bachaalany. Diese Werbung verschwinde dann entweder von selbst nach einem bestimmten Zeitraum oder erst nach einer Interaktion durch den Nutzer. Demzufolge war es auch kein leichtes Unterfangen, diese Maps ohne Buffer Overflow wieder zum Laufen zu bekommen.

Moderne Sicherheitsfunktionen gab es 1998 noch nicht

Der zum Release von Starcraft Remastered am 30. Juli 2017 geplante Eingriff war nicht trivial. Als Starcraft 1 im Jahr 1998 erstmals veröffentlicht wurde, waren moderne Sicherheitstechniken in der Spieleentwicklung noch nicht vorhanden. Eine Funktion wie Adress Space Layout Randomization (ASLR) wurde noch nicht genutzt. Ein Emulator für die Sicherheitslücke muss also moderne Programmiertechniken und eine modernisierte Infrastruktur um das Programm herum mit den EUD-Karten zusammenbringen.

Die Mods nutzen die vom ursprünglichen Star-Craft-Spiel hardcodierten Speicheradressen, um einen Puffer zum Überlaufen zu bringen und eigenen Code auszuführen. Moderne Betriebssysteme und Programme weisen Speicher hingegen zufälligen Adressbereichen zu, damit Angreifer Sicherheitslücken im Speichermanagement schwerer ausnutzen können.

Drei Wochen lang das Spiel verstehen

Für die Entwicklung des Emulators musste Bachaalany deshalb zunächst einmal die genaue Mechanik des alten Spiels verstehen. Viele der ursprünglichen Entwickler gehören dem Unternehmen gar nicht mehr an, außerdem war von der betroffenen Variante 1.6.1 nicht für alle Elemente der Quellcode vorhanden. Das Wissen war also begrenzt oder nicht mehr verfügbar. Bachaalany setzte sich zunächst einmal für rund drei Wochen hin, um das Spiel zu reverse-engineeren und genau zu verstehen.

Ebenfalls nicht bekannt war die genaue Version des Compilers, mit dem der Quelltext während der Entwicklung übersetzt wurde. Nach einigem Herumprobieren nutzte er Microsofts Visual Studio 2003 und erzielte damit brauchbare Ergebnisse.

Die Suche nach den richtigen Werkzeugen war aber nur der erste Schritt.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Starcraft Remastered: Warum Blizzard einen Buffer Overflow emuliertJäger und Sammler von Speicheradressen 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


Anzeige
Top-Angebote
  1. (u. a. WD My Book 6TB HDD extern für 111€, Apple MacBook Air (M1, 2020) 13,3 Zoll 8GB 256 GB SSD...
  2. (u. a. Palit GeForce RTX 3060 DUAL für 649€)
  3. (u. a. Frontier Promo (u. a. Elite Dangerous für 6,25€, Planet Coaster für 8,99€, Jurassic...
  4. gratis (bis 10. März, 10 Uhr)

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
       


Übersetzung mit DeepL - Tutorial

Wir zeigen im Video, wie die Windows-Version des Übersetzungsprogramms DeepL funktioniert.

Übersetzung mit DeepL - Tutorial Video aufrufen
    •  /