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?

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top