CSAPP 二进制炸弹 binary bomb lab 4 第四关 ——深入理解计算机系统

本文详细解析了CSAPP Bomb Lab4的第四关,重点分析了phase4的汇编代码,并将其转换为C代码。通过理解逻辑,找到成功通过该关的条件是输入值x在0到0xe之间,y值为0,并正确调用func4函数,确保返回值为0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSAPP bomb lab4

phase4汇编代码:
000000000040100c <phase_4>:
  40100c:	48 83 ec 18          sub    $0x18,%rsp				#rsp-=0x18						
  401010:	48 8d 4c 24 0c       lea    0xc(%rsp),%rcx			#rcx=rsp+0xc
  401015:	48 8d 54 24 08       lea    0x8(%rsp),%rdx			#rdx=rsp+0x8
  40101a:	be cf 25 40 00       mov    $0x4025cf,%esi			#rsi=0x4025cf
  40101f:	b8 00 00 00 00       mov    $0x0,%eax				#eax=0
  401024:	e8 c7 fb ff ff       callq  400bf0 <__isoc99_sscanf@plt>
  #查(gdb)x/1s 0x4025cf"%d %d",所以sscanf两个int型整数,第1个数据x存于0x8(%rsp),2个数据y存于0xc(%rsp)
  401029:	83 f8 02             cmp    $0x2,%eax							
  40102c:	75 07                jne    401035 <phase_4+0x29>	#if (rax!=2)->bomb()
  40102e:	83 7c 24 08 0e       cmpl   $0xe,0x8(%rsp)			#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值