He estado leyendo las publicaciones aquí sobre la omisión de ASLR. En los sistemas de 32 bits, esto parece ser trivial, pero me sorprendió ver lo trivial. Se tarda unos segundos en aplicar la dirección ASLR de fuerza bruta '. El motivo parece ser que, según mis pruebas, solo 12 bits cambian realmente en la dirección:
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
Parece que en mi computadora portátil todas las direcciones aleatorias 'son
BF XX X7 8B
donde X es un hex aleatorio. Mi conocimiento del funcionamiento de bajo nivel de una CPU es bastante limitado, por lo que ¿por qué son los únicos bytes que cambian?
¿Es correcto decir que en una máquina de 32 bits solo hay 16^3 = 4096
ASLR address '?
¿Cuántos bits cambian en un sistema de 64 bits?