310得票13回答
为什么gets函数很危险,不应该使用?

当我使用GCC编译使用gets()函数的C代码时,会收到以下警告: (.text+0x34): 警告:`gets'函数是危险的,不应该使用。 我记得这与堆栈保护和安全有关,但我不确定具体原因。 如何消除此警告?为什么使用gets()会产生这样的警告? 如果gets()如此危险,...

243得票14回答
为什么这个for循环在某些平台上退出而在其他平台上不退出?

我最近开始学习C语言,并正在参加一门以C语言为主题的课程。目前我正在玩弄循环,并遇到了一些奇怪的行为,我不知道如何解释。#include <stdio.h> int main() { int array[10],i; for (i = 0; i <=10 ; i+...

149得票5回答
为什么这段代码容易受到缓冲区溢出攻击的影响?

int func(char* str) { char buffer[100]; unsigned short len = strlen(str); if(len >= 100) { return (-1); } strncpy(bu...

109得票11回答
为什么应该使用strncpy而不是strcpy?

编辑:我已经添加了示例的来源。 我发现了这个示例:char source[MAX] = "123456789"; char source1[MAX] = "123456789"; char destination[MAX] = "abcdefg"; char destination1[MAX...

106得票10回答
Java是否存在缓冲区溢出?

Java是否存在缓冲区溢出?如果有,你能举例说明吗?

99得票7回答
如何在C语言中防止scanf引起缓冲区溢出?

我使用这段代码:while ( scanf("%s", buf) == 1 ){ 如何最好地防止缓冲区溢出,以便可以传递随机长度的字符串? 我知道我可以通过调用例如:while ( scanf("%20s", buf) == 1 ){ 但我希望能够处理用户输入的任何内容。 或者使用scanf...

84得票6回答
如何关闭gcc编译器优化以启用缓冲区溢出

我正在处理一道作业问题,需要禁用编译器优化保护才能使其正常工作。我正在使用 Ubuntu Linux 上的 gcc 4.4.1,但无法确定正确的参数。我意识到这取决于架构 - 我的机器运行在32位英特尔处理器上。 谢谢。

81得票10回答
栈溢出和缓冲区溢出有什么区别?

在编程中,堆栈溢出和缓冲区溢出有什么区别?

76得票2回答
NOP sled是如何工作的?

我找不到一个能很好回答这个问题的来源。我知道nop sled是一种用于绕过缓冲区溢出攻击中的堆栈随机化技术,但我无法理解它是如何工作的。 能给出一个简单的例子来说明这种方法吗? 像128字节的nop sled这样的术语是什么意思?

58得票3回答
地址检查器:地址上的堆缓冲区溢出问题

我正在学习C语言的入门阶段。 我正在尝试编写一个函数来打开文件,读取BUFFER_SIZE个字符,将内容存储在数组中,然后跟踪字符'\n'(因为我想获取输入的每一行)。 当我将BUFFER_SIZE设置得非常大时,我可以获得第一行。 当我将BUFFER_SIZE设置得相对较小(比如42),...