Ich habe bereits eine Diskussion über ELF-Magie gesehen, zuletzt die Kommentare in dieser Frage zum Austausch von Sicherheitsstapeln . Ich habe es schon einmal gesehen und ich habe es in meinen eigenen Boot-Logs gesehen. Aber ich bin mir nicht sicher, was es ist.
Die Manpage zu Elf ist etwas überfordert, da ich keine C- oder niedrigersprachigen Versionen beherrsche.
Was ist ELF als jemand, der Linux als tägliches Betriebssystem verwendet?
Antworten:
Direkt von der Manpage, auf die Sie verweisen:
ELF definiert das Binärformat der von Linux verwendeten ausführbaren Dateien. Wenn Sie eine ausführbare Datei aufrufen, muss das Betriebssystem wissen, wie die ausführbare Datei ordnungsgemäß in den Speicher geladen wird, wie dynamische Bibliotheksabhängigkeiten aufgelöst werden und wo Sie in die geladene ausführbare Datei springen können, um mit der Ausführung zu beginnen. Das ELF-Format bietet diese Informationen. ELF-Magie wird zum Identifizieren von ELF-Dateien verwendet und ist nur das allererste Byte einer Datei:
oder
Diese 16 Bytes identifizieren eine Datei eindeutig als ausführbare ELF-Datei. Viele Dateiformate haben "magische" Bytes, die dieselbe Aufgabe erfüllen - die Identifizierung eines Dateityps.
quelle
readelf
16 Bytes bestätigt.e_ident
), von denen die ersten 4 Bytes die magische Zahl (EI_MAG0
durchEI_MAG3
) sind/bin
handelt es sich mit ziemlicher Sicherheit um eine ELF-Binärdatei. Einige zufällige Dateien, die Sie heruntergeladen haben, sind jedoch nicht aussagekräftig."Magische Zahlen" ist der Name, der (normalerweise) konstanten Folgen von Bytes am Anfang von Dateien gegeben wird, um diese Dateien als Dateien eines bestimmten Dateiformats zu kennzeichnen. Sie dienen einem ähnlichen Zweck wie Dateierweiterungen.
Weitere Informationen finden Sie im Jargon-Dateieintrag .
PNG-Bilder beginnen beispielsweise immer mit denselben acht Bytes: 137 80 78 71 13 10 26 10
Daher sind magische ELF-Zahlen die Bytes am Anfang von Elf-Dateien, die sie als solche identifizieren.
quelle