自己记录以下做bomblab的过程
phase 1
通过main.c函数得知
主程序执行一个phase_1函数,其中input就是自己输入的密码(字符串)
通过执行反汇编:**objdump -d ./bomb ** 得到main函数的汇编代码。
查看汇编代码,找到调用phase_1函数的地方
再找到phase_1函数
查看phase_1代码,发现调用了一个strings_not_equal函数,应该是将输入的字符串与源字符串比较,若不想等则调用explode_bomb使炸弹爆炸
在调用函数的前一行,mov $0x402400, %esi 将0x402400地址中的数保存在esi作为下一个函数的参数,猜测这应该就是比较数。用gdb打印内存数据:print(char) 0x402400*得到显示结果
“Border relation with Canada have nerver been better”
Phase 2