什么是缓冲区溢出,如何引发它?

32

我听说过缓冲区溢出,想知道如何引发它。

有人能展示一个小的缓冲区溢出例子吗?还有它们被用于什么?


3
你为什么要尝试制造缓冲区溢出? - Sophie Alpert
2
请参阅C标准库中的gets函数。 - derobert
看到:在C标准库中获取 - 这是一个玩笑吗? - NTDLS
1
@NTDLS:这可能有点讽刺,但完全是认真的... 在生产代码中使用get是很危险、也是完全不能被辩解的。 - dmckee --- ex-moderator kitten
12个回答

0
在这个上下文中,缓冲区是为特定目的而设置的一部分内存,当写入操作进入缓冲区并继续超过其末尾时(写入具有不同目的的内存),就会发生缓冲区溢出。这始终是一个错误。
缓冲区溢出攻击是利用此漏洞实现程序作者未曾预料到的某些功能的攻击。

0

给出正确答案后:要更深入地了解这个话题,您可能想听播客《Security Now》。在第39集(一段时间以前),他们深入讨论了这个问题。这是一个不需要阅读整本书就能快速获得更深入理解的方法。

(在链接中,您将找到存档多个版本以及文字记录,如果您更倾向于视觉)。音频并不是这个话题的完美媒介,但Steve正竭力应对这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接