ELF, pas des données : identifier un binaire Linux grâce à son en-tête 7F 45 4C 46

Rétro-ingénierie & Exploitation Binaire Niveau 2/4 ~3 min 19 août 2026

Le défi

Un fichier suspect nommé blob.dat a été laissé dans /tmp sur un serveur Linux. Ouvrez-le dans la visionneuse hexadécimale, comparez les premiers octets aux signatures de référence, et indiquez le vrai type de fichier.

Ce que tu vas apprendre

  • Reconnaître la signature ELF 7F 45 4C 46 et lire 'ELF' dans les octets ASCII
  • Interpréter les octets de classe et de boutisme qui suivent (64 bits, petit-boutiste)
  • Lire les champs e_type et e_machine pour confirmer un exécutable x86-64
  • Expliquer pourquoi un fichier .dat avec un en-tête ELF est un signal d'alerte de malware
  • Distinguer ELF des signatures PE/MZ, Mach-O et Java class

Compétences testées

Identification d'en-tête ELFLecture de magic bytes et d'ASCIITri de malware Linux

Prérequis

  • Savoir que les exécutables Linux utilisent le format ELF
  • Être à l'aise avec la lecture de valeurs hexadécimales

Comment ça marche

Sous Linux, les exécutables natifs, les bibliothèques partagées et les core dumps utilisent tous le conteneur ELF (Executable and Linkable Format). Tout fichier ELF commence par la signature de quatre octets 7F 45 4C 46. L'octet initial 0x7F est délibérément non imprimable (il fait échouer les outils qui tentent de traiter le fichier comme du texte), et les trois octets suivants sont les lettres ASCII ELF.

Les octets qui suivent immédiatement le magic constituent l'en-tête d'identification ELF et confirment le diagnostic. 02 fixe la classe à 64 bits (un 01 signifierait 32 bits), 01 fixe l'encodage des données en petit-boutiste, et 01 est la version d'ELF. Un peu plus loin, le champ e_type 02 00 marque le fichier comme exécutable et e_machine 3E 00 identifie l'architecture x86-64.

Un fichier nommé blob.dat se trouvant dans /tmp avec cet en-tête est un signe classique de malware déposé : l'extension d'apparence inoffensive cache un binaire exécutable. La liste de référence met en contraste ELF avec les autres grands formats exécutables - PE/MZ (4D 5A, 'MZ') pour Windows, Mach-O (FE ED FA CE) pour macOS, et les fichiers Java class (CA FE BA BE) - aucun ne correspond.

Erreurs fréquentes

  • Considérer .dat comme une donnée opaque. L'extension est volontairement vague, mais l'en-tête est une signature ELF concrète.
  • Buter sur l'octet 7F. Il est non imprimable par conception ; le ELF lisible suit immédiatement.
  • Confondre ELF avec un fichier Java class. Les fichiers Java class commencent par CA FE BA BE ('cafebabe'), qui n'a aucun rapport avec 7F 45 4C 46.
  • Deviner l'OS à partir du nom de fichier. C'est le format, pas le nom ou l'emplacement, qui indique qu'il s'agit d'un binaire Linux.

Comment s'en protéger

Les défenseurs Linux doivent classifier les fichiers déposés par leur contenu et surveiller les répertoires que privilégient les malwares.

  • Surveillez les chemins accessibles en écriture par tous, comme /tmp, /dev/shm et /var/tmp, à la recherche de nouveaux fichiers dont les magic bytes sont ceux d'ELF, quelle que soit l'extension.
  • Montez ces chemins en noexec lorsque c'est possible, pour qu'un ELF déposé ne puisse pas être exécuté directement.
  • Utilisez un typage de fichier basé sur le contenu dans votre EDR et générez une alerte en cas d'incohérence entre extension et type.
  • Établissez une base de référence des binaires attendus et signalez les fichiers ELF non signés ou inconnus apparaissant en dehors des emplacements gérés par le gestionnaire de paquets.

Solution complète

Les membres Pro et Max débloquent la solution complète étape par étape.

Passer Pro

Statistiques de la communauté

129 résolutions
81% taux de réussite
M2F14M3 Premier sang

Hacks du jour associés

24 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement