反汇编代码中的ebp和esp是什么意思?

时间:2014-10-31 22:48:33

标签: assembly malware ida

下面发布的是我的代码。帮助我理解以下代码的含义:

   push    ebp
   mov     ebp, esp
   sub     esp, 230h

1 个答案:

答案 0 :(得分:1)

这是功能序言

将旧的基指针推入堆栈,以便稍后恢复:

   push    ebp

将堆栈指针的值分配给基指针,然后在旧堆栈帧的顶部创建一个新的堆栈帧:

   mov     ebp, esp

通过减少或增加其值来进一步移动堆栈指针(取决于堆栈是否向下或向上增长):

   sub     esp, 230h

这里,230h立即数是堆栈上保留的字节数,供本地使用。

以类似的方式,函数结尾反转序言的动作并将控制返回给调用函数。

检查此相关的SO问题:Function Prologue and Epilogue in C

相关问题