Re: Smashing the Stack?

From: Vinay A. Mahadik (VAMahadikat_private)
Date: Wed Jul 17 2002 - 11:05:20 PDT

  • Next message: Adam [wp-ckkl]: "Re: Badware update through P2P?"

    Some of your questions seem familiar.. I had similar ones when I was
    learning a couple of months back. I was writing a HOWTO back then on
    this.. basically for my own sake.. but gave up at some point due to lack
    of time. But, I think this doc will help since it covers
    some of your questions. If you find it useful and add something to this
    HOWTO, pls to pass a copy back to me.. 
    
    It's at http://hickory.csc.ncsu.edu/security/BOTutorial.html
    
    About your question, it's due to alignment decisions made by the
    compiler. You'll need to read more from somewhere on that (perhaps
    google).
    
    Thanks,
    Vinay.
    
    Jeremy Junginger wrote:
    > 
    > In "Smashing the Stack for Fun and Profit" by Aleph One, There is a nice
    > example program called example1.c.  It looks like this:
    > 
    > void function(int a, int b, int c) {
    >         char buffer1[5];
    >         char buffer2[10];
    > 
    > void main() {
    >         function(1,2,3);
    > }
    > 
    > Then, we go through how to generate assembley code output, how the
    > values are pushed onto the stack in reverse order, then the function
    > call, then moves the Frame Pointer onto the stack and copies the current
    > Stack Pointer into EBP.  That part is groovy.  Then when we look at the
    > function, in the example, he discusses how memory buffers are allocated
    > in "word" (4 byte) increments.   That makes sense; however, when I
    > generate the assembly code with the exact same code, I see that it is
    > subtracting 40 rather than the expected 20
    > (bufger1(5bytes=2words=8bytes+10bytes=3words=12bytes).  This part looks
    > crucial to understanding the rest of the concepts in the paper, so I'm
    > hesitant to continue without understanding this descrepancy.  Any input
    > would be very much appreciated.
    
    --
    Vinay A. Mahadik
    Summer Intern
    Computer Protection Program
    Lawrence Berkeley National Laboratory
    (510) 495 2618
    



    This archive was generated by hypermail 2b30 : Wed Jul 17 2002 - 17:56:56 PDT