字符串缓冲区如何导致运行恶意代码?

时间:2013-08-31 16:43:28

标签: c++ c string security buffer

我已经在许多地方读过,字符串缓冲区溢出会产生诸如添加恶意代码之类的问题,或者很容易被黑客入侵。但是字符串存在于BSS部分以及它如何影响代码部分。

其次,即使字符串没有超限,仍然可以通过十六进制编辑器看到它,所以它们不能同样危险吗?

感谢。

1 个答案:

答案 0 :(得分:3)

buffer overflow可以在堆栈分配的字符串上发生(例如,对本地strcat数组上的char buf[12]进行未经检查的调用)。这就是为什么sprintf已被弃用的原因,您总是使用snprintf

恶意代码和exploited可能是malware,例如shellcode

不要试图制造一些这样的恶意代码:一名青少年在上个世纪被黑客入侵并利用sendmail

BTW,堆内的缓冲区溢出也会通过破坏不相关的数据而给您带来很多麻烦。