1 gdb指令阅读 Enscript Output (cmu.edu) 有必要花十分钟浏览一遍了解如何使用gdb。$ gdb bomb在终端我们创建一个文件ans.txt 保存我们的答案,省去一遍一遍输入,方便我们直接运行到目标函数。 $ touch ans.txt …
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
sCS:APP3e, Bryant and O'Hallaron 解压:tar -xvf bomb.tar 从bomb.c可以看出phase_1接受一个输入,需要反汇编推测phase_1对input做了什么处理。 反汇编整个程序: objdump -d bomb > bomb.txt bomb.txt可以查看bomb的汇编代码 gdb进入调式模式 gdb bomb 在phase_1函数打断点 (gdb)break phase_1 运行到断点...
readme中没写什么有用的内容,bomb文件是编译完成的文件,bomb.c是本次实验的源码,打开看下,大概浏览了一遍,一共有phase_1 ~ phase_6 6个炸弹,从命令行输入的内容必须要和phase函数中的一致,否则就会爆炸退出程序。phase函数并没有给出源码,所以无法得知其期望的字符串是什么。给了bomb可执行文件,我们就...
实验二—BombLab实验材料一个能够运行的Linux或者Unix系统 官网的实习手册实验规则实验共有6个关卡,分别是phase_1到phase_6,对于每一个关卡,你需要输入相应的数字或者字符串,你应该仔细研究它们的汇编语句,根据这些汇编语句来推测出你需要输入的数据,避免程序跳转到explode_bomb函数,这意味着炸弹拆除失败。 开始实验前...
CSAPP Lab:Bomb Lab——从拆弹到爆炸。。。 这个实验的要做的是用gdb逆向一段code,通过查看汇编代码以及单步调试找出这段code需要你填入的字符串,好像每个人都不一样,所以每个人都需要找到自己的拆弹密码,很有意思。 实验一共有6关,我们一关关来看一下:...
Bomb是一个二进制炸弹,拆除他需要分别输入六条命令,一旦输入错误就会爆炸。在bomb.c文件中可以看到有6个phase,每个phase的输入是一条字符串,所以关键就是通过分析phase的内容来判断我们应该输入的字符串是什么。 理论上通过阅读汇编代码就可以找到答案,前3题或许可以,后边的题目就有点难度了。熟练使用gdb也是这个lab很...
CSAPP-Bomb Lab 这个实验的逻辑是这样的 需要使用gdb debug 进入到phase_x的各个函数,但是单步调试step是进不去的(也不难理解,如果gdb可以直接进入那这个实验还有什么难点) 但是反汇编得到的结果是全部的内容,通过阅读反汇编代码,找到一些关键节点,通过gdb对二进制进行dubug添加breakpoint从而查看一些内容找到结果...
本教程旨在为初学者提供从零开始安装 Docker 和 Visual Studio Code(VS Code)的指导,以启动 CSAPP 大作战。通过遵循以下步骤,您将能够顺利设置开发环境,开始破解 Bomb Lab。步骤 1:安装 Docker访问 Docker 官方网站下载适合 Mac 的客户端安装包。安装完成后,转至设置页面,在 Docker Engine 设置...
使用gdb bomb开始调试程序,首先在explode_bomb、phase_1函数处设置断点。 输入的字符串为hello! 观察以%rdi为地址的字符串验证了之前的假设。 %rdi处的字符串 所以经过分析,phase_1只是简单地把输入的字符串与0x402400处的字符串相比较,如果相等则拆弹成功。