Architektur einer ausführbaren Datei unter macOS ermitteln

Mit Apple Silicon können Applikationen unter macOS auf zwei unterschiedlichen Architekturen laufen. Wer sehen möchte welche Architektur eine App nutzt, kann dies in Aktivitätsanzeige sehen.

In der Aktivitätsanzeige wird die Architektur der ausgeführten Apps angezeigt

Allerdings muss die Applikation dafür gestartet werden. Im Terminal lässt sich die bereitgestellte Architektur der Applikation über den file-Befehl ermitteln:

file /Applications/Joplin.app/Contents/MacOS/Joplin

Als Ausgabe erscheinen dann die entsprechenden Architekturen welche in der ausführbaren Datei enthalten sind:

/Applications/Joplin.app/Contents/MacOS/Joplin: Mach-O 64-bit executable x86_64

Auch Universal Binaries können genutzt werden:

file /Applications/bsnes.app/Contents/MacOS/bsnes

Als Ausgabe erscheinen dann die entsprechenden enthaltenden Architekturen:

/Applications/bsnes.app/Contents/MacOS/bsnes: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64]
/Applications/bsnes.app/Contents/MacOS/bsnes (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/bsnes.app/Contents/MacOS/bsnes (for architecture arm64): Mach-O 64-bit executable arm64

Freier Decompiler von Avast

Wer kennt das nicht; man steht mitten im Nirgendwo und benötigt plötzlich einen Decompiler. Da passt es nur allzu gut, dass Avast vor einigen Tagen einen Decompiler veröffentlicht hat. Der Retargetable Decompiler war, laut Aussage von Avast knapp sieben Jahre in der Entwicklung, bevor er nun das Licht der Öffentlichkeit erblickte. Mit Hilfe dieses Decompilers können Kompilate unterschiedlicher Architekturen (Intel x86, ARM, MIPS, PIC32 und PowerPC) decompiliert werden. Leider werden im Moment nur 32-Bit Binaries unterstützt. Auch die Liste der unterstützen Dateiformate für die zu decompilierende Datei reicht von ELF, PE, Mach-O, COFF, AR, Intel HEX bis zu reinem Maschinencode.

Die Online-Version des Decompilers

Als Plattformen für die Ausführung des Decompilers, werden offiziell Windows und Linux unterstützt. Unter macOS funktioniert die Ausführung ebenfalls, allerdings wird hier keine Garantie für die Funktionsfähigkeit gegeben. Daneben existiert eine Online-Version, mit welcher der Decompiler ausprobiert werden kann. Hierbei gilt eine Beschränkung von 10 MiB je Binary. Der Retargetable Decompiler unterstützt die statische Analyse der zu dekompilierenden Dateien, erkennt automatisch den verwendeten Compiler und Packer und ist in der Lange die Ausgabe in C und einer an Python angelehnten Syntax auszugeben. Der Quelltext des Decompilers ist auf GitHub zu finden. Das Projekt ist unter der MIT-Lizenz lizenziert und damit freie Software. Der Download und weitere Informationen zum Retargetable Decompiler findet man auf der offiziellen Seite des Decompilers.