6、对phase_6解决
得到phase_6的汇编代码,进行反汇编

push   %esi
push   %ebx
sub    $0x44,%esp
lea    0x10(%esp),%eax
mov    %eax,0x4(%esp)
mov    0x50(%esp),%eax
mov    %eax,(%esp)
call   80492ab <read_six_numbers>
mov    $0x0,%esi
mov    0x10(%esp,%esi,4),%eax
sub    $0x1,%eax
cmp    $0x5,%eax
jbe    8048e65 <phase_6+0x2f>
call   8049176 <explode_bomb>
add    $0x1,%esi
cmp    $0x6,%esi
je     8048ea0 <phase_6+0x6a>
mov    %esi,%ebx
mov    0x10(%esp,%ebx,4),%eax
cmp    %eax,0xc(%esp,%esi,4)
jne    8048e7e <phase_6+0x48>
call   8049176 <explode_bomb>
add    $0x1,%ebx
cmp    $0x5,%ebx
jle    8048e6f <phase_6+0x39>
jmp    8048e54 <phase_6+0x1e>
mov    0x8(%edx),%edx
add    $0x1,%eax
cmp    %ecx,%eax
jne    8048e88 <phase_6+0x52>
mov    %edx,0x28(%esp,%esi,4)
add    $0x1,%ebx
cmp    $0x6,%ebx
jne    8048ea5 <phase_6+0x6f>
jmp    8048ebc <phase_6+0x86>
mov    $0x0,%ebx
mov    %ebx,%esi
mov    0x10(%esp,%ebx,4),%ecx
mov    $0x1,%eax
mov    $0x804c13c,%edx
cmp    $0x1,%ecx
jg     8048e88 <phase_6+0x52>
jmp    8048e92 <phase_6+0x5c>
mov    0x28(%esp),%ebx
mov    0x2c(%esp),%eax
mov    %eax,0x8(%ebx)
mov    0x30(%esp),%edx
mov    %edx,0x8(%eax)
mov    0x34(%esp),%eax
mov    %eax,0x8(%edx)
mov    0x38(%esp),%edx
mov    %edx,0x8(%eax)
mov    0x3c(%esp),%eax
mov    %eax,0x8(%edx)
movl   $0x0,0x8(%eax)
mov    $0x5,%esi
mov    0x8(%ebx),%eax
mov    (%eax),%edx
cmp    %edx,(%ebx)
jle    8048efd <phase_6+0xc7>
call   8049176 <explode_bomb>
mov    0x8(%ebx),%ebx
sub    $0x1,%esi
jne    8048eef <phase_6+0xb9>
add    $0x44,%esp
pop    %ebx
pop    %esi
ret

通过代码分析可以得到这个密码需要输入六个数字,这六个数字不能重复,不能超过6也不能小于1,可以确定就只有1,2,3,4,5,6这6个数字进行排序。可以通过汇编得到每个数字有他自己的编码,其中1对应2fe,2对应25a,3对应23a,4对应1a0,5对应36e,6对应321,通过尝试可以得到按小到大排列,最终的结果为4 3 2 1 6 5

此时,全部的六个炸弹已经解决,代码已经可以通过,如图所示:

但实际上还有一个隐藏炸弹需要解决,这个炸弹并没有直接进入的方法,而是有一条隐秘的路径,下面是我对隐藏炸弹的解决

