In its simplest terms, a buffer overrun is writing to more memory than was reserved.. Since this happens on the stack, an understanding of how the stack works is essiential to altering how a program works, during runtime (normally code isnt executed off the stack, and some OS's prevent it, as you can only execute from the code section and not the data section.
Click Here to download this article