This paper was written some years ago, but it's still one of the most read and highly valued. It describes the basic setup of a buffer overlow exploit, that lets you inject machine code into a remote or local process. Why you would like to do this is also explained.
I thought i'd post it as a sort of exercise or general mind-teaser.
Edited by TGMTE, 05 July 2005 - 10:08 PM.