CSAPP lab2 二进制拆弹 binary bombs phase_5 施工中

 phase_5

 

phase_5要求输入一个包含6个字符的字符串。phase_5函数从中读取这些信息,并判断其正确性,如果不正确,则炸弹爆炸。

phase_5主要考察学生对指针(数组)机器级表示的掌握程度。

观察框架源文件bomb.c:

 技术图片

从上可以看出:

1、首先调用了read_line()函数,用于输入炸弹秘钥,输入放置在char* input中。

2、调用phase_5函数,输入参数即为input,可以初步判断,phase_5函数将输入的input字符串作为参数。

因此下一步的主要任务是从asm.txt中查找在哪个地方调用了readline函数以及phase_5函数。

1.1 寻找并分析调用phase_5函数的代码

打开asm.txt,寻找phase_5函数。

 技术图片

 

phase_1类似分析:

1、当前栈的位置存放的是read_line函数读入的一串输入;

2、phase_5的函数入口地址为0x8048df7

此时的函数栈为:

 技术图片

1.2 phase_5函数分析

继续寻找phase_5,或搜索8048df7,可以找到phase_5函数入口。如下图所示:

技术图片

相关文章