GNU/Linux >> Linux Esercitazione >  >> Linux

Aggiunta di una sezione al file ELF

So che questa è una vecchia domanda, ma ho trovato un esempio funzionante che mi ha aiutato ad applicarlo al mio progetto. (Nel caso in cui qualcuno si imbatta in questa domanda)

tratto da Sourceware Mail Archive

$ 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

dai un'occhiata a ELFsh, che ora fa parte del progetto ERESI http://www.eresi-project.org/ Hanno molta documentazione e ottimi usi dei loro strumenti.


I seguenti collegamenti potrebbero essere utili:

  • Il tutorial "libelf by Example" ha un capitolo sulla creazione di nuovi oggetti ELF.
  • Il progetto elftoolchain ha pagine di manuale che descrivono libelf API di in dettaglio.

Ci sono alcune (forse) risposte correlate in questa domanda sulle intestazioni dei file ELF. La risposta accettata menzionata utilizzando objcopy per aggiungere sezioni a un file ELF, e i bintools BSD affermano di avere un'implementazione con licenza BSD di objcopy che potrebbe soddisfare le tue esigenze.


Linux
  1. Un caso d'uso valido per un'autorizzazione file "solo esecuzione"?

  2. Linux – Solo per l'esecuzione di autorizzazioni file?

  3. Strumento per modificare la sezione dinamica di un binario ELF

  4. glibc:file elf OS ABI non valido

  5. Come interrompere l'aggiunta di IP da EC2 a known_hosts per ssh?

Lettura da un file in assembly

Aggiunta di timestamp a un nome file con mv in BASH

Qual è la differenza tra sezione e segmento nel formato di file ELF

un programma può leggere la propria sezione elfo?

Come eseguire il grep di una sezione di un file nella shell bash

Aggiunta di una colonna di valori in un file delimitato da tabulazioni