深入理解操作系统实验——bomb lab(phase_6)相关推荐

  1. 深入理解操作系统实验——bomb lab(phase_1)

    实验内容及操作步骤: 一.实验基本内容: 二进制炸弹是作为一个目标代码文件,运行时会提示用户输入6个不同的字符串,如果其中任何一个不正确,炸弹就会爆炸,打印出一条错误信息.我们需要通过反汇编和逆向工程 ...

  2. 深入理解操作系统实验——bomb lab(phase_2)

    2.对phase_2破解: 得到phase_2的汇编代码,开始破解 push %es push %ebx sub $0x34,%esp lea 0x18(%esp),%eax mov %eax,0x4 ...

  3. 《深入理解计算机系统》实验二Bomb Lab下载和官方文档机翻

    前言 <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/labs.html 该篇文章是实验二Bomb Lab的Writeup机翻. 原文:http://cs ...

  4. 《深入理解计算机系统》实验二Bomb Lab

    前言 <深入理解计算机系统>实验二Bomb Lab的下载和官网文档的机翻请看 <深入理解计算机系统>实验二Bomb Lab下载和官方文档机翻 用的调试工具是gdb,用到的指令如 ...

  5. CSAPP实验二——bomb lab实验

    CSAPP实验二-- bomb lab实验 实验前准备 第一部分(phase_1) 第二部分(phase_2) 第三部分(phase_3) 第四部分(phase_4) 第五部分(phase_5) 第六 ...

  6. CSAPP Lab2 实验记录 ---- Bomb Lab(Phase 1 - Phase 6详细解答 + Secret Phase彩蛋解析)

    文章目录 Lab 总结博客链接 实验前提引子 实验需要指令及准备 Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 Phase 6 Phase Secret(彩蛋Phas ...

  7. CSAPP实验二:二进制炸弹(Bomb Lab)

    本系列文章为中国科学技术大学计算机专业学科基础课<计算机系统>布置的实验,上课所用教材和内容为黑书CSAPP,当时花费很大精力和弯路,现来总结下各个实验,本文章为第二个实验--二进制炸弹( ...

  8. 【计算机系统基础bomb lab】CSAPP实验:Bomb Lab

    [计算机系统基础bomb lab]CSAPP实验:Bomb Lab CSAPP 实验:Bomb Lab 实验内容简述 实验环境 实验过程:phase 1 phase 1 调试过程 实验过程:phase ...

  9. CSAPP实验之Bomb Lab详解

    前言 Bomb Lab来自<深入理解计算机系统>(CSAPP)一书的第三章"程序的机器级表示"的配套实验,该实验的目的是通过反汇编可执行程序,来反推出程序执行内容,进而 ...

最新文章

  1. Ceres入门——Ceres的基本使用方法
  2. mysql执行事务的语句_详解MySQL执行事务的语法和流程
  3. 多级反馈队列列算法的几点说明
  4. 流行的jQuery信息提示插件(jQuery Tooltip Plugin)
  5. 用putty中的pscp命令拷贝文件
  6. 中考新大纲:初中数学无非就这26个考点!孩子吃透,再笨也能考115分!
  7. ssh源码编译安装mysql_总结源码编译安装mysql
  8. java文件上传总结
  9. Python+Selenium自动化测试:Page Object模式
  10. 彻底搞懂SSD网络结构
  11. 查看浏览器保存的密码
  12. 聚类分析通俗易懂解释
  13. uint8_t图像数据类型介绍
  14. topm java cpu3.3_快讯:TOPM 3-0 XQ,TOPM强势压迫,势如破竹喜获三连胜
  15. JQuery点名表案例
  16. 物联网构建人类“大生态系统”——万物互联!(来源: 水木然)
  17. 《算法4》读书笔记(二)
  18. 第三十三课第九章Storage Structure Relationships
  19. matlab使用cdfplot画累积分布函数CDF图像
  20. JumpServer开源堡垒机部署

热门文章

  1. linux下rpm包安装MySQL
  2. [附源码]Node.js计算机毕业设计大学生学科竞赛管理系统Express
  3. 二次元究竟招惹了谁?谣言煽动背后的文化迷思,警惕有可能发生的思想劫持【文明启示录#01】【补档】
  4. 前端之文本、长度、颜色、字体、背景-36
  5. 富文本编辑器(超简单的)
  6. Windows11 Docker-Compose 因为挂载问题报错
  7. k8s入门:部署应用到 k8s 集群
  8. css实现单边斜切效果
  9. PolSARpro v5.1.3 处理Sentinel-1A SLC数据
  10. 接口详解(JAVA)