yuhui-zh15 / BufferBomb

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#BufBomb CMU

##文件组织
###hex文件夹下为带详细注释的输入文本文件
###raw文件夹下为用hex2raw生成的程序可直接读入的文件
###bin文件夹下为作业说明与可执行文件

##解题思路:
###0-Candle:通过缓冲区溢出直接修改return address
###1-Sparkler:通过缓冲区溢出直接修改return address,同时注意栈中调用参数的位置
###2-Firecracker:将汇编代码编译为机器码存入缓冲区,通过缓冲区溢出修改return address为之前写入的机器码位置
###3-Dynamite:将汇编代码编译为机器码存入缓冲区,通过缓冲区溢出修改return address为之前写入的机器码位置,但要注意由于缓冲区溢出会破坏%ebp,故需要在汇编代码中恢复%ebp
###4-Nitroglycerin:将汇编代码编译为机器码存入缓冲区末尾,机器码之前的缓冲区使用0x90(NOP指令,no operation)占位,通过缓冲区溢出修改return address为缓冲区差不多中间的位置(这样即使缓冲区内存有部分位移由于NOP指令占位也可执行到机器码部分),但要注意由于缓冲区溢出会破坏%ebp,故需要在汇编代码中恢复%ebp

##测试环境:
###Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-53-generic x86_64)

##作者:
###张钰晖
###学号:2015011372
###Email:yuhui-zh15@mails.tsinghua.edu.cn
###Tel:185-3888-2881

About