Hallo Ihr alle!
@All: I'm back. Im Moment habe ich noch nicht wieder soviel Zeit, beschäftige mich aber mit der Intro.exe von Schick (Floppy).
@Hendrik: Du hast nicht die IDA-Dateien hochgeladen, sondern nur die symbolischen Links auf die Dateien.
Theorie: Das "Problem" mit den wechselnden Segmentadressen des near calls liegt wahrscheinlich an den Overlays.
Das Segment ändert sich weil es aus der Exe-Datei auf Anfrage in den Speicher geladen wird.
Wird der Speicher für etwas anderes benötigt, fliegt das Segment mit der Random-Funktion wieder raus.
Wir die Random-Funktion (oder eine andere aus diesem Segment) wieder benötigt, so wird sie wieder in den Speicher geladen.
Allerdings an einer anderen Stelle.
Lösung: Die Größe und die Position des Segments in der Exe-Datei ermitteln und bei jedem Read() Aufruf, bei dem Grösse und Position übereinstimmen, die Zieladresse merken.
@All: I'm back. Im Moment habe ich noch nicht wieder soviel Zeit, beschäftige mich aber mit der Intro.exe von Schick (Floppy).
@Hendrik: Du hast nicht die IDA-Dateien hochgeladen, sondern nur die symbolischen Links auf die Dateien.
Theorie: Das "Problem" mit den wechselnden Segmentadressen des near calls liegt wahrscheinlich an den Overlays.
Das Segment ändert sich weil es aus der Exe-Datei auf Anfrage in den Speicher geladen wird.
Wird der Speicher für etwas anderes benötigt, fliegt das Segment mit der Random-Funktion wieder raus.
Wir die Random-Funktion (oder eine andere aus diesem Segment) wieder benötigt, so wird sie wieder in den Speicher geladen.
Allerdings an einer anderen Stelle.
Lösung: Die Größe und die Position des Segments in der Exe-Datei ermitteln und bei jedem Read() Aufruf, bei dem Grösse und Position übereinstimmen, die Zieladresse merken.