作为课程作业的一部分,我需要编写一个利用代码来导致缓冲区溢出并执行堆栈上存在的代码。
我已经通过以下命令关闭了堆栈随机化: sysctl -w kernel.randomize_va_space=0 但是,我无法找到关闭堆栈执行保护的方法。我不确定 ubuntu 中是否有一些堆栈 exec 保护......所以我的第一个问题是 ubuntu 8.10 中是否有类似 red hat 的 exec-shield 的东西,如果有,我们如何将其关闭。
我一直试图导致缓冲区溢出并从堆栈执行指令,但是每当我尝试这样做时,它都会给我一个段错误。
我有 ubuntu 8.10 64 位,但是,即时调试程序是在 i386 机器上编译的,堆栈保护关闭。