2. 实验:bomb 2.1 实验环境 2.2 实验介绍 2.3 炸弹1 2.4 炸弹2 2.5 炸弹3 3. 总结 前言 这一章主要介绍了x86架构下汇编指令的相关内容,最好是需要一些汇编的基础才能上手比较快,书上花了100页+来介绍这些内容~。lab是“拆除炸弹”,使用gdb调试阅读程序的汇编代码,进而“拆除”出程序中的“炸弹”。 1. 碎...
此lab主要包含两个文件。一是二进制bomb文件,二是bomb.c文件。我的理解下,二进制bomb文件是bomb.c文件与其他未给出的文件经过编译系统得到。而bomb.c文件提供了整个程序的大致执行流程,我们可以通过阅读函数名以及注释了解到程序主体为6个显性关卡,以及1个隐藏关卡,且每个关卡要求一行输入。而利用bomb文件可以反汇编...
首先执行命令objdump -d bomb > bomb.txt得到反汇编代码。 Phase1 考察点:字符串的传递方式 查看bomb.txt文件的反汇编代码,如下所示,首先栈顶指针向下移动了8个字节,在64位机器下就是一格,然后将0x402400传递给了esi寄存器(保存函数参数的寄存器),在0x400ee9处调用了string_not_equal函数,调用返回后如果eax寄存...
实验目的:进一步了解机器级代码,提高汇编语言、调试器和逆向工程等方面原理与技能的掌握。 实验环境:C、linux 实验获取:进入csapp官网,点击linux/x86-64 binary bomb下载实验压缩包。 实验说明:一共有6个关卡,每个关卡可以输入一串字符,只有输入正确才能拆出炸弹。 只有可执行程序,不知道六个关卡函数具体的代码都是什么。
实验二—BombLab 实验材料 一个能够运行的Linux或者Unix系统 官网的实习手册 实验规则 实验共有6个关卡,分别是phase_1到phase_6,对于每一个关卡,...
使用gdb bomb开始调试程序,首先在explode_bomb、phase_1函数处设置断点。 输入的字符串为hello! 观察以%rdi为地址的字符串验证了之前的假设。 %rdi处的字符串 所以经过分析,phase_1只是简单地把输入的字符串与0x402400处的字符串相比较,如果相等则拆弹成功。
CSAPP Lab:Bomb Lab——从拆弹到爆炸。。。 这个实验的要做的是用gdb逆向一段code,通过查看汇编代码以及单步调试找出这段code需要你填入的字符串,好像每个人都不一样,所以每个人都需要找到自己的拆弹密码,很有意思。 实验一共有6关,我们一关关来看一下:...
Bomb是一个二进制炸弹,拆除他需要分别输入六条命令,一旦输入错误就会爆炸。在bomb.c文件中可以看到有6个phase,每个phase的输入是一条字符串,所以关键就是通过分析phase的内容来判断我们应该输入的字符串是什么。 理论上通过阅读汇编代码就可以找到答案,前3题或许可以,后边的题目就有点难度了。熟练使用gdb也是这个lab很...
《深入理解计算机系统》第三版里面的几个lab很有意思,我东拼西凑总算做完了其中六个,现在和大家分享一下。部分代码来自网上,在实验报告最后都有标注参考内容。如果侵犯了您的著作权,请与我联系,我将删除侵权内容,谢谢~ 今天我们更新的是第二个实验,bomblab,即通过阅读汇编代码解读程序逻辑,输入正确的内容以通过函数...
CSAPP Bomb Lab探究与解析 具备条件 这个实验比较有意思,如果你正在学习汇编,那么这是一个对你所学的一个很好考察 汇编与反汇编 GDB调试 耐心与仔细 实验介绍 要求:分析汇编代码,找出每一关符合要求的输入,拆除炸弹 程序下载地址:http://csapp.cs.cmu.edu/2e/labs.html...