Le Format Exécutable et Liable (ELF) est un format de fichier standard couramment utilisé pour les exécutables, le code objet, les bibliothèques partagées (ou bibliothèques dynamiques), et les images mémoire (core dumps). Il est largement adopté sur de nombreux systèmes d'exploitation de type Unix, y compris Linux, Solaris, FreeBSD, et d'autres. Les fichiers ELF sont conçus pour être flexibles et extensibles, permettant à une variété d'architectures matérielles et de systèmes d'exploitation d'utiliser le même format de base. La structure du format se compose d'un en-tête (header), d'en-têtes de programme (program headers), d'en-têtes de section (section headers) et des données elles-mêmes. L'en-tête décrit la structure globale du fichier, y compris le point d'entrée pour l'exécution. Les en-têtes de programme décrivent les segments, qui sont des régions contiguës du fichier chargées en mémoire pendant l'exécution. Les en-têtes de section décrivent les sections, qui sont essentielles pour l'édition de liens (linking) et le débogage. Les données elles-mêmes contiennent le code et les données réels du programme. Les fichiers ELF peuvent être liés statiquement (statically linked), incluant tout le code nécessaire dans le fichier exécutable, ou liés dynamiquement (dynamically linked), où une partie du code est chargée à partir de bibliothèques partagées lors de l'exécution. Cette dernière approche permet d'obtenir des fichiers exécutables plus petits et facilite les mises à jour des bibliothèques partagées.