码迷,mamicode.com
首页 > 其他好文 > 详细

缓冲区溢出及gdp调试全过程

时间:2015-04-07 19:40:53      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:gdb   linux   缓冲区溢出   

在Linux下编写一下代码:

#include <stdio.h>
#include <string.h>

char Lbuffer[] = "01234567890123456789========ABCD";

void foo()
{
    char buff[16];
    strcpy (buff, Lbuffer);
}

int main(int argc, char * argv[])
{
    foo();    return 0;
}

编译命令:

gcc -fno-stack-protector -o h h.c


用gdb调试可执行程序h,计算缓冲区起始地址与函数foo返回地址的距离,下面介绍调试过程


缓冲区的起始地址,即变量buffer的起始地址是:0xbfffefd0

技术分享

函数foo返回地址是:0xbfffeffc

技术分享

因此缓冲区起始地址与函数foo返回地址的距离是:

0xbfffeffc - 0xbfffefd0 =1c =28字节

 

下面是完整的调试过程:

技术分享

技术分享

技术分享

 


缓冲区溢出及gdp调试全过程

标签:gdb   linux   缓冲区溢出   

原文地址:http://blog.csdn.net/xumesang/article/details/44924453

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!