我正在观看有关缓冲区溢出的大学讲座,教授最后说道
即使我们能够使用漏洞利用代码填充缓冲区并跳转到该代码,我们仍然无法执行它.
他提到的原因是:
程序员避免使用导致溢出的函数.
随机堆栈偏移:在程序开始时,在堆栈上分配随机的空间量,使得难以预测插入代码的开始.
使用技术来检测堆栈损坏.
不可执行的代码段:仅允许代码从内存的"文本"部分执行.
现在我想知道,现在缓冲区溢出攻击是否仍然存在?或者它已经过时了.
详细解答将非常感谢!
char的大小是1个字节,维基百科说:
sizeof用于计算任何数据类型的大小,以表示类型所需的字节数来度量.
但是,我可以在0..10中存储11个字节unsigned char array[10]但是当我这样做时sizeof(array)我得到10个字节.有人可以解释这个行为吗?
注意:我在int数据类型上尝试了这个,sizeof(数组)是40,我希望它是44.