Estoy demostrando un exploit para una aplicación antigua.
En Windows XP SP3 32bit (EN)
, la dirección de SetProcessDEPPolicy()
generalmente es 0x7C8622A4
. Tengo esa versión de Windows (también en inglés) y he construido con éxito una cadena de ROP que me lleva exactamente a ese lugar en la memoria con mi dirección de retorno a mi código de shell y un 0
argumentos ordenados de forma clara y correcta en la pila .
Pero cuando intento ejecutar en ese punto, obtengo debugged program was unable to process exception
en mi depurador o un DEP exception
al desencadenar el exploit fuera del depurador.
Me pregunto si podría ser debido a mi nivel de parches (tengo los parches más recientes). ¿Ha cambiado la dirección de SetProcessDEPPolicy()
?
¿Cómo puedo encontrar manualmente la dirección de esa función de API?
Si la dirección de SetProcessDEPPolicy()
no ha cambiado, ¿por qué recibo una excepción?
La captura de pantalla a continuación muestra la situación en la que recibo la excepción, por lo que puedo decir, tengo todo lo que debería estar y debería poder deshabilitar el DEP en lugar de recibir un error. Hay comentarios en la captura de pantalla y puede obtener una mejor resolución haciendo clic con el botón derecho en > ver imagen.