J'ai déjà vu une discussion sur la magie ELF, plus récemment les commentaires dans cette question d'échange de pile de sécurité . Je l'ai vu mentionné auparavant, et je l'ai vu dans mes propres journaux de démarrage .. Mais je ne suis pas sûr de ce que c'est.
La page de manuel sur elf est un peu au-dessus de ma tête, car je ne fais pas de langages C ou de niveau inférieur.
En tant que personne qui utilise Linux comme système d'exploitation quotidien, qu'est-ce que ELF?
Réponses:
Depuis la page de manuel à laquelle vous faites référence:
ELF définit le format binaire des fichiers exécutables utilisés par Linux. Lorsque vous invoquez un exécutable, le système d'exploitation doit savoir comment charger correctement l'exécutable en mémoire, comment résoudre les dépendances de bibliothèque dynamique, puis où accéder à l'exécutable chargé pour commencer à l'exécuter. Le format ELF fournit ces informations. La magie ELF est utilisée pour identifier les fichiers ELF et n'est que les tout premiers octets d'un fichier:
ou
Ces 16 octets identifient sans ambiguïté un fichier comme un exécutable ELF. De nombreux formats de fichiers ont des octets "magiques" qui accomplissent la même tâche - identifier un type de fichier.
la source
readelf
reconnaît même qu'il fait 16 octets.e_ident
), dont les 4 premiers octets sont le nombre magique (àEI_MAG0
traversEI_MAG3
)/bin
, bien sûr, c'est presque certainement un binaire ELF. Certains fichiers aléatoires que vous avez téléchargés, cependant ... rien ne le dit.Les «nombres magiques» sont le nom donné aux séquences constantes d'octets (généralement) au début des fichiers, utilisés pour marquer ces fichiers comme étant d'un format de fichier particulier. Ils servent un objectif similaire aux extensions de fichiers.
Voir l' entrée du fichier jargon pour plus d'informations.
Par exemple, les images PNG commencent toujours par les mêmes huit octets: 137 80 78 71 13 10 26 10
Par conséquent, les nombres magiques ELF sont les octets au début des fichiers elf qui les identifient comme tels.
la source