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

CSAPP bomb lab2

1.phase_2主函数:

//arg1=input (phase_2有一个参数input,是传入的字符串)
0000000000400efc <phase_2>:
  400efc:	55                   	push   %rbp		
  400efd:	53                   	push   %rbx		
  400efe:	48 83 ec 28          	sub    $0x28,%rsp
  400f02:	48 89 e6             	mov    %rsp,%rsi	
// 参数1=input,参数2=rsp地址,调用函数read_six_number。
  400f05:	e8 52 05 00 00       	callq  40145c <read_six_numbers>

将外部传入的input字符串作为第一参数,(input是什么先不用管,后面就知道了) phase_1中分配一段内存空间后,将该内存空间的首地址作为第二参数传给read_six_numbers函数中(猜测这段内存空间是一个数组)
接下来先进入read_six_numbers函数观察里面发生甚摸事了–>

2.read_six_numbers函数:

// arg1=input,arg2=a (a是已经分配好空间的数组)
000000000040145c <read_six_numbers>:
  40145c:	48 83 ec 18         sub    $0x18,%rsp	#24栈帧
  401460:	48 89 f2            mov    %rsi,%rdx	# rdx=rsi=y
  401463:	48 8d 4e 04         lea    0x4(%rsi),%rcx	# rcx=y+4
  401467:	48 8d 46 14         lea    0x14(%rsi),%rax	# rax=y+20
  40146b:	48 89 44 24 08      mov    %rax,0x8(%rsp)	# (rsp+8)=y+20
  401470:	48 8d 46 10         lea    0x10
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值