发布网友 发布时间:2024-10-18 06:33
共1个回答
热心网友 时间:5分钟前
完成CSAPP实验中的"bomb lab"(上)后,我们来逐步解析各个阶段的挑战。首先,确保使用Debian 9.4非虚拟机环境,GDB调试工具必不可少,Windows用户可能需借助WSL或自行安装GDB。实验核心是通过调试bomb.c文件,解密六个阶段的密码。
在Phase_1中,主要任务是找到输入字符串与特定字符串的匹配。通过反汇编,我们发现需要判断输入字符串和神秘字符串的长度是否相同,通过逐步测试,确定神秘字符串首字母地址,输入相应字符串后,Phase_1完成。
Phase_2涉及读取六个数字。通过阅读sscanf的函数调用,我们发现数字输入要求正确且特定模式。分析寄存器发现数字序列的规律,答案是1, 2, 4, 8, 16, 32,中间有空格。
Phase_3要求输入两个整数,通过反汇编分析,我们得知输入必须大于1且符合特定数字范围。输入答案为0到7的对应数字对,实验通过。
在Phase_4,我们需要输入两个数字,并满足递归函数的要求。输入0 0 1 0 3 0 7 0,成功解密。
Phase_5的挑战在于字符的ASCII码操作,需要找到六个字符的ASCII码低四位对应特定值。通过细致的字符分析,我们找到答案ionefg,完成这个阶段。