Bomblab实验报告

合集下载

计算机系统bomblab实验报告

计算机系统bomblab实验报告

课程实验报告课程名称:计算机系统实验项目名称:专业班级:姓名:学号:指导教师:完成时间: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。

湖南大学-计算机组成原理实验-实验3-bomblab

湖南大学-计算机组成原理实验-实验3-bomblab

课程名称:计算机组成与结构实验项目名称: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>,又是一个类似的功能块,操作,不妨仍仿照以上述方法做一次分析。

压力爆破实验报告

压力爆破实验报告
钎焊材料
Brazing material
材料厚度(mm)
Material thickness
生产厂家
Supplier
高度(mm)
Height
宽度(mm)
Width
厚度(mm)
Thickness
接样日期
Reception date
完成日期
Finish date
Test proposal
测试目的
Sample description
内漏Internal Leakage
外漏External Leakage
端板与首片板片之间Between frontcover plate and first plate
底板与末片板片之间Between backcover plate and last plate
其他Others
注: Q1、Q2、H1、H2及Q3、Q4、H3、H4分别为同一侧接管
4.委托检验结果仅对所检验样品有效。
Inspectionresultonly bears responsibility for the received samplein case of commissioned inspection.
样品型号
Sample model
申请单编号
Application NO.
内漏Internal Leakage
外漏External Leakage
端板与首片板片之间Between front cover plate and first plate
底板与末片板片之间Between back cover plate and last plate
其他Others
辅侧泄漏位置

大型科学爆炸实验报告(3篇)

大型科学爆炸实验报告(3篇)

第1篇一、实验背景随着科技的不断进步,对物质状态变化及能量释放机制的研究日益深入。

爆炸作为一种极端的物理现象,其背后的科学原理具有极高的研究价值。

为了揭示爆炸的物理本质,我们设计并实施了一项大型科学爆炸实验。

二、实验目的1. 研究不同条件下爆炸的物理过程。

2. 探讨爆炸产生的能量及其分布。

3. 分析爆炸对周围环境的影响。

4. 为相关领域的研究提供实验依据。

三、实验原理爆炸是可燃物质在有限空间内急剧燃烧,产生大量气体和热量,从而使气体迅速膨胀,产生巨大压力的一种现象。

实验中,我们通过控制可燃物质、氧气浓度、环境温度等因素,模拟不同条件下的爆炸过程。

四、实验用品1. 实验装置:金属罐、塑料瓶、蜡烛、火柴、橡皮管、气囊、塑料片等。

2. 可燃物质:面粉、煤粉等。

3. 仪器设备:高清摄像头、温度计、压力计、流量计等。

五、实验步骤1. 准备实验装置:剪去金属罐和小塑料瓶上部,并在金属罐和小塑料瓶底侧各打一个小孔,小孔大小比橡皮管外径略小。

2. 连接实验装置:用橡皮管连接金属罐、小塑料瓶和气囊。

3. 准备可燃物质:在小塑料瓶中放入干燥的面粉,把蜡烛放入金属罐中,并点燃。

4. 监测环境参数:使用温度计、压力计等仪器监测实验过程中的环境参数。

5. 观察爆炸现象:快速挤压气囊,鼓入大量空气,使面粉充满罐,观察爆炸现象。

6. 数据采集与分析:记录实验过程中相关参数的变化,分析爆炸产生的能量及其分布。

六、实验现象1. 爆炸发生时,金属罐和小塑料瓶内气体迅速膨胀,产生巨大压力。

2. 爆炸过程中,可燃物质燃烧产生大量热量,使环境温度急剧升高。

3. 爆炸产生的冲击波对周围环境造成一定影响,如塑料片飞到空中。

七、实验结果与分析1. 爆炸过程中,可燃物质燃烧产生的热量是爆炸能量释放的主要来源。

2. 爆炸产生的压力与可燃物质的种类、氧气浓度、环境温度等因素有关。

3. 爆炸对周围环境的影响主要表现为冲击波和高温,可能导致人员伤亡和设备损坏。

Bomblab实验报告

Bomblab实验报告

课程实验报告课程名称:计算机系统原理实验实验项目名称: 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

深入理解计算机系统LAB2

深入理解计算机系统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这六个数字。

LAB boom实验报告

