2016-03-01 50 views
0

从我现在了解的情况来看,由于函数的参数被传递给调用堆栈,如果一个参数“溢出”它给出的缓冲区,它可以在之后覆盖内存。如果足够了,它可以覆盖赋给指令指针(eip)的返回地址。因此,通过控制eip,我们可以将执行发送到其他地方溢出的shell代码。但是,不执行shell代码中的错误字符。为什么会这样,为什么我们需要跳转到esp然后到shell代码而不是直接?如果我错了,请纠正我。谢谢。为什么要跳转到esp(缓冲区溢出)?

回答

0

正如我所说的那样,跳转到esp的正常程序。 esp是下一个操作的指针;这个名字是不是全称为xD? 该体系结构实现您使用默认的注册表。

随时纠正我; D