¿Qué secciones se requieren para un ejecutable ELF utilizable?
-
26-09-2019 - |
Pregunta
Estoy creando un archivo ejecutable ELF y necesito saber qué secciones requieren el sistema operativo para cargarlo y ejecutarlo.
Detalles:
OS: Ubuntu 10.04 (64-bit) Kernel version: 2.6.32-24 Architecture: i386
Me doy cuenta de que lo siguiente probablemente sería necesario:
- .texto
- .symtab
- .rel.text
¿Hay otros?
Solución
"Un tutorial de torbellino sobre la creación de ejecuciones de elfos realmente adolescentes para Linux" Tiene información sobre cómo (AB) usar las diversas secciones ELF para hacer un ejecutable lo más pequeño posible. También contiene un enlace a la especificación ELF si necesita más información. (También es una lectura bastante entretenida). Tal vez te dirá lo que necesitas saber?
Otros consejos
Decidí probar sistemáticamente las secciones de un archivo ELF generado por GCC.
Pude eliminar muchas de las secciones, pero no se podían eliminar y el ejecutable aún se ejecuta sin una falla de segmentación:
.dynsym .dynstr .gnu.version_r .rel.plt .init .plt .text .fini .ctors .dtors .dynamic .got.plt .data .strtab