BoomLab
首先查看boom.c代码可知总共有6个phase
进入gdb调试:gdb bomb
phase_1
查看phase1反汇编代码: disas phase_1
<+0>:准备栈帧
<+4>:将地址存入%esi
<+9>:调用了一个<strings_not_equal>的指令,盲猜是对比刚刚输入字符和标准答案,所以查看一下0x402400里装的是啥:
这就是phase_1的标准答案了
Border relations with Canada have never been better.
phase_2
看到有一个read_six_numbers,顾名思义了,输入六个数字,disas看看:
这段程序作用就是将6个数字传入栈中。好的,六个整型数字。
回到主程序:
<+2>:40个字节的缓冲区
<+9>:读6个数字
<+14>:将第一个数字和1比较,<+18>相同跳转至<+52>