ASLR non sembra randomizzare la sezione di testo

3

Volevo fare alcuni test di base sull'ASLR di Linux, quindi ho scritto il seguente codice:

#include <stdio.h>

void funct(){
    int a= 0;
}

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

Quando eseguo questo codice, il secondo puntatore (che punta a un valore sullo stack) sembra casuale in quanto passa da un'esecuzione all'altra, ma non al primo puntatore.

Ho provato a compilare con l'opzione -fPIC gcc, ma non funziona neanche.

Inoltre, ho già controllato che / proc / sys / kernel / randomize_va_space è uguale a 2.

Qualcuno potrebbe spiegare cosa sto facendo male?

    
posta Chocosup 13.10.2014 - 16:25
fonte

1 risposta

5

Il segmento di testo non è tipicamente randomizzato nelle implementazioni ASLR, ed è per questo che catene Return-Oriented Programming (ROP) lavoro. L'idea è che il codice dell'applicazione dovrebbe essere "sicuro", quindi randomizzare questo spazio di memoria sarebbe uno spreco di risorse.

Le catene ROP servono a creare un payload dannoso utilizzando le funzionalità dell'applicazione. Una buona analogia è che puoi prendere qualsiasi frase ben intenzionata e renderla un insulto scegliendo specifiche lettere o parole per dare un nuovo significato.

    
risposta data 13.10.2014 - 16:40
fonte

Leggi altre domande sui tag