Con respecto a la pregunta: Cómo ¿ASCII-Armoring ayuda a prevenir los ataques de desbordamiento de búfer? :
¿Cómo previene un ataque la región blindada?
Si el byte más significativo de la dirección de retorno es 0x00 , el atacante aún puede cambiarlo porque es el último byte que escribe en el búfer.
Por ejemplo: supongamos que libc:execve reside en 0x00b1ab1a , ahora que tiene la opción de anular el ret de la función, el atacante puede llenar los últimos 4 bytes con 0x1a 0xab 0xb1 0x00 (es decir, donde NULL es el último byte), por lo que la redirección del puntero de instrucciones está dañada y va a libc:execve .
¿Estoy equivocado?