CSAPP: Bomb Lab(3)


Bomb 5
0000000000401062 <phase_5>:
401062: 53                      push   %rbx
401063: 48 83 ec 20             sub    $0x20,%rsp
401067: 48 89 fb                mov    %rdi,%rbx   //将输入的字符串放在rbx中
40106a: 64 48 8b 04 25 28 00    mov    %fs:0x28,%rax

401073: 48 89 44 24 18      mov    %rax,0x18(%rsp)
401078: 31 c0                   xor    %eax,%eax
40107a: e8 9c 02 00 00          callq  40131b <string_length>
40107f: 83 f8 06                cmp    $0x6,%eax      //string lengh must 6
401082: 74 4e                   je     4010d2 <phase_5+0x70>
401084: e8 b1 03 00 00          callq  40143a <explode_bomb>

根据40107a,40107f处代码可以得到,输入的字符串的长度为6。

根据下面代码中<strings_not_equal>函数,可以知道我们最后经过处理,字符串需要与内存$0x40245e处的字符串比较是否相等,运用p/s (char*)$0x40245e,获得该比较字符串为flyers

401089: eb 47                   jmp    4010d2 <phase_5+0x70>
40108b: 0f b6 0c 03             movzbl (%rbx,%rax,1),%ecx //将输入字符串的第一个字符给ecx
40108f: 88 0c 24                mov    %cl,(%rsp)
401092: 48 8b 14 24             mov    (%rsp),%rdx
401096: 83 e2 0f                and    $0xf,%edx     //取字符的最低4位到edx,大小从0~15
401099: 0f b6 92 b0 24 40 00    movzbl 0x4024b0(%rdx),%edx   //根据rdx中的数字,从0x4024b0(%rdx)中取字符
//maduiersnfotvbylSo you think you can st
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值