stack:
主要用途:
1.暂时保存局部变量
2.保存函数的返回地址
3.调用函数时传递参数
栈是一种特殊的数据结构,采用先进后出的原则来存储数据
一个进程中,栈顶指针(ESP)是指向栈底的,当执行push命令时,栈顶指针会移动到栈顶,当执行pop命令弹出数据时,栈顶指针会向下移,如果栈为空,那么栈顶指针重新回到栈底。
将一个exe文件拖入ollydbg
ESP 0012FF8C
如果执行push命令 将一个数据压入栈中,那么ESP指向0012FF88(减少4个字节)
再执行pop命令 ESP指向0012FF8C
又指向原来的位置。
向栈中压入数据的时候 栈顶指针减小,当pop弹出数据的时候 栈顶指针增大。