On 64-bit systems using ASLR, protecting executable space makes it very difficult to perform such attacks. This may explain why you cannot make them work.
I suggest reading this paper for x86-64 buffer overflow exploits for more information.
source
share