windows缓冲区溢出实验
一、实验目的
1.理解程序运行是内存结构及寄存器状态。
2.掌握函数调用时的栈帧状态。
二、实验环境与设备
1.实验环境:Win7 32位系统。
2.设备:PC机。
3.软件:VC6.0、 UltraEdit。
图1
三、实验内容和步骤
1.复习理论课栈帧的相关知识。回答如下问题:什么是栈帧?栈帧的特点是什么?栈帧的标识有哪些?
2.复习理论课函数调用栈帧状态。回答如下问题:函数调用分为哪几步?返回主调函数步骤?
3. 根据例3-1完成函数调用时的栈帧分析:
图2
1)分析fun函数调用前的栈帧情况,并在内存空间中对前栈帧EBP,t1,t2进行标记并截图;

图3
2)分析fun函数调用后的栈帧情况,并在内存空间中对前栈帧EBP,local进行标记并截图。
图4
4. 按照以上的方法来运行,分析例3-2、例3-3、例3-4以及3-6代码并截图标记。
图5
图6
四、实验报告
根据实验内容和步骤,完成实验报告撰写。
(做好实验后就写实验报告,注意要添加实验结果截图)
五、扩展
1. 根据例3-1完成函数调用后的栈帧分析,标记EBP、ESP的值,及其指向内存的位置。