CSAPP:BOMB LAB

Posted cupcup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSAPP:BOMB LAB相关的知识,希望对你有一定的参考价值。

Phase 1

objdump -d bomb > bomb.s

先将bomb反汇编并输出到bomb.s,-d参数为全部反汇编,还有一个-t参数可以输出程序的符号表,不过我不知道这个符号表有什么用。
分析main函数的代码
技术图片
结合bomb.c函数
技术图片
我们能比较容易看出main函数前面的汇编代码主要是做一些初始化和调用输入等功能,不是重点,我们直接关注phase_1开始我们的第一个小实验
技术图片
第一行和最后一行是调整栈指针指向位置,接下来看下面 这里调用了一个 string_not_equal 函数,从函数名就可以发现这个函数肯定是判断字符串是否相等的,感兴趣有时间的同学可以去看这个函数的汇编码。
在调用完这个函数之后,程序检查了返回值是否为0,如果为0则跳转不爆炸。那么我们看是哪两个字符串在比较:
%esi和%edi是头两个参数寄存器,我们看看里面放了什么,%esi中放入了内存地址 0x402400 内的字符串,我们打印看看是什么
技术图片
答案很明显了,我们再看看%edi里面放了什么
技术图片
把read_line的返回值放入%edi中,很明显就是我们的输入字符串。
Phase1的答案即为地址0x402400储存的字符串。















以上是关于CSAPP:BOMB LAB的主要内容,如果未能解决你的问题,请参考以下文章

CSAPP Bomb Lab记录

CSAPP Bomb Lab

CSAPP Bomb Lab

[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)

Buffer lab——20145326蔡馨熠

[NTUSTISC pwn LAB 5]rop入门实验