LAB boom实验报告

$0x804a23e,0x4(%esp),我们查看 0x804a23e 的值结
再根据语句 0x08048e50 <+34>: call 0x8048840 <__isoc99_sscanf@plt> 0x08048e55 <+39>: cmp $0x2,%eax 说明我们要输入两个整型数,下面的工作就是判断这两个整型数分别是什么。由代码 0x08048e6b <+61>: movl $0xe,0x8(%esp) 0x08048e73 <+69>: movl $0x0,0x4(%esp) 0x08048e7b <+77>: mov -0xc(%ebp),%eax 0x08048e7e <+80>: mov %eax,(%esp) 可以看出我们以第一个参数,0 ,14 为参数传入递归函数中而且返回值为 1,所以我们这时做的 事情就是分析 func4 函数,看第一个参数为多少时返回值能为 1,而第二个参数有代码 0x08048e8b <+93>: cmpl $0x1,-0x10(%ebp) 0x08048e8f <+97>: je 0x8048e9d <phase_4+111> 可知第二个参数就为 1。 下面分析 func4
我们希望它的返回值为 0 这样根据 0x1(%eax,%eax,1),%eax 返回值就是 1 了,最简单的一种情 况就是 14 和 8 经过运算后结果为 11 而参数 1 恰好等于 11 的情况,更复杂一些的情况就是它又 调用了 0x08048b97 <+55>: call 0x8048b60 <func4>,再由它的返回值再继续推理,所以 此题有多种答案,最简单的就是 11,1。

Bomblab实验报告

Bomblab实验报告

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 问题二输入测试数据时,无法准确判断哪些数据是有效的。

老外炸鞭炮实验报告(3篇)

老外炸鞭炮实验报告(3篇)

第1篇一、实验背景随着中国文化的传播,越来越多的外国人对中国的传统节日和习俗产生了浓厚的兴趣。

其中,鞭炮作为中国传统节日中不可或缺的元素,吸引了众多外国人的关注。

为了深入了解鞭炮的爆炸原理,我们进行了一次老外炸鞭炮的实验。

二、实验目的1. 了解鞭炮的爆炸原理;2. 观察鞭炮爆炸过程中的现象;3. 分析鞭炮爆炸对环境的影响。

三、实验材料1. 鞭炮;2. 实验场地:开阔的空地;3. 安全防护措施:护目镜、手套、防尘口罩等;4. 观察工具:摄像机、录音笔等。

四、实验步骤1. 准备实验场地:选择开阔的空地,确保实验过程中不会对周围环境和人员造成伤害。

2. 安全防护:实验人员佩戴护目镜、手套、防尘口罩等防护措施。

3. 鞭炮准备:将鞭炮置于实验场地,确保鞭炮周围无易燃物。

4. 观察鞭炮爆炸过程:使用摄像机、录音笔等工具记录鞭炮爆炸的过程。

5. 分析鞭炮爆炸现象:观察鞭炮爆炸过程中的火焰、烟雾、声响等现象。

6. 收集实验数据:记录鞭炮爆炸过程中的声响、火焰、烟雾等数据。

7. 实验总结:分析鞭炮爆炸原理,评估鞭炮爆炸对环境的影响。

五、实验结果与分析1. 鞭炮爆炸原理:鞭炮内部填充有黑火药,黑火药在点燃后会发生剧烈的化学反应,产生大量气体,从而使鞭炮爆炸。

2. 鞭炮爆炸现象:观察实验过程,发现鞭炮爆炸时产生大量火焰、烟雾和声响。

火焰颜色为黄色,烟雾为白色,声响较大。

3. 鞭炮爆炸对环境的影响:实验过程中,鞭炮爆炸产生的烟雾和声响对周围环境产生一定影响。

烟雾可能对空气造成污染,声响可能对周围居民造成干扰。

六、实验结论1. 鞭炮爆炸原理为黑火药在点燃后发生化学反应,产生大量气体,从而使鞭炮爆炸。

2. 鞭炮爆炸过程中产生大量火焰、烟雾和声响,对周围环境和人员有一定影响。

3. 为了减少鞭炮爆炸对环境的影响,建议在节日期间合理安排燃放鞭炮的时间和地点,尽量减少对周围环境和人员的影响。

