2009-07-06 10 views
16

Devo essere in grado di aggiungere una sezione arbitraria a un file ELF. Non posso usare il codice GPL in questo programma, quindi BFD è fuori questione. Posso usare libelf/gelf per leggere le sezioni, ma la documentazione è abbastanza scarsa per queste e non riesco a capire come aggiungere una sezione. Qualcuno sa come si fa questo? Preferirei non scrivere il mio codice ELF.Aggiunta di una sezione al file ELF

risposta

17

Ci sono alcune (possibilmente) risposte correlate in this question about ELF file headers. La risposta accettata menzionata utilizzando objcopy per aggiungere sezioni a un file ELF e il BSD bintools afferma di avere un'implementazione con licenza BSD di objcopy che potrebbe soddisfare le proprie esigenze.

+0

Questo sembra essere molto promettente. Grazie – c4757p

1

non ho provato (ancora) me stesso, ma si potrebbe guardare la funzione elf_newscn in libelf

3

I seguenti link potrebbero essere utili:

14

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

tratto da 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 
Problemi correlati