刚开始学习缓冲区溢出攻击,并对我看到的视频中的某些内容提出了问题。在视频中,为什么这个人写jmpesp()函数(~1:38)?函数在main中的任何地方都不会被调用,所以它在objdump(~3:15)上是如何显示的?还有jmp *%esp的意义是什么?

最佳答案

jmp *%esp表示跳转(设置指令指针)到%esp寄存器指向的位置,该寄存器是指向堆栈顶部的指针。因此,推送到堆栈上的最新(通常是数据)内容将作为代码执行。

关于c - 缓冲区溢出视频中的jmp *%esp,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26209761/

10-12 18:05