2、对phase_2破解:
得到phase_2的汇编代码,开始破解

push   %es
push   %ebx
sub    $0x34,%esp
lea    0x18(%esp),%eax
mov    %eax,0x4(%esp)
mov    0x40(%esp),%eax
mov    %eax,(%esp)
call   0x80492ab <read_six_numbers>
cmpl   $0x1,0x18(%esp)
je     0x8048b99 <phase_2+37>
call   0x8049176 <explode_bomb>
lea    0x1c(%esp),%ebx
lea    0x30(%esp),%esi
mov    -0x4(%ebx),%eax
add    %eax,%eax
cmp    %eax,(%ebx)
je     0x8048baf <phase_2+59>
call   0x8049176 <explode_bomb>
add    $0x4,%ebx
cmp    %esi,%ebx
jne    0x8048ba1 <phase_2+45>
add    $0x34,%esp
pop    %ebx
pop    %esi
ret

可以看到这里调用了一个read_six_numbers的函数,所以可以假定这个密码是连续的六个数字,每个数字之间通过空格连接,而通过第九行cmpl $0x1,0x18(%esp)可以得到,第一个数字必须是1,然后最重要的就是add %eax,%eax指令会得到上一个数值的两倍,然后这个结果与第二个数值进行比较,如果不相等就会引爆炸弹,因此可以得到这是一个二次幂的数列,为1 2 4 8 16 32,代入后得到没有引爆,证明结果正确。

对应的编程语言代码为:

int a[6];
read_six_number;
if(a[0]!=1)
explode_bomb;
for(int i=0;i<5;i++){int b=a[i]+a[i];
if(a[i+1]!=a[i])explode_bomb;
}

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

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

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

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

    6.对phase_6解决 得到phase_6的汇编代码,进行反汇编 push %esi push %ebx sub $0x44,%esp lea 0x10(%esp),%eax mov %eax,0x ...

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

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

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

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

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

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

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

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

  7. 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 ...

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

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

  9. CSAPP实验之Bomb Lab详解

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

最新文章

  1. SystemTap了解
  2. 钉钉内部视频遭曝光:疯子无招“逼疯”产品经理
  3. STM8中GPIO的12种模式
  4. tomcat runing on daemon with apr and ssl mode
  5. js复制数据IE,FF..浏览器兼容
  6. html怎样做登录页面,使用HTML 5和CSS3制作登录页面完整步骤
  7. Nginx负载均衡策略之轮询与加权轮询
  8. ASP.NET Core 替换 Action 实际执行方法
  9. php 应用程序错误,系统化PHP中的Web应用程序的错误代码?
  10. Mysql 数据库表中有索引为什么还是查询慢?
  11. fedora下java环境配置
  12. Emacs自带小游戏
  13. Python迭代器(Iterator)
  14. 大数据处理的基本流程
  15. Revit二次开发 —— 点到面的投影
  16. endnote初始化数据库支持_学术干货:Endnote免费网页版竟如此强大!
  17. 直播企业掀“冲击IPO”浪潮,为何老玩家成受益者?
  18. 路由器的工作原理定义
  19. 【火炉炼AI】机器学习055-使用LBP直方图建立人脸识别器
  20. oracle 19c 由于MGA产生的文件扩展不足导致的ORA-04030

热门文章

  1. LRU算法,走迷宫,数根,星际战争
  2. 数独计算脚本(基本9X9)
  3. oracle 触发器抛出错误,oracle 触发器编译错误,求解
  4. 使用WHM重新编译Apache+PHP环境
  5. Android-蓝牙sco通话
  6. 【LeetCode】复数乘法
  7. nxn次方求和函数_算法|小学生都能看懂的生成函数入门教程
  8. win10键盘全部没反应_win10笔记本键盘全部没反应 win10键盘全部没反应解决方法...
  9. 如何备份 WordPress 数据库
  10. 技术博客|第8期:广告流量匹配算法在Hulu/Disney Streaming平台的实战