Antecedentes: Actualmente estamos intentando explotar una vulnerabilidad de BoF. Después de configurar el entorno, ejecutando un programa C compilado que contiene la función strcpy, desmonté el programa mientras se ejecutaba en el Depurador de inmunidad, para que los datos en la pila del programa durante el momento del bloqueo se puedan analizar y explotar.
Problema: Luego, de acuerdo con los videos de tutoriales y publicaciones de blog investigados, el siguiente paso es encontrar el desplazamiento en la cadena dañada que contiene los datos que se sobrescriben en los valores de los registros ESP y EIP. Esto se hace para que podamos encontrar una instrucción ESP JMP en el archivo ejecutable y sobrescribir la dirección de retorno (valor EIP) utilizando la ubicación de memoria (sin los caracteres incorrectos) de dicha instrucción.
Pregunta: Se hizo todo lo anterior para suponer que el puntero de pila (ESP) apunta al bloque de memoria que contiene la carga útil justo después de la sobrescritura y la violación de acceso. Así que tl dr mi pregunta es: ¿Cómo puede el ESP apuntar a la carga útil si siempre se supone que está apuntando a la parte superior de la pila?
Imágenes, por favor, ayuda a explicar: lo siento por la imagen de tamaño más pequeño. Pero la imagen vino del gran profesor Vivek de la clase SPSE de securitytube.net.