Aplastando pila en x86_64

3

Las funciones de explotación como strcpy() se basan en el hecho de que la cadena de carga útil no debe contener cero bytes que terminen la función de copia. Si la carga útil contiene direcciones x86_64 (por ejemplo, para sobrescribir una dirección de retorno en la pila), existe el problema de que las direcciones x86_64 contienen cero bytes. ¿Hay una solución para ello?

    
pregunta Andy 19.06.2018 - 12:56
fuente

1 respuesta

1

x86_64 es little endian, por lo que los cero bytes obligatorios vienen al final de la dirección / cadena y ya están presentes en la dirección de devolución existente. Eso significa que no necesitas escribir esos últimos bytes. Es posible que aún tenga problemas si hubiera cero bytes menos significativos que el byte no significativo más significativo. Estos se evitan mejor mediante una cuidadosa selección de objetivos.

    
respondido por el William Hay 01.09.2018 - 12:46
fuente

Lea otras preguntas en las etiquetas