汇编学习-堆栈平衡

本文最后更新于:2020年12月20日 晚上

概念

  1. 当调用某处的函数时,函数一般会使用堆栈作为存储的对象,这里就涉及到了堆栈使用结束后,如果不将堆栈及时还原而直接RETN,就会造成EIP的值被改变(00000000),从而导致程序运行错误,因此,每次分体函数执行完毕后,都应该将使用过的堆栈还原到使用之前的内容。
  2. 如果通过堆栈传递参数了,那么在函数执行完毕后,要平衡参数导致的堆栈变化。

内平栈

RETN 8相当于RETN之后再让mov exp,8


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!