ASLR: le tecniche per aggirarlo
ASLR randomizza le basi di stack, heap, libc e (con PIE) del binario. Senza conoscere un indirizzo, non puoi puntare gadget o funzioni. Gli attacchi recuperano quell'informazione.
Le strade
Info leak: la via principale. Un formato o un overread stampa un puntatore; per differenza calcoli la base del modulo.
Niente PIE: se il binario non è PIE, il suo codice sta a indirizzi fissi — gadget e PLT sono noti anche con libc randomizzata.
Entropia bassa: su 32 bit i bit randomizzati sono pochi; brute-force fattibile, specie con fork().
Aritmetica relativa: offset noti dentro lo stesso modulo non dipendono dalla base.
Difesa
Compila sempre PIE (-fPIE -pie), elimina i leak, usa Full RELRO, e su sistemi moderni entropia alta. ASLR è forte solo se non trapela nessun indirizzo.