Я пытаюсь использовать переполнение буфера в C, Linux. Моя программа:
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv) {
char buf[100];
strcpy(buf, argv[1]);
printf("%s\n", buf);
return 0;
}
От GDB: я использую команду:
run $(python -c 'print "\x41"*100 + "\x42\x42\x42\x42" + "\x43\x43\x43\x43"')
Тогда я получаю:
Program received signal SIGABRT, Aborted
0xb7fd9d05 in __kernel_vsyscall()
Но мне нужно получить что-то вроде: 0xb7fd9d05 in ??()
. Что я делаю не так?
Также после команды: x/100x $sp-200
мне нужно получить что-то вроде: ![enter image description here](https://i.stack.imgur.com/vi1dF.gif)
но вместо этого я получаю:
![enter image description here](https://i.stack.imgur.com/VAmz0.jpg)