由于内容较长,所以打算分成几个部分来写。
实验准备知识:
实验三是CSAPP课程中的bomb炸弹实验。一个非常有意思的实验。实验主要提供了2个文件,一个bomb二进制可执行文件,一个bomb.c C源文件。实验主要设置6个关卡phase,要求你每一关输入一个特定的字符串,来拆掉炸弹。主要是考察对汇编语言的熟悉理解程度,反汇编和逆向工程以及gdb调试。感觉datalab主要是对应教材的第二章信息的表示预处理章节,而bomb实验主要是对应教材的第三章,程序的机器级表示章节,对寄存器,主存的理解,对汇编指令的理解,控制循环跳转switch语句的考察,以及过程,过程中的栈的调用过程以及递归过程等,对数组指针以及链表等数据结构的理解等的考察。
由于炸弹拆除过程比较繁琐,所涉及的知识点比较多,下面按照拆除过关的顺序来写。
首先,之前做过一次,我首先将之前的加压后的实验3文件夹删掉
首先将windows下的实验3.zip拖到linux下,之前先安装vmtools,可以实现windows和linux下文件的复制黏贴,这里压缩文件采用zip格式,是方便linux下对其进行解压。
解压:unzip 实验3.zip