GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Abschnitt zur ELF-Datei hinzufügen

Ich weiß, dass dies eine alte Frage ist, aber ich habe ein funktionierendes Beispiel gefunden, das mir geholfen hat, es auf mein Projekt anzuwenden. (Falls jemand auf diese Frage stößt)

entnommen aus Sourceware Mail Archiv

$ echo 'int main() { puts ("Hello world"); }' | gcc -x c - -c -o hello.o

$ echo "this is my special data" >mydata

$ objcopy --add-section .mydata=mydata \
          --set-section-flags .mydata=noload,readonly hello.o hello2.o

$ gcc hello2.o -o hello

$ ./hello
Hello world

$ objdump -sj .mydata hello

werfen Sie einen Blick auf ELFsh, das jetzt Teil des ERESI-Projekts ist http://www.eresi-project.org/ Sie haben eine Menge Dokumentation und coole Anwendungen ihrer Tools.


Die folgenden Links könnten hilfreich sein:

  • Das Tutorial "libelf by Example" hat ein Kapitel über das Erstellen neuer ELF-Objekte.
  • Das elftoolchain-Projekt hat Handbuchseiten, die libelf beschreiben API im Detail.

In dieser Frage zu ELF-Dateiheadern gibt es einige (möglicherweise) verwandte Antworten. Die akzeptierte Antwort wird mit objcopy erwähnt Abschnitte zu einer ELF-Datei hinzuzufügen, und die BSD-Bintools behaupten, eine BSD-lizenzierte Implementierung von objcopy zu haben das könnte Ihren Bedürfnissen entsprechen.


Linux
  1. Grundlagen des Linux-ELF-Objektdateiformats (und der ELF-Header-Struktur).

  2. ELF-Datei-Header

  3. Werkzeug zum Modifizieren des dynamischen Abschnitts einer ELF-Binärdatei

  4. glibc:Elf-Datei OS ABI ungültig

  5. Hinzufügen eines Zeitstempels zu einem Dateinamen mit mv in BASH

Ausführen einer flachen Binärdatei unter Linux

a.out durch ELF-Dateiformat ersetzt?

Lesen aus einer Datei in Assembly

kann ein programm seinen eigenen elfabschnitt lesen?

Wie höre ich auf, IP von EC2 zu known_hosts für ssh hinzuzufügen?

Wie man einen Abschnitt einer Datei in der Bash-Shell grep