没有合适的资源?快使用搜索试试~ 我知道了~
首页bomblab实验报告.doc
深入理解计算机系统 bomblab(炸弹实验) 实验目的:通过此次实验,提高阅读和理解汇编代码的能力,学习使用 gdb 调试工具。 实验内容: <1>本次实验为熟悉汇编程序及其调试方法的实验。 <2>实验内容包含 2 个文件 bomb(可执行文件)和 bomb.c(c 源文件)。 <3>使用 gdb 工具反汇编出汇编代码,结合 c 语言文件找到每个关卡的入口函数。 <4>分析汇编代码,找到在每个 phase 程序段中,引导程序跳转到 “explode_bomb”程序段的地 方,并分析其成功跳转的条件,以此为突破口寻找应该在命令行输入何种字符通关。 <5>本实验一共有 7 个关卡,包括 6 个普通关卡和 1 个隐藏关卡。
资源详情
资源评论
资源推荐

目录
实验题目:深入理解计算机系统 (炸弹实验)
实验内容
的安装与使用
二、实验任务
反汇编
汇编分析
具体调试
解除 密码
反汇编
汇编分析
具体调试
解除 密码
反汇编
汇编分析
具体调试
解除 密码
反汇编
汇编分析
具体调试
解除 密码
反汇编
汇编分析
具体调试
解除 密码
反汇编
汇编分析
具体调试
解除 密码
反汇编
汇编分析
具体调试
解除 密码
三、收获与体会:
130

实验题目:深入理解计算机系统 (炸弹实验)
实验目的:通过此次实验,提高阅读和理解汇编代码的能力,学习使用 调试工具。
实验环境:个人电脑、 发行版本
实验内容及操作步骤:
一、实验要求与准备
实验内容
!"本次实验为熟悉汇编程序及其调试方法的实验。
!"实验内容包含 个文件 (可执行文件)和 ( 源文件)。
!"使用 # 工具反汇编出汇编代码,结合 语言文件找到每个关卡的入口函数。
!"分析汇编代码,找到在每个 程序段中,引导程序跳转到“ 程序段的地
方,并分析其成功跳转的条件,以此为突破口寻找应该在命令行输入何种字符通关。
!"本实验一共有 个关卡,包括 个普通关卡和 个隐藏关卡。
1.2 peda 的安装与使用
在本实验中,我们使用了 gdb-peda 插件,gdb-peda 具有更加友好的用户页面,使得调试更加有
效,并且 gdb-peda 能够实时跟踪查看寄存器、反汇编语句以及栈帧之中的部分内容,并且在进
行函数跳转时,提供了可能进行传递的参数,使得 gdb 调试更加可视化。
230

2.1.2 汇编分析
!" #$%
&!"& '#$(%)//
某一地址入栈
!" '*(%)$% //
输入字符串地址到
eax
!" '%$(%) //
地址入栈
+*!" !,//
调用函数
+-!"*& %$%//
函数返回值进行逻辑与运算
+.!"* /-!"&*//%eax=0
跳转
+!"*- .+!
//
若上述跳转语句没有执行则爆炸
-!"&* #$%
-&!"& //phase_1
结束
2.1.3 具体调试
首先,输入字符串:。进入调试我们看到调用的函数为!,,即比
较两个字符串是否相等。可以想到该函数需要的两个参数为个两个字符串的首地址。在调用函数
!,之前,' 指令可能是进行了传参:
按照这个思路我们先查看一下地址 :
430

由上图可知,我们知道了地址 存储的为一个字符串,并且不为我们输入的字符
串,我们猜测该字符串为进行比较的字符串之一,即正确结果。
接下来查看寄存器 :
我们发现寄存器 中存储的是一个地址,同样,我们查看地址 & 处的字符串:
上述地址处存储的字符串为我们输入的字符串,故上述猜测是正确的,我们需要输入的是一
个字符串:001
为了了解比较的过程,我们进入函数!,,分析汇编如下:
,
!" #$%
-!"& '%$(%)
!"- '%$(%)
!" '%$(%)
&!" '(%)$%
-!". '(%)$%
!"*& '%$(%)
!"*+ !
&!"& '%$%
!"&& '%$(%)
!"&+ !
!" '#$%
2*!"+ %$% //
比较字符串长度
2!" /.*.!,"
2+!" '3(%)$%
2.!" & '#$%
2!" %$%//
判断是否为空字符
2!" - /.*.!,"
530
string_lengt
h
传参
接收传参
剩余30页未读,继续阅读









安全验证
文档复制为VIP权益,开通VIP直接复制

评论0