¿Por qué convertir FAP a ELF?
Los usuarios pasan a .elf para desensamblar, depurar o realizar ingeniería inversa en una aplicación de Flipper Zero, porque ELF es el formato que entienden todas las herramientas de binutils y desensambladores. Los archivos FAP se compilan como ejecutables ARM ELF que el App Loader de Flipper copia a la RAM y reubica en tiempo de ejecución, por lo que la estructura ELF subyacente ya está allí.
Cómo convertir FAP a ELF
readelf
Ejecute readelf -a app.fap para volcar los encabezados, secciones y símbolos ELF directamente; no es necesaria ninguna conversión ya que FAP ya posee estructura ELF.
arm-none-eabi-objdump
Desensamble el código ARM Thumb con arm-none-eabi-objdump -d -Mthumb app.fap para ver el ensamblador de cada función.
Ghidra
Copie el archivo a app.elf e impórtelo en Ghidra, eligiendo el lenguaje ARM Cortex little-endian, para obtener un espacio de trabajo completo de descompilación y análisis.
Acerca de estos formatos
Un archivo .fap es un Flipper Application Package, una aplicación creada para la multiherramienta Flipper Zero. Es un ejecutable ELF para el MCU ARM Cortex-M4 del dispositivo con metadatos…
Abrir detalles de .FAP →Un archivo ELF es el formato ejecutable binario utilizado por Linux, Android, los BSD y la mayoría de los sistemas tipo Unix - el equivalente al EXE de Windows. En Linux se ejecuta…
Abrir detalles de .ELF →Calidad y qué observar
- Un
.fapagrupa metadatos específicos de Flipper y activos de imagen sobre el ELF, por lo que no es un ELF de sistema independiente puro. - El código es independiente de la posición y el App Loader lo reubica en el momento de la carga, por lo que las direcciones sin procesar en un volcado estático no son las direcciones finales de tiempo de ejecución.
- Está dirigido al núcleo ARM Cortex-M4 de Flipper, por lo que debe seleccionar la configuración ARM/Thumb para que el desensamblado tenga sentido.
Preguntas frecuentes
¿Realmente necesito convertir un .fap a .elf?
.elf es solo por conveniencia con herramientas GUI como Ghidra.