计算机系统基础lab2(二进制炸弹实验)


一、实验目的

  1. 熟悉linux基本操作命令,其中常用工具和程序开发环境
  2. 熟悉反汇编obnjump、调试指令gdb的操作
  3. 熟悉汇编语言中的循环、选择语句,及指针、链表、数组、二分树的应用

二、实验要求

  1. 尽快熟悉linux基本操作命令,还有其中常用工具和程序开发环境。以及objdump、gdb指令
  2. 灵活掌握各种汇编语句,以及查询内存中的信息的方法。
  3. 每个炸弹考察了汇编语言的一个不同方面:阶段一,字符串比较;阶段二,循环;阶段三,条件/分支;阶段四,递归调用和栈;阶段五,指针;阶段六,链表/指针/结构。隐藏阶段只有当在阶段4的拆解字符串后再附加一特定字符串后才会出现(作为最后一个阶段)。

三、实验内容(所修改函数代码,功能以及重要代码的解释)

第一阶段:

密码:I turned the moon into something I call a Death Star.
分析:
在这里插入图片描述
根据strings_not_equal函数可以看出,该函数为判断字符串是否相等的函数。如果输入的字符串和%eax里面的字符不相同,则该炸弹爆炸,所以我们通过x/s $eax查看其中的数据,即可得到该阶段的密码。在这里插入图片描述

第二阶段:

密码:0 1 1 2 3 5
分析:
通过分析read_six_numbers函数可得,该阶段的密码为6个数字。
在这里插入图片描述在这里插入图片描述
通过分析这几句话可知,我们将%ebp-0x30的地址赋值给%esi。通过查看该值为0。(该值即为第一个数字)
在这里插入图片描述通过分析这两句话得到,该阶段的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值