免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: tyc611
打印 上一主题 下一主题

[转]缓冲区溢出的原理和实践 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-02-03 11:44 |只看该作者
原帖由 小雨加雪 于 2007-2-2 12:52 发表于 9楼  
Phrack是个不错的网站,可惜暂时关闭了。这文章是楼主翻译的吗?

不是了,没那功夫,呵呵,标题已经说了是转载的

论坛徽章:
0
12 [报告]
发表于 2007-02-05 14:24 |只看该作者
不错的技术专题。支持
obeey 该用户已被删除
13 [报告]
发表于 2007-09-27 16:10 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
14 [报告]
发表于 2007-09-27 22:44 |只看该作者

深入剖析编译器安全检查机制

深入剖析编译器安全检查机制

也放一个

Compiler Security Check.pdf

184.26 KB, 下载次数: 179

论坛徽章:
0
15 [报告]
发表于 2007-09-27 23:18 |只看该作者
原帖由 prolj 于 2007-9-27 22:44 发表
深入剖析编译器安全检查机制

也放一个


Microsoft 搞的这个 cookie 技术似乎还是有些用处

论坛徽章:
0
16 [报告]
发表于 2007-09-28 10:26 |只看该作者

缓冲区溢出光速入门.pdf

这个有点专业,我还有更简单的,扫盲入门级的。
缓冲区溢出光速入门.pdf

缓冲区溢出光速入门.pdf

244.88 KB, 下载次数: 5316

论坛徽章:
0
17 [报告]
发表于 2007-09-28 11:50 |只看该作者
大量新技术的出现,令溢出越来越难了,gcc 4 加上2.6内核,简直就是不留余地。

ps: phrack数月前又恢复了

论坛徽章:
0
18 [报告]
发表于 2008-06-17 06:59 |只看该作者
ddddddddddddd

论坛徽章:
0
19 [报告]
发表于 2008-06-19 12:57 |只看该作者
写了一个缓冲区溢出,不过有问题,能指点一下吗,谢谢

#include "stdio.h"

int shellcode()
{
     int value = 0,i;
     unsigned int *s =  &value;

     printf("address of value: %x\n", &value);
     printf("Overflow Successful!\n");

     __asm__(
          "movl $0x80484e1,4( %ebp )"   //0x80484e1是call test 后的代码地址,此处修改后就可以跳转到test()          后的语句执行
/*
          "movl $0x8f4390,44( %ebp )"   如果 不加这句会出现段错误(加了也错 。。。)加这句是因为我觉得会出现段错误是让他进入shellcode,并没有用call,没有构建环境,但是却在shellcode内ret了,所以我想模仿call:push eip,
不知道该怎么改,谢谢
*/
          );
     return 0;
}

int test()
{
     int i;
     unsigned int stack[10];

     printf("address of stack%x\n", &stack);
     
     for (i = 0; i < 10; i++)
          stack[i] = 0;

     for (i = 0; i < 20; i++)
     {
          printf("&stack[ %d ] = %x\n", i,stack[i]);
     }

     stack[12] = 0x80483f4;    //这个是反汇编后查到的shellcode的地址(每个 机子可能不同)

     return 0;
}

int main()
{
     int value = 0;

     printf("address of value: %x\n", &value);
     test();
     printf("Overflow Failed\n");

     return 0;
}


执行结果:
address of value: bfb618b0
address of stackbfb6185c
&stack[ 0 ] = 0
&stack[ 1 ] = 0
&stack[ 2 ] = 0
&stack[ 3 ] = 0
&stack[ 4 ] = 0
&stack[ 5 ] = 0
&stack[ 6 ] = 0
&stack[ 7 ] = 0
&stack[ 8 ] = 0
&stack[ 9 ] = 0
&stack[ 10 ] = a
&stack[ 11 ] = bfb618b8
&stack[ 12 ] = 80484e1
&stack[ 13 ] = 80485d0
&stack[ 14 ] = bfb618b0
&stack[ 15 ] = bfb618c8
&stack[ 16 ] = 8048529
&stack[ 17 ] = 90a6c5
&stack[ 18 ] = bfb6195c
&stack[ 19 ] = bfb618c8
address of value: bfb61880
Overflow Successful!
Overflow Failed
段错误


问题如程序中注释所示,谢谢。

论坛徽章:
0
20 [报告]
发表于 2010-11-08 19:00 |只看该作者
很经典
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP