Phase1
使用环境
Ubuntu
解题步骤
按照昨天的步骤,首先得到Phase1的汇编代码
输入命令 objdump -d bomb>aaa.txt
那会将此程序的汇编代码写入到aaa.txt文件中,打开查看Phase1的汇编代码。
可以从汇编代码中看到,将0x804a124中的内容mov到0x4(%esp),读取输入的字符串放入%eax,在call字符串比较函数中进行比较,当相等的时候炸弹解除。
所以需要找到0x804a124里的内容,这里使用gdb调试器,查看该地址内容
看到字符串内容,将字符串输入,解除炸弹
总结
今天打开虚拟机,直接运行sudo ./bomb出现bash: ./bomb:没有那个文件,到网上找攻略,说是Ubuntu64位环境下因其缺乏相应的32位运行库导致出错,那需要进行安装ia32-libs,那我的是Ubuntu18.04,需要安装lib32z1 lib32ncurses5。进行安装,又出现问题,折腾半天,发现是网络的问题,将虚拟机网络模式改为NAT模式,问题解决。进行安装lib32z1,安装好之后,发现程序可以运行了。
解决二进制拆弹需要很多汇编知识,我对汇编命令还不是很了解,下一步将进行系统学习。
那今天主要还完成了我的中期答辩,针对老师提出的改进意见,我会继续完善我的毕设。