深入理解操作系统实验——bomb lab(phase_6)
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)相关推荐
- 深入理解操作系统实验——bomb lab(phase_1)
实验内容及操作步骤: 一.实验基本内容: 二进制炸弹是作为一个目标代码文件,运行时会提示用户输入6个不同的字符串,如果其中任何一个不正确,炸弹就会爆炸,打印出一条错误信息.我们需要通过反汇编和逆向工程 ...
- 深入理解操作系统实验——bomb lab(phase_2)
2.对phase_2破解: 得到phase_2的汇编代码,开始破解 push %es push %ebx sub $0x34,%esp lea 0x18(%esp),%eax mov %eax,0x4 ...
- 《深入理解计算机系统》实验二Bomb Lab下载和官方文档机翻
前言 <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/labs.html 该篇文章是实验二Bomb Lab的Writeup机翻. 原文:http://cs ...
- 《深入理解计算机系统》实验二Bomb Lab
前言 <深入理解计算机系统>实验二Bomb Lab的下载和官网文档的机翻请看 <深入理解计算机系统>实验二Bomb Lab下载和官方文档机翻 用的调试工具是gdb,用到的指令如 ...
- CSAPP实验二——bomb lab实验
CSAPP实验二-- bomb lab实验 实验前准备 第一部分(phase_1) 第二部分(phase_2) 第三部分(phase_3) 第四部分(phase_4) 第五部分(phase_5) 第六 ...
- 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,当时花费很大精力和弯路,现来总结下各个实验,本文章为第二个实验--二进制炸弹( ...
- 【计算机系统基础bomb lab】CSAPP实验:Bomb Lab
[计算机系统基础bomb lab]CSAPP实验:Bomb Lab CSAPP 实验:Bomb Lab 实验内容简述 实验环境 实验过程:phase 1 phase 1 调试过程 实验过程:phase ...
- CSAPP实验之Bomb Lab详解
前言 Bomb Lab来自<深入理解计算机系统>(CSAPP)一书的第三章"程序的机器级表示"的配套实验,该实验的目的是通过反汇编可执行程序,来反推出程序执行内容,进而 ...
最新文章
- Ceres入门——Ceres的基本使用方法
- mysql执行事务的语句_详解MySQL执行事务的语法和流程
- 多级反馈队列列算法的几点说明
- 流行的jQuery信息提示插件(jQuery Tooltip Plugin)
- 用putty中的pscp命令拷贝文件
- 中考新大纲:初中数学无非就这26个考点!孩子吃透,再笨也能考115分!
- ssh源码编译安装mysql_总结源码编译安装mysql
- java文件上传总结
- Python+Selenium自动化测试:Page Object模式
- 彻底搞懂SSD网络结构
- 查看浏览器保存的密码
- 聚类分析通俗易懂解释
- uint8_t图像数据类型介绍
- topm java cpu3.3_快讯:TOPM 3-0 XQ,TOPM强势压迫,势如破竹喜获三连胜
- JQuery点名表案例
- 物联网构建人类“大生态系统”——万物互联!(来源: 水木然)
- 《算法4》读书笔记(二)
- 第三十三课第九章Storage Structure Relationships
- matlab使用cdfplot画累积分布函数CDF图像
- JumpServer开源堡垒机部署