I'm trying to understand the basic principles of buffer overflows. During countless hours of reading one of the things I noted was:
Most of the time the exploit string structure looks like this, where the nops and shellcode are located in the first part before the buffer overflow:
[NOPS-SHELLCODE-NEWEIPADDRESS]
Now I like thinking outside of the box and tried this, where the shellcode is located after the new eipaddress in the stack:
[NOPS-NEWEIPADDRESS-SHELLCODE]
I succeeded at exploiting my test vulnerability in this way but really wonder why nobody writes or uses this kind of example? Is it bad practice or what am I overlooking?