gpt4 book ai didi

c - 缓冲区溢出问题

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:41 25 4
gpt4 key购买 nike

我正在尝试运行缓冲区溢出示例来运行一些代码,但问题是当我尝试运行代码只是为了获得缓冲区溢出时,Windows 会抛出提示“程序已停止工作,Windows 正在检查程序的解决方案。所以当我试图确保它只有一个字节溢出时。程序只是运行,但不会暂停命令窗口以便我看到段错误错误地址。哪个据我了解,我需要更改它并使其作为传递的参数运行我想要的窗口。这是简单的程序。

#define BUF_LEN 5

int main(int argc, char **argv)
{

char buf[BUF_LEN];

if (argc > 1)
{
strcpy(buf, argv[1]);
}
return 0;
printf(buf);
system("pause");
}

最佳答案

段错误只是未定义行为的一种表现形式。实际上,没有任何东西可以保证操作系统会向您提供有关此处出现问题的任何信息。

无论如何,您不需要地址来诊断段错误。只有一件事会导致这里的缓冲区溢出,而您确切地知道它是什么:strcpy() 调用。

假设您必须使用 C,解决方法是改用 strncpy()。

关于c - 缓冲区溢出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4319997/

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