七、实验反思本次实验让我们对鞭炮的爆炸原理有了更深入的了解,同时也让我们认识到鞭炮爆炸对环境的影响。

爆破工程实验报告1gi

爆破工程实验报告1gi

西南科技大学爆破工程课程实验报告实验名称:姓名:班级:学号:评分:年月日一、实验名称导爆管起爆网路设计和连接二、实验目的1.通过实验使学生了解导爆管雷管起爆网路的起爆和传爆、孔外延期导爆管雷管起爆网路的布置、联接以及利用导爆管雷管起爆网路实现微差爆破的原理。

2.通过实验使学生了解孔内延期导爆管雷管起爆网路的布置方法、联接方式、起爆和传爆、以及利用孔内延期导爆管雷管起爆网路实现微差爆破的原理。

三、实验仪器及材料导爆管毫秒延期雷管1~10段,连接块、胶布、封口钳、导爆管雷管起爆器、工业炸药。

四、实验原理及步骤(一)孔外延期导爆管雷管起爆网路选择爆破台阶,按下图2-1布置导爆管雷管起爆网路;图2-1孔外延期导爆管雷管起爆网路1-1段导爆管雷管;2—2段导爆管雷管;3—3段导爆管雷管;4—4段导爆管雷管;5-连接块全部人员撤离到安全距离以外的掩体内,用起爆器起爆。

爆破后,观察孔外延期导爆管雷管起爆网路传爆和岩石破碎情况(二)孔内延期导爆管雷管起爆网路选择爆破台阶,按图2-2布置导爆管雷管起爆网路:全部人员撤离到安全距离以外的掩体内,用起爆器起爆。

爆破后,观察孔内延期导爆管雷管起爆网路传爆和岩石破碎情况。

图2-2孔内延期导爆管雷管起爆网路1-1段导爆管雷管;2—2段导爆管雷管;3—3段导爆管雷管;4—4段导爆管雷管5-5段导爆管雷管;6—6段导爆管雷管;7-连接块五、 结果分析设计的孔网参数:孔径D=250mm,孔深H=16m 底盘抵抗线Wd=11.2m 孔距a=16.8m 采用等边三角形布孔,排距b=14.8m 堵塞长度Ld=8.2m 布孔方式图逐孔网路设计图:根据场地及环境条件,选择起爆点和传爆方向,确定排和列及其地表延期时间地表延期、孔内无延期,按排和列连接的逐孔微差起爆的地表传爆方向及延期时间示意图逐孔网路图:六、实验体会1,掌握了孔外延期导爆管雷管起爆网路和孔内延期导爆管雷管起爆网路2,明白了两网路的原理以及设计3,灵活运用了两网路的组合实现逐孔起爆一、实验名称炸药殉爆距离测定实验二、实验目的掌握爆破工地现场常用的炸药敏感度测定方法—殉爆距离测定。

bomb lab phase2理解

bomb lab phase2理解

一、概述bomb lab phase2是计算机科学领域中一个非常重要的实验,通过对这个实验的深入研究和理解,可以对计算机系统的安全性和漏洞有更深刻的认识,从而为计算机安全领域的研究和应用提供重要的参考价值。

二、bomb lab phase2的背景1. bomb lab phase2是由某大学计算机科学系设计的一个实验项目,旨在通过完成一系列程序设计和分析的任务,来加深学生对计算机系统基本原理的理解和应用。

2. 该实验要求学生能够熟练掌握汇编语言、内存管理、逆向工程等相关知识,并能够在实践中运用这些知识解决实际问题。

三、bomb lab phase2的内容和要求1. 实验要求学生通过分析给定的程序代码和二进制文件,找出并修复其中的错误,使程序能够正确运行并输出目标字符串。

2. 学生需要在完成实验的过程中,深入理解程序执行的过程、内存的分配和管理、汇编指令的执行过程等内容,从而能够找出程序中的逻辑漏洞、缓冲区溢出、内存泄漏等问题,并加以解决。

3. 实验要求学生能够写出详细的分析报告,说明每一步的分析和修复过程,逻辑推理和数据验证的过程等。

四、bomb lab phase2的重要性和意义1. bomb lab phase2的完成能够对学生深入理解计算机系统和程序设计原理有很大的帮助,能够提高他们的动手能力和逻辑思维能力。

