Bomb Lab实验报告

Bomb Lab实验报告

ID:35918712

大小:167.03 KB

页数:77页

时间:2019-04-25

Bomb Lab实验报告_第1页
Bomb Lab实验报告_第2页
Bomb Lab实验报告_第3页
Bomb Lab实验报告_第4页
Bomb Lab实验报告_第5页
资源描述:

《Bomb Lab实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程实验报告课程名称:计算机系统原理实验实验名称:BombLab专业班级:姓名:学号:完成时间:2017.4.19一、实验目的熟悉汇编程序,学习gdb调试工具,熟悉并掌握函数调用过程中的栈帧结构的变化。二、实验环境个人PC,Linux发行版本,终端,gdb调试工具。三、实验要求1.本次实验为熟悉汇编程序及其调试方法的实验。2.实验内容包含2个文件bomb(可执行文件)和bomb.c(c源文件)。3.使用gdb工具反汇编出汇编代码,结合c语言文件找到每个关卡的入口函数。4.分析汇编代码,找到在每个phase程序段中,引导程序跳转到“explode_bomb”程序段的地方,并分析其成功跳转的条件,

2、以此为突破口寻找应该在命令行输入何种字符通关。5.本实验一共有7个关卡,包括6个普通关卡和1个隐藏关卡。要求至少通过6个普通关卡。一、实验内容及操作步骤(一)准备过程1.解压文件夹得到“bomb”,“bomb.c”,“README-bomblab.txt”以及“实验基本内容与要求.txt”等文档。查看“实验基本内容与要求.txt”了解实验内容与要求后打开bomb.c文件,编译发现不能通过,代码不完整,所以bomb.c文件只能用来作为参考。查看bomb.c文件发现控制密码正确的6个函数分别为phase_1,phase_2,phase_3,phase_4,phase_5,phase_6,因此可以对

3、bomb文件反汇编得到汇编文本,结合汇编文本与bomb.c文本进一步分析。1.进入Ubuntu,将bom和bomb.c文档复制到主文件目录下,ctrl+alt+t打开终端,通过“objdump-dbomb>bomb.s”命令将可执行文件反汇编成bomb.s文件,并且可以通过“gdb-qbomb”进行调试。2.将bomb.c复制成文本后打开bomb.c查看汇编代码并进一步分析。(二)关卡分析1.phase_1phase_1汇编代码及注释如下:08048f61:8048f61:55push%ebp8048f62:89e5mov%esp,%ebp8048f64:83ec18sub$

4、0x18,%esp#开辟一个24位的栈空间8048f67:c74424045ca104movl$0x804a15c,0x4(%esp)#将0x804a15c存到%eap+4的位置,x/s0x804a15c得到"WehavetostandwithourNorthKoreanallies."8048f6e:088048f6f:8b4508mov0x8(%ebp),%eax8048f72:890424mov%eax,(%esp)#将%ebp+8处的值存到%esp8048f75:e831000000call8048fab8048f7a:85c0test%eax,%

5、eax8048f7c:7405je8048f83#%eax=0则跳出函数,否则跳到爆炸函数,可以看出,调用函数后如果两个字符串相等的话最后%eax会等于08048f7e:e84e010000call80490d18048f83:c9leave8048f84:c3ret8048f85:90nop8048f86:90nop8048f87:90nop8048f88:90nop8048f89:90nop8048f8a:90nop8048f8b:90nop8048f8c:90nop8048f8d:90nop80

6、48f8e:90nop8048f8f:90nop思路与分析:通过call8048fab我们可以推断要求输入的是一串字符串,movl$0x804a15c,0x4(%esp)将地址0x804a15c存到%esp+4的位置,mov0x8(%ebp),%eax和mov%eax,(%esp)将输入的字符串存到%esp中,call8048fab调用字符串比较函数,通过比较上面位置参数%esp+4与%esp对应的字符串是否相等,将返回值存到%eax中,test%eax,%eax,je8048f83,cal

7、l80490d1,判断如果两个字符串不相等则爆炸。由上面分析可知地址0x804a15c中存着正确的字符串,我们只要输入相同的字符串就可以通过关卡。进入gdb,通过命令x/s0x804a15c查看该字符串为:"WehavetostandwithourNorthKoreanallies."所以phase_1的通关密码为:"WehavetostandwithourNorthK

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。