什么是gcc -fstack-protector -S XXX.c功能?

时间:2014-11-19 01:59:12

标签: gcc c

我发现为防止缓冲区溢出,我可以使用该指令(gcc -fstack-protector -S XXX.c)。

例如,我有一个名为test.c的文件,并且该文件有缓冲区溢出(例如char buf[10];但我想要strcpy(buf,"HelloUnixAndLinux")

在那种情况下

$gcc -fstack-protector -S test.c
$cat test.s

将检查缓冲区并告诉我打印出长显示内容,包括stack_chk_fail

我想了解这些说明,但没有任何解释。 (我刚刚在互联网上找到了这种方式而没有任何影响)

我想知道

  1. 这些选项总是会自动阻止缓冲区溢出? (例如,如果某些功能可能导致缓冲区溢出,则自动不处理strcpy等)

  2. 有没有办法检查我的GCC是否提供了检查堆栈粉碎的工具?我的是GCC 4.4.6 Red Hat 4.4.6-4。

  3. 有没有办法在./a.out之后显示有关缓冲区溢出的警告?

0 个答案:

没有答案