ELF — fichier .elf

pérenne

Format de programme exécutable et de bibliothèque standard sous Linux et la plupart des systèmes Unix.

L’ELF (Executable and Linkable Format) est le format standard des programmes exécutables, des bibliothèques partagées et des fichiers objets sous Linux et la plupart des systèmes Unix modernes, en remplacement des formats plus anciens (a.out, COFF) à partir du début des années 1990.

Sa signature, les quatre octets \x7F E L F, est fiable et sans ambiguïté connue avec d’autres formats courants. Elle n’a en revanche jamais fait l’objet d’un enregistrement officiel de type MIME auprès de l’IANA : les usages observés (application/x-elf) restent non officiels, et de nombreux systèmes se rabattent sur le type générique application/octet-stream.

Un même en-tête ELF sert à plusieurs sous-types de fichiers — exécutable autonome, bibliothèque partagée (.so), fichier objet intermédiaire (.o) ou image de “core dump” — distingués par un champ interne (e_type) plutôt que par l’extension, qui n’est d’ailleurs souvent pas présente du tout sur les exécutables Linux.

Le format organise son contenu en sections (code, données, symboles de débogage) et en segments décrivant comment le chargeur du système doit disposer le fichier en mémoire au lancement — une double vue, l’une pour l’édition de liens, l’autre pour l’exécution, que ne partagent pas tous les formats exécutables concurrents.

L’ELF est également utilisé, sous une forme adaptée, par de nombreux systèmes embarqués et consoles de jeu au-delà du seul Linux de bureau ou serveur, sa flexibilité et sa documentation ouverte en ayant fait un choix de référence bien au-delà de son origine Unix.

Android, bien que son code Java/Kotlin compile vers le bytecode Dalvik embarqué dans l’APK, s’appuie lui aussi sur l’ELF pour tout code natif : les bibliothèques compilées via le NDK (Native Development Kit) en C ou C++ restent de simples fichiers .so au format ELF, chargés par la machine virtuelle Android exactement comme le ferait un système Linux de bureau.

Signature binaire

Diagramme de la signature binaire du format ELF, octets mis en évidence
HexadécimalOffset
7F 45 4C 460

Vérifier qu'un fichier porte bien cette signature →

Sécurité

Comme tout format exécutable, un ELF exécute du code arbitraire dès son lancement.

Auditer les métadonnées de ce format →

Questions fréquentes

Comment ouvrir un fichier .elf ?

Système d'exploitation Linux (exécution native) permet d'ouvrir gratuitement un fichier .elf. Voir la liste complète des logiciels compatibles ci-contre.

Quel est le type MIME du format ELF ?

Le format ELF est associé aux types MIME application/x-elf et application/octet-stream.

Le format ELF (.elf, .so, .o) est-il encore utilisé aujourd'hui ?

Oui, le format ELF est pérenne : il reste activement utilisé et pris en charge par les logiciels actuels.

Peut-on ouvrir un fichier .elf sur mobile, sans installer d'application ?

Aucun outil web n'est référencé sur cette fiche pour ce format : l'ouverture nécessite un logiciel de bureau (voir la liste « Avec quoi l'ouvrir » ci-contre).

Pourquoi mon fichier .elf ne s'ouvre-t-il pas ?

Les causes les plus fréquentes sont l'absence de logiciel compatible installé, un téléchargement ou un transfert incomplet, ou une extension qui ne correspond plus au contenu réel du fichier. Voir le guide complet sur les causes possibles, ou vérifier le format réel avec l'identifieur de fichier.

Un fichier .elf présente-t-il des risques de sécurité ?

Comme tout format exécutable, un ELF exécute du code arbitraire dès son lancement.

Un fichier ne s'ouvre pas : les causes possibles →

Comment savoir si un fichier est corrompu →

Sources

Dernière mise à jour :