Мне интересно, почему эксплойт переполнения буфера не работает в конкретном сценарии.На данный момент переполнение, над которым я работаю, может перенаправить адрес возврата, и когда я сосредоточусь на куске памяти, скажем <_fini>
, программа завершит работу, не выполнив ничего, что последует за функцией.Странная вещь, когда я пытаюсь перенаправить память в переменную окружения.По некоторым причинам это не работает из-за ошибки сегментации.У кого-нибудь есть идеи, почему это так?
Вот код
#include <stdio.h>
void func(char *buff){
char buffer[5];
strcpy(buffer, buff);
printf("%s\n", buffer);
}
int main(int argc, char *argv[]){
func(argv[1]);
printf("I'm done!\n");
return 0;
}