栈迁移原理


栈迁移原理

leave <==> mov esp,ebp ; pop ebp;
ret <==> pop eip;

将存储当前栈底地址的寄存器epb的值赋值给esp 然后将栈内栈顶的数值赋值给ebp,
再将下一个数值赋值给eip

俺们是如何利用的呢?
最常用的方式就是去puse压栈,改变栈顶和栈顶-1的内容去改变ebp寄存器,也就是迁移栈底。

参考资料

  • https://bbs.pediy.com/thread-258030.htm

相关