Is it possible to use ROP to call legitimate functions even if the stack is not executable?

I read about the hardware protection that blocks the CPU from jumping to stack address. But hacker may still edit the return address to an address in code memory that shouldn’t run at that moment.
For example;
#include<stdio.h>

Continue reading Is it possible to use ROP to call legitimate functions even if the stack is not executable?

BufferOverFlow – How come ESP points to the end of the payload

I just don’t understand how ESP points to the shellcode
let’s say we’ve sent this string
string = 100 * ‘A’ + ‘BBBB’ + ‘CCCC’

I have filled the stack with ‘AAAA..’ and overwritten the EIP value and set it to ‘BBBB’ and I got the segmentat… Continue reading BufferOverFlow – How come ESP points to the end of the payload