缓冲区溢出攻击实训
实验网址:https://seedsecuritylabs.org/Labs_16.04/Software/Buffer_Overflow/
(实验所用源码对应:exploit.c 、 stack.c)
实验楼:https://www.shiyanlou.com/courses/231
IA32体系下的栈帧结构
在32位CPU体系架构下的某进程中的用户空间函数调用栈结构如上图所示。
优质的IA32体系C语言函数调用栈博客:https://www.cnblogs.com/clover-toeic/p/3755401.html
在进程中,每发生一次函数调用都会开启一段栈帧(stack frame),栈帧的边界由EBP寄存器和ESP寄存器指明。其中EBP寄存器保存栈帧基地址,ESP寄存器保存栈帧顶地址。在不考虑栈中保存上一次调用的现场时(只考虑函数的内容准备),一般EBP寄存器后会先放入本地局部变量、下一个函数调用传递的参数以及调用结束后继续执行指令的地址。
因此,实际上