Запитання з тегом «buffer-overflow»

14
Чому це для виходу з циклу на одних платформах, а не на інших?
Нещодавно я почав вивчати C, і я беру заняття з C як предмет. В даний час я граю з петлями і зіткнувся з якоюсь дивною поведінкою, яку не знаю, як пояснити. #include <stdio.h> int main() { int array[10],i; for (i = 0; i <=10 ; i++) { array[i]=0; /*code should …

11
Чому функція get настільки небезпечна, що її не слід використовувати?
Коли я намагаюся скомпілювати код C, який використовує gets()функцію з GCC, я отримую це попередження: (.text + 0x34): попередження: функція `get 'є небезпечною і не повинна використовуватися. Я пам’ятаю, це має щось спільне із захистом та безпекою стеків, але я не впевнений, чому саме. Як я можу видалити це попередження …
229 c  fgets  buffer-overflow  gets 

5
Чому цей код вразливий до атак переповнення буфера?
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щоб оголосити shortзамість цього int, але я не дуже впевнений. …


10
Чому ви повинні використовувати strncpy замість strcpy?
Редагувати: я додав джерело для прикладу. Я натрапив на такий приклад : 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, …

6
Як запобігти scanf, що спричиняє переповнення буфера в C?
Я використовую цей код: while ( scanf("%s", buf) == 1 ){ Що було б найкращим способом запобігти можливому переповненню буфера, щоб йому можна було передавати рядки випадкової довжини? Я знаю, що можу обмежити вхідний рядок, викликаючи наприклад: while ( scanf("%20s", buf) == 1 ){ Але я волів би мати можливість …

6
Як вимкнути оптимізацію компілятора gcc, щоб увімкнути переповнення буфера
Я працюю над проблемою домашнього завдання, яка вимагає відключення захисту від оптимізації компілятора, щоб вона працювала. Я використовую gcc 4.4.1 на ubuntu linux, але не можу зрозуміти, які прапори є правильними. Я усвідомлюю, що це залежить від архітектури - моя машина працює з 32-розрядним процесором Intel. Дякую.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.