[Tiptoi] binaries im Weltatlas

Ramin Sadre RSadre at gmx.de
Mo Jan 11 00:34:02 CET 2021


> Oder mal unter allen GMEs das mit dem kürzeseten Main-Binary suchen,
> das ist vielleicht am einfachsten zu verstehen.


Ich bin ehrlich gesagt nicht so sehr an der praktischen Anwendung interessiert. Ich hab das nur als kleine sportliche Herausforderung gesehen, um das Grundprinzip zu verstehen und die ARM-ISA kennenzulernen. Wer sich gut (ich nicht) mit dem gme-Format auskennt, sollte sich wahrscheinlich schnell zurechtfinden im eigentlichen Code. Das Grundprinzip ist, dass die Binaries in r0 einen Zeiger auf ein grosses Datenobjekt bekommen, das unter anderem Zeiger auf einige Funktionen enthält, z.B.:
        0x0c: alloc?
        0x14: debugprintf
        0x2c: read
        0x38: seek
        0x1ac: random?
Im 1_Game1-Binary gibt es zum Beispiel eine Funktion an Position 0x920, die die grundlegenden Game-Daten aus der gme-Datei liest. Am Ende einer Binary-Datei befindet sich meist Code, der wahrscheinlich aus einer ARM-Library stammt (z.B. eine Divisionsfunktion).

Damit ist meine Neugier erstmal gestillt :)

Grüsse
rs





Mehr Informationen über die Mailingliste tiptoi