[Tiptoi-hw] Halb-automatisiert Spiele-Binaries ersetzen

Matthias Weber matthiaz.weber at gmx.de
Mi Jan 13 21:53:59 CET 2021


Hi,

Joachim Breitner via tiptoi-hw wrote:
> nett! Komfortabler als das Skript was ich bisher genutzt habe:
>
> https://github.com/nomeata/tiptoi-arm-investigation/blob/main/Weltatlas/test.sh

danke. Ich habe deins als Basis verwendet gehabt.

> Woran ich zuletzt gearbeitet habe:
>
> Die Ausgabe von
> $ arm-linux-gnueabi-objdump --architecture=arm -b binary -D
> kann man ja leider nicht direkt wieder assemblieren.

Stimmt, fände ich auch cool, wenn dieser letzte Schritt noch
automatisierbar wäre.

> Für Europa.gme hab ich das von Hand korrigiert, und sowas hier
> geschrieben:
> https://github.com/nomeata/tiptoi-arm-investigation/blob/main/Europa/OidMain.txt
> Das kann man jetzt wieder assemblieren und bekommt eine identische
> Datei, und kann man jetzt ändern.

Das ist natürlich nochmal eine ganze Spur besser - binäridentisch ist
ein schönes Ziel. Hätte nicht gedacht, dass das erreichbar ist.

> Ich wollte das jetzt automatisieren, und hab
> https://github.com/nomeata/tiptoi-arm-investigation/blob/main/Weltatlas/disassemble.pl
> geschrieben, was die Ausgabe von arm-linux-gnueabi-objdump “aufräumt”.
> Ist aber noch nicht fertig, und manuell Nacharbeitn wird nötig sein.

Hui, Perl ist für mich #Neuland. Textuelle ersetzungen über Regex?
Wenn noch der ein oder andere Kommentar im Code wäre, könnten wir das
gemeinsam weiter spinnen, wobei ich Bash, Python oder C vorziehen würde.
Aber machbar ist es natürlich in allen Sprachen.

An welche manuelle Nacharbeiten denkst du? Bzw. welche sind dir beim
Weltatlas begegnet?

> Interessant ist dass die Weltatlas-GMEs allerlei Strings enthalten.
> Viele davon, wenn man danach Googelt, kommen auch in ganz anderen
> Kontexten vor (Gameboy-Advance-Spiele), aber alles ARM. Sagt vermutlich
> was über den verwendeten Compiler oder C-Library aus.
>
> Auch interessant (und nervig beim dekompilieren) ist dass das
> Weltatlas-Binary mal vom ARM-Modus in den Thumb-Modus (anderer
> Instruction-Set) wechselt.

Wenn wir Ghidra da auch noch vernünftig in die Toolchain mit rein
bekommen, gerne auch das. Ich hatte mir das vor laaaanger Zeit mal
angesehen, aber es schon länger nicht mehr versucht. Für den seltenen
Hobby-Gebrauch war es nicht so einstiegsfreundlich. Aber da können Sven,
Björn und Uli vielleicht noch was dazu sagen.

VG
Matthias





Mehr Informationen über die Mailingliste tiptoi-hw