我正在尝试粉碎堆栈并使用以下 C 代码:
#include<stdio.h>
get_inp()
{
char buf[8];
gets(buf);
puts(buf);
}
main(){
get_inp();
return 0;
}
仅当我输入至少 16 个字符作为输入时,才会出现分段错误。在 IA-32 架构上运行它。由于 EBP 在分配缓冲区后占用 4 个字节,因此我在输入 12 个字符后不应该出现 seg 错误。希望对此有所澄清。
我正在尝试粉碎堆栈并使用以下 C 代码:
#include<stdio.h>
get_inp()
{
char buf[8];
gets(buf);
puts(buf);
}
main(){
get_inp();
return 0;
}
仅当我输入至少 16 个字符作为输入时,才会出现分段错误。在 IA-32 架构上运行它。由于 EBP 在分配缓冲区后占用 4 个字节,因此我在输入 12 个字符后不应该出现 seg 错误。希望对此有所澄清。