GNU/Linux >> Tutoriales Linux >  >> Linux

Agregar sección al archivo ELF

Sé que esta es una pregunta antigua, pero encontré un ejemplo de trabajo que me ayudó a aplicarlo a mi proyecto. (En caso de que alguien se tropiece 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

echa un vistazo a ELFsh, que ahora es parte del proyecto ERESIhttp://www.eresi-project.org/Tienen mucha 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 libelf API de en detalle.

Hay algunas respuestas (posiblemente) relacionadas en esta pregunta sobre los encabezados de archivos ELF. La respuesta aceptada mencionada usando objcopy para agregar secciones a un archivo ELF, y BSD bintools afirma tener una implementación con licencia BSD de objcopy que podría satisfacer sus necesidades.


Linux
  1. ¿Un caso de uso válido para un permiso de archivo de "solo ejecución"?

  2. Linux – ¿Permiso de archivo para ejecutar solamente?

  3. ¿Agregar volumen de intercambio?

  4. Conceptos básicos del formato de archivo de objeto ELF de Linux (y estructura de encabezado ELF)

  5. Encabezados de archivos ELF

¿Puede un programa leer su propia sección elf?

Cómo grep una sección de un archivo en bash Shell

¿Por qué Vim está agregando una nueva línea? ¿Es esto una convención?

cp -L frente a cp -H

Agregar una columna de valores en un archivo delimitado por tabulaciones

Agregar archivo a archivos tbz