Для курса безопасности мы должны использовать программу с переполнением буфера на основе стека, это программа:
#include <stdio.h>
#include <unistd.h>
void greetUser(char *s){
char buf[666];
strcpy(buf, s);
printf("Hello %s!\n", buf);
}
int main(int argc, char **argv) {
if(argc < 2) {
printf("Usage: %s YourName\n", argv[0]);
exit(1);
}
greetUser(argv[1]);
return 0;
}
Но я понятия не имею, как это сделать.Я знаю, что мне нужно ввести более 666 символов для переполнения буфера и записи непосредственно в стек, но как узнать, какой адрес перезаписать в какой момент?Кто-нибудь сталкивался с этим?