Name: Anonymous 2012-07-26 13:33
I come to you for help with this assignment I have; smashing the stack. Implement a buffer overflow attack on the program, isThisGood.c, by exploiting the input, see gets(). If exploit successful, it should invoke the function oopsIGotToTheBadFunction!
a. What is the address of the function oopsIGotToTheBadFunction()?
How did you determine this?
b. What is the address on the stack that your input must overwrite
(address and content please)? How did you locate this address?
c. What is the address of buf?
d. What is the minimum length your input, the length you need to alter
the return address stored on the stack.
e. what is your input - show it in hexa characters since some of the
input is not likely to be printable.
#include <stdio.h>
#include <stdlib.h>
int oopsIGotToTheBadFunction(void)
{
printf("Gotcha!\n");
exit(0);
}
int goodFunctionUserInput(void)
{
char buf[12];
gets(buf);
return(1);
}
int main(void)
{
goodFunctionUserInput();
printf("Overflow failed\n");
return(1);
}
a. What is the address of the function oopsIGotToTheBadFunction()?
How did you determine this?
b. What is the address on the stack that your input must overwrite
(address and content please)? How did you locate this address?
c. What is the address of buf?
d. What is the minimum length your input, the length you need to alter
the return address stored on the stack.
e. what is your input - show it in hexa characters since some of the
input is not likely to be printable.
#include <stdio.h>
#include <stdlib.h>
int oopsIGotToTheBadFunction(void)
{
printf("Gotcha!\n");
exit(0);
}
int goodFunctionUserInput(void)
{
char buf[12];
gets(buf);
return(1);
}
int main(void)
{
goodFunctionUserInput();
printf("Overflow failed\n");
return(1);
}