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.