在研究缓冲区溢出时,我应该使用哪些版本的GCC或标志?

Mac*_*yer 6 c linux stack-overflow stack gcc

最近,我一直在研究缓冲区溢出作为计算机工程的本科生.仅仅是出于兴趣,我开始研究和研究缓冲区溢出,但是当我尝试在我自己的计算机上使用GCC 4.9.1(在Debian Jessie中)编译的程序中实现缓冲区溢出时,它们已经卡住了.

我听说在新的编译器中有各种堆栈溢出保护,所以我认为我的问题是我的编译器版本太新了.要不然,或者我没有用正确的标志编译(无).

那么有没有好的GCC版本供我测试缓冲区溢出?或者我应该使用特定的标志来防止堆栈保护和金丝雀?

感谢您的时间.

oua*_*uah 5

用于-zexecstack -fno-stack-protector禁用堆栈帧保护和不可执行堆栈gcc

在 Linux 系统上,您还必须使用以下方法禁用地址随机化 (ASLR):

echo 0 > /proc/sys/kernel/randomize_va_space
Run Code Online (Sandbox Code Playgroud)