gpt4 book ai didi

c - -fno-stack-protector 不工作

转载 作者:行者123 更新时间:2023-11-30 19:05:05 25 4
gpt4 key购买 nike

我编写了以下 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

这里有什么问题吗?我在使用 gcc 命令时做错了什么吗?

最佳答案

您正确执行了该命令,但由于您的配置而无法识别该命令。

gcc -fno-stack-protector bo.c

我建议重新安装 gcc 或尝试另一个 Linux 发行版。另请随意查看 the use of -fno-stack-protector 上的这篇文章因为它提供了一些关于为什么它可能被禁用的见解。 (使用 Makefile 禁用该标志来进行可能的配置)

--------编辑----------

进一步研究后,我建议查看:-fstack-protector-all-fstack-protector

我正在摆弄你的代码,发现这可能就是你想要做的事情,并且你当前的设置可能允许它。

My CMD Output

关于c - -fno-stack-protector 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50610889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com