最近学习CSAPP,做到对应实验bomblab了,记录一下拆弹过程。
https://github.com/EugeneLiu/translationCSAPP 课程相关地址
bomblab是需要通过反汇编来找线索的实验,总共有6条线索要找,因为不会用gdb所以花了一些时间去学了gdb的使用,现在先做一个1实验试试水。
实验文件首先进来当然是先list看看源代码行不行
虽然这里看不出什么直接的线索,但是可以看出来6个线索应该分别对应phase_1~phase_6,应该只需要在这几个函数内部做文章就可以。那么这次先从1开始
反汇编一下phase_1函数看看
哦豁,看起来就是几个寄存器比较了下值,那不出意外答案应该就在这几个寄存器里,先打个断点运行看看:
123456就随便输了先感觉中奖了,esi里的这句话应该就是答案了。
既然rax是我输入的值,我就先试试能不能直接把这串字符串复制到rax里
看上去好像不行不行就算了,那就从头运行里输入呗
确实1线索就这么找到通过了,有空再继续做后续的2——6拆弹。先记录到这。
网友评论