实验2 PE文件格式分析 实验目的 1. 熟悉各种PE编辑查看工具,详细了解PE文件格式; 2. 重点分析PE文件文件头、引入表、引出表,以及资源表. 实验步骤 1. 编写C语言源程序 首先编写一个win32EXE程序,命名为hello,依次弹出三个对话框,三个对话框分别为:提示框标题为“Hell0-浙江师范大学行知学院软件安全实验-1”,内容为:“这是”+你的姓名++“第一个对话框”;提示框标题为“Hell0-浙江师范大学行知学院软件安全实验-2”,内容为:“这是”+你的姓名++“第二个对话框”;提示框标题为“Hell0-浙江师范大学行知学院软件安全实验-3”,内容为:“这是”+你的姓名++“第三个对话框”。 参考码: # include
# include
# include
int main() { MessageBox(NULL," 这是姓名()的第一个对话框","Hell0-浙江师范大学行知学院软件安全实验-2",MB_OK); MessageBox(NULL," 这是 姓名() 的第二个对话框","Hell0-浙江师范大学行知学院软件安全实验-2",MB_OK); MessageBox(NULL," 这是 姓名() 的第三个对话框","Hell0-浙江师范大学行知学院软件安全实验-3",MB_OK); getchar(); return 0; } 程序执行情况如下图所示: 2.PE 文件格式分析 (1) 使用使用UltraEdit或WinHex观察PE文件例子程序hello.exe的16进制数据,在打印稿中画出该PE文件基本结构,即指出:MZ头部+DOS stub+PE文件头+可选文件头+节表+节等信息。 并回答:如何判断打开文件是PE格式文件? (2)使用Ollydbg对该程序进行初步调试,了解该程序功能结构,在内存中观察该程序的完整结构。 并回答 程序入口点位置是多少? 3. 熟悉各类PE文件格式查看和编辑工具(PEView、Stud_PE、PEditor等) (1)画出PE的各个关键结构和字段文件偏移地址和虚拟内存地址。 (2)找到调用的API函数的地址。 4. 攻击程序: 手工修改hello.exe程序,使得其只弹出第三个对话框。 实验结论 总结及心得体会