Sto dimostrando un exploit per una vecchia app.
On Windows XP SP3 32bit (EN)
, l'indirizzo di SetProcessDEPPolicy()
è in genere 0x7C8622A4
. Ho quella versione di Windows (anche in inglese) e ho creato con successo una catena ROP che mi porta esattamente a quel posto in memoria con il mio indirizzo di ritorno al mio shellcode e un 0
argomenti ordinatamente e correttamente seduti nello stack .
Ma quando provo a eseguire a quel punto ottengo debugged program was unable to process exception
nel mio debbuger o in DEP exception
quando si attiva l'exploit all'esterno del debugger.
Mi chiedo se potrebbe essere a causa del mio livello di patch (ho le patch più recenti). L'indirizzo di SetProcessDEPPolicy()
è cambiato?
Come posso trovare manualmente l'indirizzo di tale funzione API?
Se l'indirizzo di SetProcessDEPPolicy()
non è cambiato, perché ottengo un'eccezione?
Lo screenshot qui sotto mostra la situazione in cui ottengo l'eccezione, per quanto posso dire di avere tutto ciò che dovrebbe essere e dovrebbe essere in grado di disabilitare DEP invece di ottenere un errore. Sono presenti commenti sullo screenshot e puoi ottenere una risoluzione migliore facendo clic con il pulsante destro del mouse > visualizza l'immagine.