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?