junior formato c linux elf

c - junior - formato elf



Añadiendo sección al archivo ELF (5)

Necesito poder agregar una sección arbitraria a un archivo ELF. No puedo usar el código GPL en este programa, por lo que BFD está fuera de discusión. Puedo usar libelf / gelf para leer secciones, pero la documentación es bastante escasa para estas, y no puedo averiguar cómo agregar una sección. ¿Alguien sabe cómo hacer esto? Preferiría no escribir mi propio código ELF.


Eche un vistazo a ELFsh, que ahora forma parte del proyecto ERESI http://www.eresi-project.org/ Tienen una gran cantidad de documentación y usos geniales de sus herramientas.


Los siguientes enlaces podrían ser útiles:

  • El tutorial " libelf by Example " tiene un capítulo sobre la creación de nuevos objetos ELF.
  • El proyecto elftoolchain tiene páginas de manual que describen en detalle la API de libelf .

No lo he probado (todavía), pero puedes ver la función elf_newscn en libelf


Sé que esta es una pregunta antigua, pero encontré un ejemplo práctico que me ayudó a aplicarlo a mi proyecto. (En caso de que alguien se tope con esta pregunta)

tomado de 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