2. 实验:bomb 2.1 实验环境 2.2 实验介绍 2.3 炸弹1 2.4 炸弹2 2.5 炸弹3 3. 总结 前言 这一章主要介绍了x86架构下汇编指令的相关内容,最好是需要一些汇编的基础才能上手比较快,书上花了100页+来介绍这些内容~。lab是“拆除炸弹”,使用gdb调试阅读程序的汇编代码,进而“拆除”出程序中的“炸弹”。 1. 碎...
and so they will all blow up in a* spectaculary fiendish explosion. -- Dr. Evil*/FILE*infile;intmain(intargc,char*argv[]){char*input;/* Note to self: remember to port this bomb to Windows
实验目的:进一步了解机器级代码,提高汇编语言、调试器和逆向工程等方面原理与技能的掌握。 实验环境:C、linux 实验获取:进入csapp官网,点击linux/x86-64 binary bomb下载实验压缩包。 实验说明:一共有6个关卡,每个关卡可以输入一串字符,只有输入正确才能拆出炸弹。 只有可执行程序,不知道六个关卡函数具体的代码都是什么。
Bomb是一个二进制炸弹,拆除他需要分别输入六条命令,一旦输入错误就会爆炸。在bomb.c文件中可以看到有6个phase,每个phase的输入是一条字符串,所以关键就是通过分析phase的内容来判断我们应该输入的字符串是什么。 理论上通过阅读汇编代码就可以找到答案,前3题或许可以,后边的题目就有点难度了。熟练使用gdb也是这个lab很...
本次实验中的bomb文件中共有7个炸弹问题(6个显式的和1个隐藏的),每条问题只有输入正确的答案才能进入下一题,否则则会触发爆炸。通过阅读bomb文件的汇编代码理解各个问题的运作方式,推出正确的输入答案。隐藏的问题需要通过gdb直接调用解决。 我的编译环境:Ubuntu16.04,gcc 5.4.0。
实验二—BombLab 实验材料 一个能够运行的Linux或者Unix系统 官网的实习手册 实验规则 实验共有6个关卡,分别是phase_1到phase_6,对于每一个关卡,...
CSAPP Lab:Bomb Lab——从拆弹到爆炸。。。 这个实验的要做的是用gdb逆向一段code,通过查看汇编代码以及单步调试找出这段code需要你填入的字符串,好像每个人都不一样,所以每个人都需要找到自己的拆弹密码,很有意思。 实验一共有6关,我们一关关来看一下:...
Bomb Lab 来自《深入理解计算机系统》(CSAPP)一书的第三章的配套实验,该实验的目的是通过反汇编可执行程序,来反推出程序执行内容,进而能够正确破解”密码“,解除“炸弹”。 本实验共有6个 phase,对于每个 phase,你需要输入一段字符串,然后让代码中 explode_bomb函数不执行,这样就不会 boom !
和我们在bomb.c中看到的是一样的,main函数内每次先调用read_line,然后将返回的地址传递给phase_n函数,如果输入的不正确那么就会执行爆炸函数。所以当然就顺着main函数执行轨迹一个个来排雷~ Phase_1 先查看phase_1反汇编代码: 0000000000400ee0 <phase_1>: ...
CSAPP-Bomb Lab 这个实验的逻辑是这样的 需要使用gdb debug 进入到phase_x的各个函数,但是单步调试step是进不去的(也不难理解,如果gdb可以直接进入那这个实验还有什么难点) 但是反汇编得到的结果是全部的内容,通过阅读反汇编代码,找到一些关键节点,通过gdb对二进制进行dubug添加breakpoint从而查看一些内容找到结果...