Bomblab实验报告
- 格式:doc
- 大小:1.72 MB
- 文档页数:27
课程实验报告课程名称:计算机系统实验项目名称:专业班级:姓名:学号:指导教师:完成时间:2019 年 4 月20 日信息科学与工程学院实验题目:CASPP BOMB LAB实验目的:输入代码中隐藏的密钥,通过实验实验环境:个人电脑、linux发行版本、gdb工具实验内容及操作步骤:通过查看bomb.c的代码,可以发现有6个密钥需要输入,分别为phase_1,phase_2, phase_3, phase_4, phase_5, phase_6。
在密钥的输入过程中,如果输入隐藏指令,即可触发隐藏关卡。
利用gdb工具或者objdump来查看其反汇编代码,然后分析反汇编代码得出其密钥。
实验结果及分析:Phase_1:这段反汇编代码可以看到非常简略,通过调用的函数可以看出,输入的是一个字符串,然后对比字符串是否是符合要求的即可,那么由指令movl $0x804a184,0x4(%esp)可以看出,内部隐藏的字符串应该就存储在0x804a184地址中,所以打印该地址的内容这个就是需要输入的字符串Phase_2:该语句可以通过函数名看到,它是有6个数输入,并且通过第一个cmpl语句看出输入的第一个数为1,而后面的跳转语句可以看到,它是个while语句,并且下一个数都是上一个数乘2,所以这样即可推出密钥为1 2 4 8 16 32Phase_3:可以看出,phase_3的反汇编代码是要根据输入的第一个数来进行跳转,然后再与第二个数进行比较,看是否相等。
打印跳转表的地址然后对应到的就是这些立即数的mov操作然后将十六进制转化为十进制即可得到7组答案0 331 ;1 957; 2 705; 3 538; 4 801; 5 645; 6 829; 7 845 Phase_4:可以看到第四个代码调用了func4函数,同时为它传入了两个值,一个为输入的第二个数,一个为整数8可以看到,func4函数反复调用了它自己,因此这对应的c语言函数是一个递归函数,根据汇编的每一条指令,翻译成c++代码得到将其输出得到3组答案108 2; 162 3 ;216 4Phase_5:从该反汇编代码可以看出,存在一个地址读取数据,然后顺序储存了16个整数,就是0x804a200为首地址,然后顺序打印可得到数组为10,2,14,7,8,12,15,11,0,4,1,13,3,9,6,5在根据汇编代码中的cmp指令可以得出,输入的第一个数的范围是大于1,小于15的,并且在循环的执行过程中,要把数组的值作为数组的下标进行操作,并且一定要执行完15次循环,当时做这题的时候头很晕不想倒推,考虑到只需要在2-14中取出答案,所以直接写成c++代码穷举输出答案Phase_6:这一串代码非常长,但是在前面的一大段,发现它是在进行取值的操作,输入的6个整数范围是1-6。
课程名称:计算机组成与结构实验项目名称:bomblab专业班级:姓名:学号:指导教师:完成时间:2016 年 4 月20 日信息科学与工程学院根据以上分析,我们发现,从键盘输入一个值,放到(新)ebp+8进行调用,把他传到esp中,接着,函数再从$0x804a15c这个地址取值,放到中,接着,程序对这两个参数进行函数调用,调用判断字符串是否相等的程序equal进行判断,如果二者相等,则返回值为0,不引爆炸弹,反之,只要二者不相等,则炸弹爆炸。
分析结论:此处的密码存在地址$0x804a15c中,我们只要查看该地址的值,即可完成该题。
打开gdb调试,运行x/s 0x804a15c,查看该处的值故第一题的答案为We have to stand with our North Korean allies.Phase_5内容如下:0x08048db8 <+0>: push %ebp0x08048db9 <+1>: mov %esp,%ebp0x08048dbb <+3>: push %esi0x08048dbc <+4>: push %ebx这是两个调用者保存寄存器,因为接下来的循环中使用到了这两个寄存器的值,所以要进行压栈保存。
0x08048dbd <+5>: sub $0x20,%esp esp-320x08048dc0 <+8>: lea -0x10(%ebp),%eax0x08048dc3 <+11>: mov %eax,0xc(%esp)ebp-160x08048dc7 <+15>: lea -0xc(%ebp),%eaxPhase_6内容如下:0x08048c89 <+0>: push %ebp0x08048c8a <+1>: mov %esp,%ebp 0x08048c8c <+3>: push %edi这<phase_6+93>之前的都表达了什么?其实很简单,就是输入的这1到6的,且相邻两数不相等,且相差值不为好,接下来看<phase_6+93>之后的内容<phase_6+93>~<phase_6+145>,又是一个类似的功能块,操作,不妨仍仿照以上述方法做一次分析。
第1篇一、实验背景随着科技的不断进步,对物质状态变化及能量释放机制的研究日益深入。
爆炸作为一种极端的物理现象,其背后的科学原理具有极高的研究价值。
为了揭示爆炸的物理本质,我们设计并实施了一项大型科学爆炸实验。
二、实验目的1. 研究不同条件下爆炸的物理过程。
2. 探讨爆炸产生的能量及其分布。
3. 分析爆炸对周围环境的影响。
4. 为相关领域的研究提供实验依据。
三、实验原理爆炸是可燃物质在有限空间内急剧燃烧,产生大量气体和热量,从而使气体迅速膨胀,产生巨大压力的一种现象。
实验中,我们通过控制可燃物质、氧气浓度、环境温度等因素,模拟不同条件下的爆炸过程。
四、实验用品1. 实验装置:金属罐、塑料瓶、蜡烛、火柴、橡皮管、气囊、塑料片等。
2. 可燃物质:面粉、煤粉等。
3. 仪器设备:高清摄像头、温度计、压力计、流量计等。
五、实验步骤1. 准备实验装置:剪去金属罐和小塑料瓶上部,并在金属罐和小塑料瓶底侧各打一个小孔,小孔大小比橡皮管外径略小。
2. 连接实验装置:用橡皮管连接金属罐、小塑料瓶和气囊。
3. 准备可燃物质:在小塑料瓶中放入干燥的面粉,把蜡烛放入金属罐中,并点燃。
4. 监测环境参数:使用温度计、压力计等仪器监测实验过程中的环境参数。
5. 观察爆炸现象:快速挤压气囊,鼓入大量空气,使面粉充满罐,观察爆炸现象。
6. 数据采集与分析:记录实验过程中相关参数的变化,分析爆炸产生的能量及其分布。
六、实验现象1. 爆炸发生时,金属罐和小塑料瓶内气体迅速膨胀,产生巨大压力。
2. 爆炸过程中,可燃物质燃烧产生大量热量,使环境温度急剧升高。
3. 爆炸产生的冲击波对周围环境造成一定影响,如塑料片飞到空中。
七、实验结果与分析1. 爆炸过程中,可燃物质燃烧产生的热量是爆炸能量释放的主要来源。
2. 爆炸产生的压力与可燃物质的种类、氧气浓度、环境温度等因素有关。
3. 爆炸对周围环境的影响主要表现为冲击波和高温,可能导致人员伤亡和设备损坏。
课程实验报告课程名称:计算机系统原理实验实验项目名称: BombLab 专业班级:计科1501 姓名:马子垚学号: 201508010114 完成时间: 2017 年 4 月 19 日实验目的理解汇编语言,学会使用调试器实验原理二进制炸弹是作为一个目标代码文件提供给学生们的程序,运行时,它提示用户输入6个不同的字符串。
如果其中任何一个不正确,炸弹就会“爆炸”:打印出一条错误信息。
学生通过反汇编和逆向工程来确定是哪六个字符串,从而解除他们各自炸弹的雷管。
实验步骤及体会一、实验准备1、首先,由于虚拟机操作系统与windows系统相互独立,所以首先将Bomb.c及其相关文件存至百度云盘,然后在ubantu操作系统内下载至文件系统目录下的下载文件夹里面:2、输入./bomb试运行bomb.c文件时会提示权限不够:所以需要输入chmod+x+文件名的命令于改变文件或目录的访问权限。
用它控制文件或目录的访问权限。
在经过操作之后,获得了权限,程序可以正常运行了:3、由于bomb.c文件并没有蕴含许多能破解的信息,所以需要将其进行反汇编,详细操作如下:输入objdump –d bomb >bomb.txt将汇编代码输出到自动生成一个bomb.txt的文件里面,方便我们查看与分析代码:二、具体实验步骤及其分析试查看导出的bomb.txt,我发现总的文本里面分为很多段,其中就有Phase_1~Phase_6、Phase_defuse、Phase_secret以及其他相关函数的代码,所以我猜测每一段Phase代码就是我们需要破解的关卡,所以我将它们分别导出新建text文件,逐段分析。
Phase_1及其破解过程:知识点:string,函数调用,栈反汇编代码及其分析:08048f61 <phase_1>:8048f61: 55 push %ebp//压栈 ebp为栈指针 esp为栈指针。
push指令可以理解为两个步骤:1. subl $4 , %esp –栈底向下移一位2. movl %ebp ,(%esp)将ebp的值存入esp中8048f62: 89 e5 mov %esp,%ebp//把esp赋值给ebp8048f64: 83 ec 18 sub $0x18,%esp//esp指针下移0x18个字节8048f67: c7 44 24 04 5c a1 04 movl $0x804a15c,0x4(%esp)//取0x804a15c处的内容存入*(%esp+4)//前一段总的分析:初始化栈,push是压栈指令,ebp寄存器中的内容是栈底指针。
1. 了解烟雾炮弹的工作原理;2. 掌握烟雾炮弹的物理特性;3. 通过实验验证烟雾炮弹的发射距离和覆盖面积;4. 分析影响烟雾炮弹性能的因素。
二、实验原理烟雾炮弹是一种利用化学反应产生烟雾的发射装置,其主要原理是:将固体粉末和液体反应物分别装在两个密封的容器中,通过化学反应产生大量烟雾。
当发射按钮被按下时,反应物迅速混合,产生烟雾并从炮弹尾部喷射出来。
三、实验器材1. 烟雾炮弹一个;2. 发射按钮一个;3. 测量工具(如卷尺、计时器等);4. 实验场地(开阔且安全);5. 实验记录表格。
四、实验步骤1. 准备实验场地,确保安全;2. 将烟雾炮弹放置在实验场地的起始位置;3. 将发射按钮固定在合适的位置;4. 记录炮弹的初始状态(如炮弹重量、尺寸等);5. 按下发射按钮,观察烟雾炮弹的发射过程;6. 使用测量工具测量烟雾炮弹的发射距离和覆盖面积;7. 重复实验多次,记录实验数据;8. 分析实验数据,得出结论。
实验次数 | 发射距离(米) | 覆盖面积(平方米)------- | -------------- | ---------------1 | 15 | 102 | 14 | 93 | 16 | 124 | 13 | 85 | 15 | 11六、实验结果分析1. 通过实验数据可以看出,烟雾炮弹的发射距离在14-16米之间,平均值为15米;2. 烟雾炮弹的覆盖面积在8-12平方米之间,平均值为10平方米;3. 实验结果表明,烟雾炮弹的发射距离和覆盖面积受到炮弹重量、尺寸、反应物比例等因素的影响。
七、结论1. 烟雾炮弹是一种利用化学反应产生烟雾的发射装置,具有较好的实用价值;2. 实验结果表明,烟雾炮弹的发射距离和覆盖面积受到多种因素的影响,需要在实际应用中加以考虑;3. 通过本次实验,我们掌握了烟雾炮弹的物理特性,为今后类似实验提供了参考。
八、实验总结本次烟雾炮弹物理实验,使我们了解了烟雾炮弹的工作原理和物理特性,提高了我们的实验操作能力。
深入理解计算机系统LAB2————————————————————————————————作者: ————————————————————————————————日期:LAB1实验报告实验目的:使用课程知识拆除一个“Binary Bombs”来增强对程序的机器级表示、汇编语言、调试器和逆向工程等理解。
实验简介:ﻩ一个“BinaryBombs”(二进制炸弹,简称炸弹)是一个Linux可执行C程序,包含phase1~phase6共6个阶段。
炸弹运行各阶段要求输入一个字符串,若输入符合程序预期,该阶段炸弹被“拆除”,否则“爆炸”。
实验目标是你需要拆除尽可能多的炸弹。
运行结果:ﻩ通关密码储存在00131.txt文件中。
成功运行结果截图:ﻩ实验中的六组密码:PHASE1:字符串比较ﻩ本关比较简单,根据课件中的提示用GDB将最先压栈的那个字符串常量打印出来,然后将其作为密码输入,比较成功后即通关。
08048ab2 <phase_1>:8048ab2:ﻩ83ec 14 sub $0x14,%esp8048ab5:6ﻩ8 049f 04 08 push $0x8049f048048aba:ﻩff 74 24 1c ﻩpushl 0x1c(%esp)8048abe:ﻩe8 4d 04 00 00 ﻩcall 8048f10 <strings_not_equal> ﻩ将地址0x8049f04中的值打印出来:即“The future will be bettertomorrow.”PHASE2:循环在查看汇编语言的时候,会看到有调用一个read_six_number函数,猜测此题是让输入六个数字。
08048ad3 <phase_2>:8048ad3:ﻩ56 push%esi53push %ebx8048ad4:ﻩ83 ec2c ﻩsub $0x2c,%esp8048ad5:ﻩ8048ad8: 8d 44 24 10lea 0x10(%esp),%eax8048adc:ﻩ50push %eax8048add:ﻩff 74 243c ﻩpushl0x3c(%esp)8048ae1:e8 46 05 00 00 call804902c <read_six_numbers>83c410add $0x10,%esp8048ae6:ﻩ8048ae9:ﻩ83 7c24 0801ﻩcmpl $0x1,0x8(%esp)------→判定是否为18048aee: 74 1eﻩje 8048b0e <phase_2+0x3b>8048af0: e8 1205 00 00 ﻩcall 8049007 <explode_bomb>8048af5: eb 17 jmp 8048b0e <phase_2+0x3b>8048af7:ﻩ8b 03 ﻩmov (%ebx),%eax8048af9:0ﻩ1 c0 ﻩadd %eax,%eax----→进行自加,扩大两倍8048afb: 39 43 04 ﻩcmp %eax,0x4(%ebx)05je 8048b05 <phase_2+0x3748048afe:ﻩ2>8048b00:ﻩe8 02 05 00 00 call 8049007 <explode_bomb> 83c3 04 add $0x4,%ebx8048b05:ﻩ8048b08: 39 f3ﻩcmp %esi,%ebx8048b0a:75eb ﻩjne8048af7 <phase_2+0x24>8048b0c: eb 0a jmp8048b18 <phase_2+0x45>8048b0e:ﻩ8d 5c 24 08 lea 0x8(%esp),%ebx8048b12:ﻩ8d 7424 1c ﻩlea 0x1c(%esp),%esi8048b16: eb df jmp 8048af7 <phase_2+0x24>→循环8048b18:83 c4 24 ﻩadd $0x24,%esp8048b1b:ﻩ5b pop %ebx8048b1c: 5e ﻩpop %esi8048b1d:ﻩc3 ﻩret有汇编语言进行分析,不难看出,这道题目要求输入六个数字,并且要求第一个数字为1,之后跳入一个循环,将第一个数字加倍和已有的数字进行比较,所以不难看出所需要的密码是1,2,4,8,16,32这六个数字。
Bomblab实验报告关键信息项:1、实验目的:____________________________2、实验环境:____________________________3、实验步骤:____________________________4、遇到的问题及解决方法:____________________________5、实验结果:____________________________6、实验总结与体会:____________________________11 实验目的本次 Bomblab 实验的主要目的是通过对一系列炸弹程序的分析和破解,深入理解计算机程序的逻辑结构、内存布局以及调试技术,提高对汇编语言和逆向工程的实践能力。
111 具体目标包括1111 熟悉 GDB 调试工具的使用,能够设置断点、查看寄存器和内存内容。
1112 理解函数调用栈和程序的控制流程。
1113 通过分析汇编代码,找出炸弹程序中的逻辑漏洞并解除炸弹。
12 实验环境121 操作系统:使用具体操作系统名称操作系统。
122 编译工具:具体编译工具名称及版本。
123 调试工具:GDB 调试器具体版本。
13 实验步骤131 准备阶段获取 Bomblab 实验程序代码,并将其导入到开发环境中。
132 初步分析使用 objdump 等工具对程序进行反汇编,获取程序的汇编代码。
133 函数分析对关键函数进行逐步分析,理解其功能和逻辑。
134 断点设置在关键代码位置设置断点,以便在程序运行时进行观察和调试。
135 输入测试通过输入不同的测试数据,观察程序的反应和输出。
136 逐步推理根据程序的行为和调试信息,逐步推理出炸弹的解除条件。
14 遇到的问题及解决方法141 问题一在分析汇编代码时,对某些复杂的指令和跳转逻辑理解困难。
解决方法:查阅相关的汇编语言教材和资料,加深对指令的理解,并通过单步调试逐步理清跳转逻辑。
142 问题二输入测试数据时,无法准确判断哪些数据是有效的。
第1篇一、实验背景随着中国文化的传播,越来越多的外国人对中国的传统节日和习俗产生了浓厚的兴趣。
其中,鞭炮作为中国传统节日中不可或缺的元素,吸引了众多外国人的关注。
为了深入了解鞭炮的爆炸原理,我们进行了一次老外炸鞭炮的实验。
二、实验目的1. 了解鞭炮的爆炸原理;2. 观察鞭炮爆炸过程中的现象;3. 分析鞭炮爆炸对环境的影响。
三、实验材料1. 鞭炮;2. 实验场地:开阔的空地;3. 安全防护措施:护目镜、手套、防尘口罩等;4. 观察工具:摄像机、录音笔等。
四、实验步骤1. 准备实验场地:选择开阔的空地,确保实验过程中不会对周围环境和人员造成伤害。
2. 安全防护:实验人员佩戴护目镜、手套、防尘口罩等防护措施。
3. 鞭炮准备:将鞭炮置于实验场地,确保鞭炮周围无易燃物。
4. 观察鞭炮爆炸过程:使用摄像机、录音笔等工具记录鞭炮爆炸的过程。
5. 分析鞭炮爆炸现象:观察鞭炮爆炸过程中的火焰、烟雾、声响等现象。
6. 收集实验数据:记录鞭炮爆炸过程中的声响、火焰、烟雾等数据。
7. 实验总结:分析鞭炮爆炸原理,评估鞭炮爆炸对环境的影响。
五、实验结果与分析1. 鞭炮爆炸原理:鞭炮内部填充有黑火药,黑火药在点燃后会发生剧烈的化学反应,产生大量气体,从而使鞭炮爆炸。
2. 鞭炮爆炸现象:观察实验过程,发现鞭炮爆炸时产生大量火焰、烟雾和声响。
火焰颜色为黄色,烟雾为白色,声响较大。
3. 鞭炮爆炸对环境的影响:实验过程中,鞭炮爆炸产生的烟雾和声响对周围环境产生一定影响。
烟雾可能对空气造成污染,声响可能对周围居民造成干扰。
六、实验结论1. 鞭炮爆炸原理为黑火药在点燃后发生化学反应,产生大量气体,从而使鞭炮爆炸。
2. 鞭炮爆炸过程中产生大量火焰、烟雾和声响,对周围环境和人员有一定影响。
3. 为了减少鞭炮爆炸对环境的影响,建议在节日期间合理安排燃放鞭炮的时间和地点,尽量减少对周围环境和人员的影响。
七、实验反思本次实验让我们对鞭炮的爆炸原理有了更深入的了解,同时也让我们认识到鞭炮爆炸对环境的影响。