Pourquoi convertir FAP en ELF ?
Les utilisateurs passent au format .elf pour désassembler, déboguer ou rétro-concevoir une application Flipper Zero, car l'ELF est le format compris par tous les outils binutils et désassembleurs. Les fichiers FAP sont construits comme des exécutables ARM ELF que le Flipper App Loader copie en RAM et relocalise au moment de l'exécution, la structure ELF sous-jacente est donc déjà présente.
Comment convertir FAP en ELF
readelf
Exécutez readelf -a app.fap pour extraire directement les en-têtes, sections et symboles ELF ; aucune conversion n'est nécessaire puisque le FAP possède déjà une structure ELF.
arm-none-eabi-objdump
Désassemblez le code ARM Thumb avec arm-none-eabi-objdump -d -Mthumb app.fap pour visualiser l'assembleur de chaque fonction.
Ghidra
Copiez le fichier vers app.elf et importez-le dans Ghidra, en choisissant le langage ARM Cortex little-endian, pour un espace de travail complet de décompilation et d'analyse.
À propos de ces formats
Un fichier .fap est un Flipper Application Package, une application conçue pour le multi-outil Flipper Zero. Il s'agit d'un exécutable ELF pour le microcontrôleur ARM Cortex-M4 de…
Ouvrir les détails de .FAP →Un fichier ELF est le format exécutable binaire utilisé par Linux, Android, les BSD et la plupart des systèmes de type Unix - l'équivalent du EXE sous Windows. Sur Linux, vous l'exécutez…
Ouvrir les détails de .ELF →Qualité et points de vigilance
- Un
.fapregroupe des métadonnées spécifiques à Flipper et des ressources images en plus de l'ELF, ce n'est donc pas un ELF système autonome pur. - Le code est indépendant de la position et relocalisé par l'App Loader au chargement, donc les adresses brutes dans un dump statique ne sont pas les adresses finales d'exécution.
- Il cible le cœur ARM Cortex-M4 du Flipper, vous devez donc sélectionner les paramètres ARM/Thumb pour que le désassemblage soit cohérent.
Foire aux questions
Ai-je vraiment besoin de convertir un .fap en .elf ?
.elf est seulement une commodité pour les outils graphiques comme Ghidra.