我知道什么是缓冲区溢出,并且我知道(没有 DEP),堆栈返回地址通常会被指向数据或代码部分中某处的地址覆盖。但是如果堆栈返回地址被另一个堆栈地址覆盖怎么办?被可执行代码覆盖?在这种情况下,DEP 仍然有效吗? “数据执行预防”听起来好像只有“数据”部分受到有效保护
最佳答案
DEP 阻止在堆栈和堆上执行代码。换句话说,堆栈被视为数据。
关于c - 缓冲区溢出: writing code to stack and executing there,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10462805/