【发布时间】:2016-03-02 07:24:14
【问题描述】:
根据我现在的理解,由于函数的参数被传递到调用堆栈,如果一个参数“溢出”它给定的缓冲区,它可以覆盖之后的内存。如果足够,它可以覆盖给指令指针(eip)的返回地址。因此,通过对 eip 的控制,我们可以将执行发送到在其他地方溢出的 shell 代码。但是,shell 代码中的坏字符不会被执行。为什么会这样,为什么我们需要跳转到 esp 再跳转到 shell 代码而不是直接跳转?如果我错了,请纠正我。谢谢。
【问题讨论】:
标签: buffer-overflow