刚刚开始了解缓冲区溢出攻击,并对我看到https://www.youtube.com/watch?v=EcMCiFwHnjE/的视频中的某些内容提出了疑问。在视频中,为什么这个人会写jmpesp()
函数(~1:38)?该函数永远不会在main中调用,所以它如何出现在objdump
(~3:15)?另外jmp *%esp
的意义是什么?
答案 0 :(得分:0)
jmp *%esp
表示跳转(设置指令指针)到%esp
寄存器指向的位置,该寄存器是指向堆栈顶部的指针。因此,堆栈上推送的最新(通常是数据)内容将作为代码执行。