缓冲区溢出攻击.pptVIP

  • 4
  • 0
  • 约8.8千字
  • 约 65页
  • 2023-08-13 发布于广东
  • 举报
在函数调用过程中系统栈中的操作 MAIN函数调用FUNC_A时,首先在自己的栈帧中压入函数返回地址,然后为FUNC_A创建新栈帧并压入系统栈。 在FUNC_A调用FUNC_B时,首先在自己的栈帧中压入函数返回地址,然后为FUNC_B创建新栈帧并压入系统栈。 在FUNC_B返回时, FUNC_B的栈帧被弹出系统栈, FUNC_A栈帧中的返回地址被露在栈顶,此时处理器按照这个返回地址重新调到FUNC_A代码区中执行。 在FUNC_A返回时, FUNC_A的栈帧被弹出系统栈, MAIN函数栈帧中的返回地址被露在栈顶,此时处理器按照这个返回地址跳到MAIN函数代码区中执行。 第三十页,共六十五页,2022年,8月28日 寄存器与函数栈帧 每一个函数独占自己的栈帧空间,当前正在运行的函数的栈帧总是在栈顶。WIN32系统用两个特殊的寄存器来标识位于栈顶的栈帧。 ESP:栈指针寄存器(EXTENDED STACK POINTER),其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的栈顶。 EBP:基址指针寄存器(EXTENDED BASE POINTER),其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的底部。 第三十一页,共六十五页,2022年,8月28日 寄存器对栈帧的标识作用 栈帧1 栈帧2 栈帧3 栈帧 ---- EBP ESP 栈顶以上 的未使用 的内存空间

文档评论(0)

1亿VIP精品文档

相关文档