2. 通过对这个实验的理解和研究,能够为计算机系统的安全性和稳定性提供一定的参考,有助于发现和修复潜在的安全漏洞和问题。

3. 完成这个实验还能够培养学生的团队合作精神和问题解决能力,这是他们未来在计算机领域就业和研究中必不可少的能力。

五、总结bomb lab phase2是一个非常重要的实验项目,通过学生对这个实验的深入理解和研究,有助于提高他们的动手能力、逻辑思维能力和问题解决能力,对计算机系统的安全性和稳定性也有着一定的参考价值。

希望广大学生能够认真对待这个实验,努力完成并深刻理解其中的知识和技能。

升入理解计算机系统Bomb LAB实验报告

升入理解计算机系统Bomb LAB实验报告

湖南大学课程实验报告课程名称:计算机组成与结构实验项目名称:二进制炸弹专业班级:姓名:学号:指导教师:完成时间:计算机科学与工程系实验题目:APP Bomb Lab实验目的:实验环境:linux,终端,gdb工具实验内容及操作步骤:查看给出的bomb.c中的代码,得知控制检测密码正误的6个函数分别为:phase_1,phase_2,phase_3,phase_4,phase_5,phase_6。

使用gbd工具对可执行文件bomb进行反汇编:得到六段汇编代码,将其复制成文本后,对其进行分析,phase_1代码:0x08048f61 <+0>: push %ebp0x08048f62 <+1>: mov %esp,%ebp0x08048f64 <+3>: sub $0x18,%esp0x08048f67 <+6>: movl $0x804a15c,0x4(%esp) 将esp寄存器地址指向$0x804a15c 0x08048f6f <+14>: mov 0x8(%ebp),%eax 将$0x804a15c中的数据移给eax寄存器0x08048f72 <+17>: mov %eax,(%esp)0x08048f75 <+20>: call 0x8048fab <strings_not_equal>0x08048f7a <+25>: test %eax,%eax 上一行与这一行比较用户输入和$0x804a15c中的值0x08048f7c <+27>: je 0x8048f83 <phase_1+34>0x08048f7e <+29>: call 0x80490d1 <explode_bomb>0x08048f83 <+34>: leave0x08048f84 <+35>: ret可以看出,phase_1的密码是固定储存在$0x804a15c中的。

爆炸头静电实验报告(3篇)

爆炸头静电实验报告(3篇)

第1篇一、实验目的本次实验旨在探究爆炸头静电的特性和产生机理,通过实验分析静电对爆炸头性能的影响,为爆炸头的设计和应用提供理论依据。

二、实验原理静电是指物体表面由于电荷分布不均而产生的电现象。

在爆炸头中,静电可能来源于材料表面摩擦、气体扩散、温度变化等因素。

静电积累到一定程度时,可能导致爆炸头发生爆炸。

本实验通过模拟爆炸头在静电作用下的反应,分析静电对爆炸头性能的影响,探讨静电的产生、积累和释放过程。

三、实验材料与仪器1. 实验材料:爆炸头、绝缘材料、导电材料、静电发生器、电压表、电流表等。

2. 实验仪器:高温高压反应釜、高压电源、示波器、数据采集系统等。

四、实验步骤1. 准备实验材料,将爆炸头放置在绝缘材料上。

2. 连接静电发生器,设置适当的电压和频率,产生静电。

3. 通过导电材料将静电传递到爆炸头上,观察爆炸头在静电作用下的反应。

4. 记录爆炸头的电压、电流、电阻等参数,分析静电对爆炸头性能的影响。

5. 重复实验,对比不同电压、频率和材料对爆炸头性能的影响。

6. 分析实验数据,总结静电对爆炸头性能的影响规律。

五、实验结果与分析1. 静电对爆炸头性能的影响实验结果表明,静电对爆炸头性能的影响主要体现在以下几个方面:(1)电压:随着静电电压的升高,爆炸头的电阻逐渐减小,电流逐渐增大。

当电压达到一定程度时,爆炸头发生爆炸。

(2)频率:静电频率对爆炸头的性能影响较小,但在一定范围内,频率越高,爆炸头的电阻越小。

(3)材料:不同材料的爆炸头在静电作用下的性能存在差异。

绝缘材料在静电作用下容易发生击穿,导电材料在静电作用下电阻较小。

