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
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.
uno sguardo al ELFsh, che ora fa parte del progetto Eresi http://www.eresi-project.org/ Hanno un sacco di documentazione e usi freddi dei loro strumenti.
non ho provato (ancora) me stesso, ma si potrebbe guardare la funzione elf_newscn in libelf
I seguenti link potrebbero essere utili:
- Il tutorial "libelf by Example" ha un capitolo sulla creazione di nuovi oggetti ELF.
- Lo elftoolchain project dispone di pagine di manuale che descrivono in dettaglio l'API
libelf
.
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
- 1. Come si estrae solo il contenuto di una sezione ELF
- 2. Come rimuovere una sezione ELF specifica, senza rimuovere altri simboli?
- 3. ricevendo il membro sh_name in un'intestazione sezione del file elf
- 4. Come posso esaminare il contenuto di una sezione di dati di un file ELF su Linux?
- 5. Aggiunta di "divisori di sezione" al mio layout?
- 6. Strumento per modificare la sezione dinamica di un binario ELF
- 7. scopo della sezione .rel.dyn nelle librerie di sistema Android ELF
- 8. Sezione ELF flush dalla RAM dopo l'inizializzazione della libreria
- 9. Modifica file elf
- 10. Aggiunta di un percorso al file .bashrc?
- 11. Comprimere un file in un eseguibile ELF
- 12. Come si ottengono gli indirizzi iniziali e finali di una sezione ELF personalizzata in C (gcc)?
- 13. a.out sostituito dal formato di file ELF?
- 14. Aggiunta di descrizioni di classe al codice?
- 15. Aggiunta di una legenda al grafico scatter3d
- 16. Dove si trova la tabella di importazione nel file ELF?
- 17. L'aggiunta di dati arbitrari a un file ELF viola le specifiche ELF?
- 18. delocalizzazioni Processing ELF - comprendere le relocs, i simboli, i dati di sezione e come funzionano insieme
- 19. Reading ELF in C
- 20. Aggiunta intestazione personalizzata al file excel
- 21. Selezionare una sezione al centro di un elenco in C#
- 22. PowerShell: leggere una sezione di un file in una variabile
- 23. Aggiunta di proprietà esterne al file di TopoJSON delle contee
- 24. Aggiunta di una sezione di input textarea PHP a un report di query SQL
- 25. Aggiunta di funzioni al file C# esistente con EnvDTE
- 26. Aggiunta di un file .reg al registro WIX
- 27. Aggiunta di una libreria JNI al repository Maven locale
- 28. JRuby on Rails: aggiunta di una cartella al classpath
- 29. errore: l'indirizzo non contiene una sezione che punta a una sezione in un file oggetto
- 30. Strano binario ELF
Questo sembra essere molto promettente. Grazie – c4757p