Everyone at EH-Net... please give a round of applause to our newest writer, Craig Heffner. He not only took on one of the more popular articles in hacking history, but he will also tackle the topic of much debate here in our community - programming. He will begin to contribute many more articles on coding from an ethical hackers perspective.

Welcome aboard Craig.

By Craig J. Heffner

When it comes to buffer overflows, 'Smashing The Stack For Fun And Profit' by Aleph One is still the first resource many people are directed towards, and for good reason; it is thorough, well written, and chock-full of examples. However, the GNU C Compiler (gcc) has evolved since 1998, and as a result, many people are left wondering why they can't get the examples to work for them, or if they do get the code to work, why they had to make the changes that they did. Having these same problems myself, and being unable to find an updated version of Aleph One's document on the web, I set out to identify the source of these variations on my own.

I have taken the liberty of writing this paper to share my findings with others who are experiencing the same problems I did, but it is meant only to be a modern supplement to Aleph One's paper. You should read Smashing The Stack first, as it is assumed that you understand the concepts and code presented there, as well as some standard buffer overflow techniques.