CSAPP实验四----缓冲区溢出实验bufbomb

Posted FatFat-Whale

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSAPP实验四----缓冲区溢出实验bufbomb相关的知识,希望对你有一定的参考价值。

    在网上关于这个的实验有几个版本,这个版本只有三关,都比较基础,为了不让大家混淆,对本实验做一下说明:

文件说明

    1. bufbomb : 主程序,有四个选项,最常用的是 -t ,后面加自己的姓名等,运行时会根据加入的参数生成cookie,第二关和第三关都会用到。

    2.  sendstring :  翻译程序,实验要求将字符转化成ascii码输入,两位输入,即想输入0也要输入00,1对应01,以此类推。可以通过 sendstring < exploit.txt > exploit_raw..txt 将翻译结果输入到 exploit_raw.txt 文件中。一般如果输入的文件中有地址时都尽量不要打开输出文件,里面会有一些无法显示的字符,尽量用管道或者重定位来进行输入。gdb下可以提通过重定位将 exploit_raw.txt 文件中的内容作为输入,例如 : run -t pangjingyu < exploit_raw.txt

    3. makecookie: 根据输入的字符串输出唯一的cookie,作为标识,bufbomb中含有此程序。以  -t  选项运行bufbomb时要求输入标识,会自动生成并显示对应的cookie。


关卡说明

    1  getbuf()返回时,不返回到test(),而是直接返回到指定的smoke()函数。

    2  getbuf()返回时,不返回到test(),而是直接返回到指定的fizz()函数,而且要求给fizz()函数传入一个黑客cookie值作为参数

    3  getbuf()返回时,不返回到test(),而是直接返回到指定的bang()函数,并且在返回到band()之前,先修改全局变量global_value为你的黑客cookie值。

关卡1

     思路

       目的是当getbuf()函数返回时不是到test(),而是smoke()。所以要在返回时更改getbuf()ebp+4的位置的返回地址。而该处地址可以通过给其输入一个超长的字数串来更改。

以上是关于CSAPP实验四----缓冲区溢出实验bufbomb的主要内容,如果未能解决你的问题,请参考以下文章

CSAPP实验三:缓冲区溢出炸弹(Buflab)

CSAPP实验三:缓冲区溢出炸弹(Buflab)

CSAPP实验三:缓冲区溢出炸弹(Buflab)

CSAPP实验三:缓冲区溢出炸弹(Buflab)

CSAPP lab3 bufbomb-缓冲区溢出攻击实验

CSAPP 3e: Attack Lab