计算机系统原理实验之BombLab二进制炸弹5、6关


实验目的:

通过二进制炸弹实验,熟悉汇编语言,反汇编工具objdump以及gdb调试工具。

实验内容:

1、炸弹实验第5关。

2、炸弹实验第6关。

实验过程:

第五关:

1、根据前几关的经验,进入bomb文件的gdb调试命令下,直接查看第五关的汇编代码。

 

2、直接回车可以显示余下的phase_5函数的代码,浏览完一遍phase_5函数的汇编代码后,并不能直接发现此代码的精髓所在,因此,我开始逐条分析phase_5函数的代码。

首先是栈帧准备,开辟32字节的空间:

 

接着加载%ebp-0x10处的有效地址间接存储到%esp+0xc处,也就是参数2存放的地方,同理,加载%ebp-0xc处的有效地址间接存储到%esp+0x8处,也就是参数1存放的地方。

 

接着看见了一串似曾相似的代码,老规矩,查看此地址处存放的数据,发现我们仍是输入两个整数。

 

接着把%ebp+0x8处存储的值传送给%esp,然后调用__isoc99_sscanf@plt函数。

 

3、往下接着看,比较了%eax1的大小,若%eax大于1,则跳转到<phase_5+51>处,否则,调用爆炸函数,引起爆炸,由此处可得,输入的参数个数必须大于1个。

 

4、接着把参数1传给%eax,并对%eax0xf作按位与运算,也就是取出参数1的低四位。

5、

  • 16
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值