Ho letto qui i post sull'esclusione dell'ASLR. Sui sistemi a 32 bit questo sembra essere banale ma sono stato sorpreso di vedere quanto sia banale. Bastano pochi secondi per l'indirizzo ASLR bruteforce '. La ragione sembra essere che secondo i miei test solo 12 bit cambiano effettivamente nell'indirizzo:
export BLAH=$"/bin/sh"
BLAH will be at 0xbff5a78b
BLAH will be at 0xbf87778b
BLAH will be at 0xbfe1e78b
BLAH will be at 0xbf9f778b
BLAH will be at 0xbffc378b
BLAH will be at 0xbffd978b
BLAH will be at 0xbfa7f78b
BLAH will be at 0xbf94878b
BLAH will be at 0xbfe4378b
BLAH will be at 0xbff7978b
BLAH will be at 0xbfe4078b
Sembra che sul mio laptop tutti gli indirizzi casuali siano
BF XX X7 8B
dove X è un esagono casuale. La mia conoscenza del funzionamento a basso livello di una CPU è piuttosto limitata, quindi perché questi sono gli unici byte che cambiano?
È corretto dire che su una macchina a 32 bit ci sono solo 16^3 = 4096
indirizzo ASLR '?
Quanti bit cambiano su un sistema a 64 bit?