Warum FAP in ELF konvertieren?
Nutzer wechseln zu .elf, um eine Flipper Zero-Anwendung zu disassemblieren, zu debuggen oder zu analysieren (Reverse Engineering), da ELF das Format ist, das jedes binutils- und Disassembler-Tool versteht. FAP-Dateien werden als ARM ELF-Ausführungsdateien erstellt, die der Flipper App Loader in den RAM kopiert und zur Laufzeit verschiebt, sodass die zugrunde liegende ELF-Struktur bereits vorhanden ist.
Wie man FAP in ELF konvertiert
readelf
Führen Sie readelf -a app.fap aus, um die ELF-Header, Sektionen und Symbole direkt auszugeben; eine Konvertierung ist nicht erforderlich, da FAP bereits die ELF-Struktur trägt.
arm-none-eabi-objdump
Disassemblieren Sie den ARM Thumb-Code mit arm-none-eabi-objdump -d -Mthumb app.fap, um den Assembly-Code jeder Funktion anzuzeigen.
Ghidra
Kopieren Sie die Datei nach app.elf und importieren Sie sie in Ghidra, wobei Sie die Sprache «ARM Cortex little-endian» wählen, um eine vollständige Dekompilierungs- und Analyseumgebung zu erhalten.
Über diese Formate
Eine .fap-Datei ist ein Flipper Application Package, eine App, die für das Flipper Zero Multi-Tool entwickelt wurde. Es handelt sich um eine ELF-Ausführungsdatei für den ARM Cortex-M4 MCU…
.FAP-Details öffnen →Eine ELF-Datei ist das binäre ausführbare Format, das von Linux, Android, den BSDs und den meisten Unix-ähnlichen Systemen verwendet wird - das Äquivalent zur Windows-EXE. Unter Linux…
.ELF-Details öffnen →Qualität & worauf zu achten ist
- Eine
.fapbündelt Flipper-spezifische Metadaten und Bildressourcen zusätzlich zum ELF, sodass es sich nicht um ein reines, eigenständiges System-ELF handelt. - Der Code ist positionsunabhängig und wird vom App Loader zur Ladezeit verschoben, daher entsprechen die Rohadressen in einem statischen Dump nicht den endgültigen Laufzeitadressen.
- Er ist auf den ARM Cortex-M4-Kern des Flipper ausgerichtet, daher müssen Sie ARM/Thumb-Einstellungen wählen, damit das Disassembling Sinn ergibt.
Häufig gestellte Fragen
Muss ich eine .fap tatsächlich in .elf konvertieren?
.elf dient nur der Bequemlichkeit bei GUI-Tools wie Ghidra.