Я написал следующую программу на C, чтобы увидеть работу переполнения буфера.Я сохранил этот программный файл с именем bo.c
#include<stdio.h>
#include<string.h>
int authentication(char *key)
{
int auth=0;
char pass[10];
strcpy(pass, key);
if(strcmp(pass, "hello")==0)
auth=1;
else
auth=0;
return auth;
}
int main(int argc, char *argv[])
{
if(authentication(argv[1]))
{
printf("----------------------------------\nACCESS GRANTED\n---------------------------------");
}
else
{
printf("Access Denied! Wrong password!");
}
return 0;
}
Но я не вижу эффекта переполнения буфера, поскольку стек защищен.Но когда я компилирую его с флагом -fno-stack-protector, он показывает, что это нераспознанная опция.
![enter image description here](https://i.stack.imgur.com/tFUJE.png)
Что такоепроблема здесь?Я что-то не так делаю при использовании команды gcc ?