2. 静电产生、积累和释放过程(1)静电产生:静电产生的主要原因是物体表面摩擦、气体扩散、温度变化等。

在本实验中,静电主要通过静电发生器产生。

(2)静电积累:静电在爆炸头表面积累,随着静电电压的升高,积累的静电能量逐渐增大。

(3)静电释放:当积累的静电能量达到一定程度时,爆炸头发生爆炸,静电能量释放。

大学物理碰撞打靶实验报告

大学物理碰撞打靶实验报告

大学物理碰撞打靶实验报告篇一:大学物理碰撞打靶实验报告碰撞打靶实验物体间的碰撞是自然界中普遍存在的的现象,从宏观物体的一体碰撞到微观物体的粒子碰撞都是物理学中极其重要的研究课题。

本实验通过两个体的碰撞、碰撞前的单摆运动以及碰撞后的平抛运动,应用已学到的力学定律去解决打靶的实际问题,从而更深入地了解力学原理,并提高分析问题、解决问题的能力。

一.实验原理 1. 碰撞:指两运动物体相互接触时,运动状态发生迅速变化的现象。

”正碰”是指两碰撞物体的速度都沿着它们质心连线方向的碰撞;其他碰撞则为”斜碰”。

2. 碰撞时的动量守恒:两物体碰撞前后的总动量不变。

3. 平抛运动:将物体用一定的初速度v0沿水平方向抛出,在不计空气阻力的情况下,物体所作的运动称平抛运动,运动学方程为x?v0t,y?12gt(式t中是从抛出开始计算的时2 间,x是物体在时间t内水平方向的移动距离,y是物体在该时间内竖直下落的距离,g是重力加速度)4. 在重力场中,质量为m的物体在被提高距离h后,其势能增加了?Ep?mgh 5. 质量为m的物体以速度v运动时,其动能为Ek?12mv 2 6. 机械能的转化和守恒定律:任何物体系统在势能和动能相互转化过程中,若合外力对该物体系统所做的功为零,内力都是保守力(无耗散力),则物体系统的总机械能(即势能和动能的总和)保持恒定不变。

7. 弹性碰撞:在碰撞过程中没有机械能损失的碰撞。

8. 非弹性碰撞:碰撞过程中的机械能不守恒,其中一部分转化为非机械能(如热能)。

二.实验仪器碰撞打靶实验仪如图1所示,它由导轨、单摆、升降架(上有小电磁铁,可控断通)、被撞小球及载球支柱,靶盒等组成。

载球立柱上端为锥形平头状,减小钢球与支柱接触面积,在小钢球受击运动时,减少摩擦力做功。

支柱具有弱磁性,以保证小钢球质心沿着支柱中心位置。

