einmal vor langer Zeit, aus Neugier, habe ich versucht, Hex-Bearbeitung die ausführbare Datei des Spiels „Dangerous Dave“. Ich habe mich in der Datei nach möglichen Strings umgesehen und einige zufällige Änderungen vorgenommen, um zu sehen, ob der Text im Spiel tatsächlich geändert wird.Wiederverwendung von Zeichen in kompilierten Exe-Datei
Ich war überrascht, um das Ergebnis zu sehen, was ich jetzt einen Hex-Editor und DOSBox neu erstellt worden mit:
Wie zu sehen ist, die Bearbeitung der beiden Zeichen „RO“ in der Zeichenfolge „ROMERO“ geführt in 4 Zeichen geändert, mit dem Ergebnis wird "ZUMEZU". Es sieht so aus, als ob das Programm die beiden Zeichen wiederverwendet und sie am Anfang und am Ende dieser Zeichenfolge druckt.
Was ist die Ursache dafür? Meine erste Vermutung wäre, die ausführbare Datei kleiner zu machen, aber nur der Code, der die Zeichen wiederverwendet, würde wahrscheinlich mehr Speicherplatz benötigen als diese 2 Bytes, die gespeichert werden sollen. Ist es nur ein Trick vom Autor getan, oder nur ein Compiler Voodoo?
Ebenso gibt es zwei zusätzliche Bytes zwischen „SOFT“ und „DISK, INC“ - auch ein typisches Anzeichen für byteweise Kompression. – usr2564301