深入理解操作系统实验——bomb lab(phase_2)
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)相关推荐
- 深入理解操作系统实验——bomb lab(phase_1)
实验内容及操作步骤: 一.实验基本内容: 二进制炸弹是作为一个目标代码文件,运行时会提示用户输入6个不同的字符串,如果其中任何一个不正确,炸弹就会爆炸,打印出一条错误信息.我们需要通过反汇编和逆向工程 ...
- 深入理解操作系统实验——bomb lab(phase_6)
6.对phase_6解决 得到phase_6的汇编代码,进行反汇编 push %esi push %ebx sub $0x44,%esp lea 0x10(%esp),%eax mov %eax,0x ...
- 《深入理解计算机系统》实验二Bomb Lab
前言 <深入理解计算机系统>实验二Bomb Lab的下载和官网文档的机翻请看 <深入理解计算机系统>实验二Bomb Lab下载和官方文档机翻 用的调试工具是gdb,用到的指令如 ...
- 《深入理解计算机系统》实验二Bomb Lab下载和官方文档机翻
前言 <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/labs.html 该篇文章是实验二Bomb Lab的Writeup机翻. 原文:http://cs ...
- CSAPP实验二——bomb lab实验
CSAPP实验二-- bomb lab实验 实验前准备 第一部分(phase_1) 第二部分(phase_2) 第三部分(phase_3) 第四部分(phase_4) 第五部分(phase_5) 第六 ...
- 【计算机系统基础bomb lab】CSAPP实验:Bomb Lab
[计算机系统基础bomb lab]CSAPP实验:Bomb Lab CSAPP 实验:Bomb Lab 实验内容简述 实验环境 实验过程:phase 1 phase 1 调试过程 实验过程:phase ...
- 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 ...
- CSAPP实验二:二进制炸弹(Bomb Lab)
本系列文章为中国科学技术大学计算机专业学科基础课<计算机系统>布置的实验,上课所用教材和内容为黑书CSAPP,当时花费很大精力和弯路,现来总结下各个实验,本文章为第二个实验--二进制炸弹( ...
- CSAPP实验之Bomb Lab详解
前言 Bomb Lab来自<深入理解计算机系统>(CSAPP)一书的第三章"程序的机器级表示"的配套实验,该实验的目的是通过反汇编可执行程序,来反推出程序执行内容,进而 ...
最新文章
- SystemTap了解
- 钉钉内部视频遭曝光:疯子无招“逼疯”产品经理
- STM8中GPIO的12种模式
- tomcat runing on daemon with apr and ssl mode
- js复制数据IE,FF..浏览器兼容
- html怎样做登录页面,使用HTML 5和CSS3制作登录页面完整步骤
- Nginx负载均衡策略之轮询与加权轮询
- ASP.NET Core 替换 Action 实际执行方法
- php 应用程序错误,系统化PHP中的Web应用程序的错误代码?
- Mysql 数据库表中有索引为什么还是查询慢?
- fedora下java环境配置
- Emacs自带小游戏
- Python迭代器(Iterator)
- 大数据处理的基本流程
- Revit二次开发 —— 点到面的投影
- endnote初始化数据库支持_学术干货:Endnote免费网页版竟如此强大!
- 直播企业掀“冲击IPO”浪潮,为何老玩家成受益者?
- 路由器的工作原理定义
- 【火炉炼AI】机器学习055-使用LBP直方图建立人脸识别器
- oracle 19c 由于MGA产生的文件扩展不足导致的ORA-04030
热门文章
- LRU算法,走迷宫,数根,星际战争
- 数独计算脚本(基本9X9)
- oracle 触发器抛出错误,oracle 触发器编译错误,求解
- 使用WHM重新编译Apache+PHP环境
- Android-蓝牙sco通话
- 【LeetCode】复数乘法
- nxn次方求和函数_算法|小学生都能看懂的生成函数入门教程
- win10键盘全部没反应_win10笔记本键盘全部没反应 win10键盘全部没反应解决方法...
- 如何备份 WordPress 数据库
- 技术博客|第8期:广告流量匹配算法在Hulu/Disney Streaming平台的实战