Переполнение буфера в стеке - PullRequest
0 голосов
/ 08 декабря 2018

Для курса безопасности мы должны использовать программу с переполнением буфера на основе стека, это программа:

#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 символов для переполнения буфера и записи непосредственно в стек, но как узнать, какой адрес перезаписать в какой момент?Кто-нибудь сталкивался с этим?

...