栈溢出:这些都是套路
一. 基础知识
寄存器
重要的寄存器:rsp/esp, pc, rbp/ebp, rax/eax, rdi, rsi, rdx, rcx
作业:了解寄存器各个寄存器的作用,尤其是以上几个重要寄存器
栈:一种先进先出的数据结构
程序中的栈:
1. 内存中的一块区域,用栈的结构来管理,从高地址向低地址增长 �
2. 寄存器 esp 代表栈顶(即最低栈地址) �
3. 栈操作 �
压栈(入栈)
push sth-> [esp]=sth,esp=esp-4 �
弹栈(出栈)
pop sth-> sth=[esp],esp=esp+4 �
4. 栈用于保存函数调用信息和局部变量