Question:Stack buffer overflow
Memory Architecture. Describe the stack in the address space of
the VM, in...
Question
Stack buffer overflow
Memory Architecture. Describe the stack in the address space of
the VM, in...
Stack buffer overflow
Memory Architecture. Describe the stack in the address space of
the VM, in generalities. Specifically, address where in memory the
stack would be located, what the stack structure looks like when
data is pushed onto the stack and popped off the stack. Discuss
what register values are placed onto the stack, where user
variables are placed within the stack, where arguments would be
placed in the stack relative to pertinent register storage within
the stack, and finally how program control flow is implemented
using the stack. How does the stack structure get affected when a
buffer of size ‘non-binary’ is allocated by a function (ie – buffer
size which causes misalignment within the stack)? When a stack
grows, in which direction, relative to overall memory, does a stack
consume memory?
Write a testing program (not sort.c from task
2) that contains a stack buffer overflow vulnerability. Show what
the stack layout looks like and explain how to exploit it. In
particular, please include in your diagram: (1) The order of
parameters (if applicable), return address, saved registers (if
applicable), and local variable(s), (2) their sizes in bytes, (3)
size of the overflowing buffer to reach return address, and (4) the
overflow direction in the stack (5) What locations within the stack
are actually overwritten with your target data to exploit a stack
to cause the routine you want to execute to be invoked? You are
not required to write the real exploit code, but you may want
to use some figures to make your description clear and
concise.