Welche Abschnitte sind für eine verwendbare ELF -ausführbare Datei erforderlich?
-
26-09-2019 - |
Frage
Ich erstelle eine ausführbare ELF -Datei und muss wissen, welche Abschnitte vom Betriebssystem benötigt werden, um sie zu laden und auszuführen.
Einzelheiten:
OS: Ubuntu 10.04 (64-bit) Kernel version: 2.6.32-24 Architecture: i386
Mir ist klar, dass das Folgende wahrscheinlich notwendig wäre:
- .Text
- .Symtab
- .rel.text
Gibt es andere?
Lösung
"Ein Wirbelwind -Tutorial zum Erstellen von wirklich teensy Elf Executables für Linux" Informationen darüber, wie (AB) die verschiedenen Elfenabschnitte verwenden, um eine ausführbare Datei so klein wie möglich zu gestalten. Es enthält auch einen Link zur ELF -Spezifikation, wenn Sie weitere Informationen benötigen. (Es ist auch eine ziemlich unterhaltsame Lektüre.) Vielleicht wird es Ihnen sagen, was Sie wissen müssen?
Andere Tipps
Ich habe mich entschlossen, systematisch Abschnitte aus einer von GCC generierten ELF -Datei zu streifen.
Ich konnte viele Abschnitte entfernen, aber diese konnten nicht entfernt werden und die ausführbare Datei ohne Segmentierungsfehler noch ausführen lassen:
.dynsym .dynstr .gnu.version_r .rel.plt .init .plt .text .fini .ctors .dtors .dynamic .got.plt .data .strtab