Alineación de memoria de pila

0

Estoy tratando de aprender la vulnerabilidad de desbordamiento de búfer en la pila y cómo se empuja el contenido. Mi comprensión de la alineación de la memoria en la pila es que para un sistema de 32 bits, el espacio de direcciones es múltiple de 4 bytes y, por lo tanto, si se asigna un búfer de tamaño desigual como [9], habrá relleno. Intenté ejecutar un programa de muestra

int main(int argc, char* argv[])
{
     char buffer[9];
     strcpy(buffer, argv[1]);
     printf("%s\n", buffer);
     return 0;
}

Y con una entrada de 9 A, cuando lo depuré para ver cómo se guarda el búfer, así es como se ve la estructura en la memoria

¿Por qué no hay relleno cero y, si no, cómo funciona la alineación de la memoria?

    
pregunta Rao 17.09.2018 - 15:36
fuente

0 respuestas

Lea otras preguntas en las etiquetas