buffer-overflow- все статьи тега


Почему этот код уязвим для атак переполнения буфера?

int func(char* str) { char buffer[100]; unsigned short len = strlen(str); if(len >= 100) { return (-1); } strncpy(buffer,str,strlen(str)); return 0; } этот код уязвим для атаки переполнения буфера, и я пытаюсь выяснить, почему. Я думаю, что это имеет отношение к len объявляется a short вместо int, но я не совсем уверен. какие идеи? ...

Почему вы должны использовать strncpy вместо strcpy?

Edit: я добавил источник для примера. я наткнулся на : char source[MAX] = "123456789"; char source1[MAX] = "123456789"; char destination[MAX] = "abcdefg"; char destination1[MAX] = "abcdefg"; char *return_string; int index = 5; /* This is how strcpy works */ printf("destination is originally = '%s'n", destination); return_string = strcpy(destination, source); printf("after strcpy, dest becomes '%s'nn", destination); /* This is how strncpy works */ printf( "destination1 is originally = '%s' ...

Как отключить оптимизацию компилятора gcc, чтобы включить переполнение буфера

Я работаю над проблемой домашнего задания, которая требует отключения защиты оптимизации компилятора для его работы. Я использую gcc 4.4.1 на ubuntu linux, но не могу понять, какие флаги являются правильными. Я понимаю, что это зависит от архитектуры-моя машина работает с 32-разрядным процессором Intel. спасибо. ...

В чем разница между переполнением стека и переполнением буфера?

чем отличается переполнение стека и переполнение буфера в программировании ? ...