I am trying to teach myself some ROP programming. And I have tried
to do some training exploits from different sites. So, right now, I have this
little application where GS, safeSEH ALSR and DEP are enabled (on application level not on OS). So, when I make an attempt to exploit this application it works pretty well ( http://pastebin.com/TdDR3W0y). It just pops
But, on the other side, when I enable OS level DEP, then my exploit generates a segfault and crashes the application.
So, my question is what is the difference between application level DEP and OS level DEP ? Do, I have to make other/different function calls (instead to VirtualProc) when I try to circumvent DEP ?