图 1 碰撞打靶实验仪升降架上装有可上下升降的磁场方向与杆平行的电磁铁,杆上的有刻度尺及读数指示移动标志。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Phase_1及其破解过程:
知识点:string,函数调用,栈
反汇编代码及其分析:
08048f61 <phase_1>:
8048f61:55push %ebp
//压栈 ebp为栈指针 esp为栈指针。
push指令可以理解为两个步骤:
1、 subl $4 , %esp–栈底向下移一位
2、 movl %ebp ,(%esp) 将ebp的值存入esp中
//test执行的就就是and的指令,不会保存and执行的结果,而就是根据and的结果设置flags寄存器的各种标志。
8048f7c:74 05je 8048f83 <phase_1+0x22>
//Je指令:当ZF等于零的时候跳转,也就就是相等的时候跳转。判断%eax就是否为0,为0跳转,不为0引爆
8048f7e:e8 4e 01 00 00call 80490d1 <explode_bomb>
8048f83:c9leave
//为结束函数做准备
8048f84:c3ret
//返回。ret:不带任何参数时,用于在子程序的结束位置,被调用的子程序必须有ret指令,否则调用没有ret指令的子程序会导致自陷,子程序执行完之后处于失控状态。带参数ret n 表示子程序返回主程序的同时,堆栈弹出n个字节(栈顶指针减n)
//调用字符串比较函数,string_not_equal就提示需要比较两个字符串,通过gcc函数调用规范知道压入堆栈的两个参数分别为输入字符串与程序内部字符串。<strings_not_equal>函数的时候,必须返回%eax为0,而这个函数的作用就就是判断字符串就是否相等。
8048f7a:85 c0test %eax,%eax
8048f6e:08
8048f6f:8b 45 08mov 0x8(%ebp),%eax
//取用户输入的内容存入%ebp
8048f72:89 04 24mov %eax,(%esp)
//eax的值赋值给*esp
8048f75:e8 31 00 00 00call 8048fab <strings_not_equal>
3、由于bomb、c文件并没有蕴含许多能破解的信息,所以需要将其进行反汇编,详细操作如下:
输入objdump–d bomb >bomb、txt将汇编代码输出到自动生成一个bomb、txt的文件里面,方便我们查瞧与分析代码:
二、具体实验步骤及其分析
试查瞧导出的bomb、txt,我发现总的文本里面分为很多段,其中就有Phase_1~Phase_6、Phase_defuse、Phase_secret以及其她相关函数的代码,所以我猜测每一段Phase代码就就是我们需要破解的关卡,所以我将它们分别导出新建text文件,逐段分析。
8048f62:89 e5mov %esp,%ebp
//把esp赋值给ebp
8048f64:83 ec 18sub $0x18,%esp
//esp指针下移0x18个字节
8048f67:c7 44 24 04 5c a1 04movl $0x804a15c,0x4(%esp)
//取0x804a15c处的内容存入*(%esp+4)
知识点:循环语句,数组
08048d6a <phase_2>:
8048d6a:55push %ebp
8048d6b:89 e5mov %esp,%ebp
8048d6d:56push %esi
8048d6e:53push %bx
8048d6f:83 ec 30sub $0x30,%esp
8048d72:8d 45 e0lea -0x20(%ebp),%eax
具体操作:
读取0x804a15c内存的字符串(密码),并设置断点。
成功读取到字符串,作为密码输入:
第一关成功破解
程序流程:
1、取内存地址0x8049a04处的内容;
2、取用户输入的内容(即密码);
3、比较两者的值,相等则%eax置为0,进入下一关,不相等则调用引爆程序引爆炸弹。
Phase_2及其破解过程:
实验步骤及体会
一、实验准备
1、首先,由于虚拟机操作系统与windows系统相互独立文件系统目录下的下载文件夹里面:
2、输入、/bomb试运行bomb、c文件时会提示权限不够:
所以需要输入chmod+x+文件名的命令于改变文件或目录的访问权限。用它控制文件或目录的访问权限。在经过操作之后,获得了权限,程序可以正常运行了:
8048d7c:89 04 24mov %eax,(%esp)
//前面几行均为初始化栈操作
8048d7f:e8 87 03 00 00call804910b <read_six_numbers>
//调用函数read_six_numbers(说明密码就是6个数字)
8048d84:83 7d e0 00cmpl $0x0,-0x20(%ebp)
//lea:取偏移地址将一个数的内存单元的偏移地址,送入寄存器中存储,与mov不同的就是mov就是将该数当作一个偏移地址存入寄存器,没有寻址的功能。
8048d75:89 44 24 04mov %eax,0x4(%esp)
//取用户输入的内容,存入%ebp
8048d79:8b 45 08mov 0x8(%ebp),%eax
//前一段总的分析:初始化栈,push就是压栈指令,ebp寄存器中的内容就是栈底指针。esp寄存器里面存的就是栈顶地址。通过sub指令,将栈顶固定在第十八个存储单元里面。字符串的内存地址为0804a15c,四个字节。一个存储单元存放8个bit两个十六进制数字,栈顶及后三个单元存栈顶地址。故用mov指令将字符串地址存在栈顶后的第四个字节处。
课程实验报告
课程名称:计算机系统原理实验
实验项目名称:BombLab
专业班级:计科1501
姓名:马子垚
学号:2
完成时间:2017年4月19日
实验目的
理解汇编语言,学会使用调试器
实验原理
二进制炸弹就是作为一个目标代码文件提供给学生们的程序,运行时,它提示用户输入6个不同的字符串。如果其中任何一个不正确,炸弹就会“爆炸”:打印出一条错误信息。学生通过反汇编与逆向工程来确定就是哪六个字符串,从而解除她们各自炸弹的雷管。
相关文档
最新文档