拆炸弹!bomb-whu,phase-1

6个关卡,难度随关卡升级而提升;
通过解读汇编代码来推断其对应的函数结构(推断过程不唯一),某些关卡答案不唯一;
尽力而为,能通几关就几关。
提示:
第一关(知识点:string,函数调用,栈)
第二关(知识点:循环语句,数组)
第三关(知识点: switch语句)
第四关(知识点:递归)
第五关(知识点:字串变换,ascii转换,寻址)
第六关(知识点:寻址)

(第1-5关,各15分。第6关10分。实验总结15分。)

注1:
当前用户可能对bomb文件没有执行权限,建议先用ls查看文件权限,若没有执行权限,请用chmod +x bomb命令增加当前用户对bomb文件的执行权限。
注2:

   若用命令./bomb执行该文件提示no such file时,请先用 su szu 切换到szu账户,然后输入命令sudo apt-get install lib32z1,等待下载安装完毕即可。

三、实验环境:
1. 计算机(Intel CPU)
2. Linux64位操作系统(Ubuntu 17)
3. GDB调试工具

4. objdump反汇编工具

四、实验方法与步骤

1. 首先对bomb文件进行反汇编,并将结果输出到1.txt。

$ objdump -d bomb_64 > 1.txt


080488c0 <phase_1>: 80488c0: 83 ec 1c sub $0x1c,%esp 80488c3: c7 44 24 04 3c 93 04 movl $0x804933c,0x4(%esp) 80488ca: 08 80488cb: 8b 44 24 20 mov 0x20(%esp),%eax 80488cf: 89 04 24 mov %eax,(%esp) 80488d2: e8 93 04 00 00 call 8048d6a <strings_not_equal> 80488d7: 85 c0 test %eax,%eax 80488d9: 74 05 je 80488e0 <phase_1+0x20> 80488db: e8 95 05 00 00 call 8048e75 <explode_bomb> 80488e0: 83 c4 1c add $0x1c,%esp 80488e3: c3 ret
这个是
phase_1的汇编代码,第一个是比较字符串是否相等
<strings_not_equal>,相等则 je     80488e0 <phase_1+0x20>
不相等则 <explode_bomb>

 

找到地址
0x804933c
得到答案。phase-1到这里,下次更新2

 
 
参考:https://www.cnblogs.com/Cherrison-Time/p/10085616.html
https://blog.csdn.net/Xindolia_Ring/article/details/80142345

转载于:https://www.cnblogs.com/0001lizhubo/p/11470465.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值