bomblab 拆炸弹

#南京航空航天大学《计算机组成原理Ⅱ课程设计》报告

  • 姓名:xx
  • 班级:1617
  • 学号:1617
  • 报告阶段:Bomblab
  • 完成日期:2019.5.26

##目录

实验内容

objdump –d bomb > asm.txt
对bomb进行反汇编并将汇编代码输出到asm.txt中。

1.Bomb1

思路:
查看汇编源代码asm.txt文件,在main函数中找到如下语句
这里为phase1函数在main()函数中被调用的位置):

08048b30 <phase_1>:
 8048b30:	55                   	push   %ebp
 8048b31:	89 e5                	mov    %esp,%ebp
 8048b33:	83 ec 10             	sub    $0x10,%esp
 8048b36:	68 84 a0 04 08       	push   $0x804a0
 8048b3b:	ff 75 08             	pushl  0x8(%ebp)
 8048b3e:	e8 bf 04 00 00       	call   8049002 <strings_not_equal>
 8048b43:	83 c4 10             	add    $0x10,%esp
 8048b46:	85 c0                	test   %eax,%eax
 8048b48:	74 05                	je     8048b4f <phase_1+0x1f>
 8048b4a:	e8 b6 05 00 00       	call   8049105 <explode_bomb>
 8048b4f:	c9                   	leave  
 8048b50:	c3                   	ret    

在这里我们可以看到,call 8049002 <strings_not_equal>的前两句是进行压栈操作,根据sub $0x10,%esp可知前期准备工作中给栈分配了足够的空间,进行压栈时的情况为压入双字,根据小端存储的方式可知栈中存储的地址为08 a0 04 08。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AveR9Ejj-1584672291157)(C:\Users\Lenovo\Desktop\pa实验报告\bomb37\新建文件夹\1.PNG)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-utDSRexN-1584672291159)(C:\Users\Lenovo\Desktop\pa实验报告\bomb37\新建文件夹\2.PNG)]

2.Bomb2

思路:
查看汇编源代码asm.txt文件,在main函数中找到如下语句
这里为phase2函数在main()函数中被调用的位置):

08048b51 <phase_2>:
 8048b51:	55                   	push   %ebp
 8048b52:	89 e5                	mov    %esp,%ebp
 8048b54:	56                   	push   %esi
 8048b55:	53                   	push   %ebx
 8048b56:	83 ec 28             	sub    $0x28,%esp
 8048b59:	65 a1 14 00 00 00    	mov    %gs:0x14,%eax
 8048b5f:	89 45 f4             	mov    %eax,-0xc(%ebp)
 8048b62:	31 c0                	xor    %eax,%eax
 8048b64:	8d 45 dc             	lea    -0x24(%ebp),%eax
 8048b67:	50                   	push   %eax
 8048b68:	ff 75 08             	pushl  0x8(%ebp)
 8048b6b:	e8 bd 05 00 00       	call   804912d <read_six_numbers>
 8048b70:	83 c4 10             	add    $0x10,%esp
 8048b73:	83 7d dc 02          	cmpl   $0x2,-0x24(%ebp)
 8048b77:	75 06                	jne    8048b7f <phase_2+0x2e>
 8048b79:	83 7d e0 03          	cmpl   $0x3,-0x20(%ebp)
 8048b7d:	74 05                	je     8048b84 <phase_2+0x33>
 8048b7f:	e8 81 05 00 00       	call   8049105 <explode_bomb>
 8048b84:	8d 5d dc             	lea    -0x24(%ebp),%ebx
 8048b87:	be 02 00 00 00       	mov    $0x2,%esi
 8048b8c:	89 f0                	mov    %esi,%eax
 8048b8e:	0f af 03             	imul   (%ebx),%eax
 8048b91:	03 43 04             	add    0x4(%ebx),%eax
 8048b94:	39 43 08             	cmp    %eax,0x8(%ebx)
 8048b97:	74 05                	je     8048b9e <phase_2+0
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值