I've read two articles about heap-spraying: Wikiepdia and this blog post. I understand how the shell code is introduced in to the program's memory. But how the program is made to jump/call to the address memory located on heap?
What kind of crash makes a call to heap?
Does such attack needs to be conducted with a kind of buffer overflow attack?
Is there any golden rule like the one with buffer overflow ie use the n version of functions (strncpy
instead strcpy
)?