Un archivo ELF para ejecutables tiene un programa (segmento) de cabecera y un encabezado de sección, que puede ser visto a través de readelf -a
, aquí es un ejemplo:¿qué parte del archivo ELF debe cargarse en la memoria?
Las dos imágenes de arriba son encabezado de sección y encabezado de programa (segmento), respectivamente. Se puede ver que un encabezado de segmento se compone de varios encabezados de sección, que se utiliza para cargar el programa en la memoria.
¿Es sólo necesario para .text, .rodata, .data, secciones .bss para ser cargado en la memoria?
¿Son todas las otras secciones en el segmento (por ejemplo .ctors, .dtors .jcr en el tercero segmento) utilizados para alinear?
Para _aligning_? –
@ Adriano, sí se alinea con el tamaño de página, por lo que se puede usar protección diferente para diferentes partes del programa, por ejemplo, .text (rx),. Data (rw-) –