通过在不同的平台下汇编P149的c程序,发现如下问题。
Ubuntu 7.0的gcc(版本:4.1.3 20070929)在编译c程序时,在main函数中增加了堆栈返回地址校验。因此,如果在main函数中覆盖了堆栈中的返回地址,将会出错stack_chk_fail。但在main函数所调用的子函数中,没有返回地址校验。因此可以在子函数中实现堆栈缓冲区溢出。
Red hat enterprise linux 5的gcc(版本:4.1.1 20060817)没有此功能。
阅读(591) | 评论(0) | 转发(0) |