首页 > 其他 > 详细

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

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

在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调试全过程

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!