开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux GCC
问题(Question):
最近想用 gcc -fstack-protector-all 的功能,来侦测 stack
被覆蓋。程式码如文末所附,gcc -fstack-protector-all -g a.c
所编出的档案,可以成功侦测到覆蓋,但没有显示出现问题的
function或位置。
*** stack smashing detected ***: <unknown> terminated
如果用 gdb 来加载 coredump 档,是可以回推到其发生问题的
地方,但是觉得这样有些不方便。
理论上印出位址应该是可行才对,不知是否有前辈知道是否办
的到?
程式码(Code):(请善用置底文网页, 记得排版)
#include <stdio.h>
void hello()
{
int i;
char buf[128];
for(i=0;i<1000;i++)
buf[i] = 0;
}
int main()
{
hello();
}