ASLR no parece aleatorizar la sección de texto

3

Quería hacer algunas pruebas básicas en Linux ASLR, así que escribí el siguiente código:

#include <stdio.h>

void funct(){
    int a= 0;
}

void main(){
    int b=0;
    printf("funct : %p\n", &funct);
    printf("var stack : %p\n", &b);
}

Cuando ejecuto este código, el segundo puntero (que apunta a un valor en la pila) parece aleatorio ya que cambia de una ejecución a otra, pero no el primer puntero.

Intenté compilar con la opción -fPIC gcc, pero tampoco funciona.

También, ya verifiqué que / proc / sys / kernel / randomize_va_space es igual a 2.

¿Podría alguien explicar lo que estoy haciendo mal?

    
pregunta Chocosup 13.10.2014 - 16:25
fuente

1 respuesta

5

El segmento de texto no suele ser aleatorio en las implementaciones de ASLR, y esta es la razón por la que cadenas de Programación Orientada al Retorno (ROP) trabajo. La idea es que el código propio de la aplicación sea "seguro", por lo que la asignación aleatoria de este espacio de memoria sería un desperdicio de recursos.

Las cadenas ROP consisten en crear una carga útil malintencionada utilizando la funcionalidad propia de la aplicación. Una buena analogía es que puedes tomar cualquier oración bien intencionada y convertirla en un insulto al elegir letras o palabras específicas para crear un nuevo significado.

    
respondido por el rook 13.10.2014 - 16:40
fuente

Lea otras preguntas en las etiquetas