文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发数据结构Windows 2000缓冲区溢出技术原理
精品推荐
特别推荐
·网游外挂编写完全攻略
·开发WDM型的USB设备驱动程序
·数据库设计范式深入浅出
·理解软件保护技术之序列号方式
·大型网站必鉴:分销渠道的结构
·你的代码真的很健壮吗
·利用HOOK拦截封包原理
·四种网络游戏外挂的设计方法
·程序语言效率比较
·五子棋算法
·正则表达式从入门到精通
·SQL Server不能启动的常见故障
·Windows应用程序设计的基本术语
·软件本地化与汉化
·Windows中断编程
·windows nt 4.0中文版的开机过程
热点TOP10
·网游外挂编写完全攻略
·兵之利器 软件开发辅助工具纵览
·开发WDM型的USB设备驱动程序
·DCOM揭秘之六
·VS2008 第一次安装心得及使用
·游戏外挂设计技术探讨
·《数据结构》试题下载2004
·饺子馆的物流故事之二——供应链视角下的缺货及品类管理
·代码静态分析工具PC-LINT安装配置
·使用BHO定制你的IE浏览器
·原始套接字透析之Raw Socket基础
·基于CS模式的Winsock网络通讯程序
·程序语言效率比较
·《Windows程序设计》读书笔记之六
·四种网络游戏外挂的设计方法
·用CVSNT与WINCVS实现CVS的架设
·利用HOOK拦截封包原理
·简单对象访问协议(SOAP)初级指南
·带你全面了解数据库应用系统的开发步骤
·UML业务建模实例分析

Windows 2000缓冲区溢出技术原理

日期:2007年5月3日 作者: 查看:[大字体 中字体 小字体]



  面向初学者的,进行详细分析的缓冲溢出入门文章还是很少(我还没有看到),所以我下决心写了这篇文章,从C的局部变量分配以及它和堆栈的关系、返回地址和堆栈的关系、局部变量和返回地址以及堆栈的关系开始写起,并在讲述完原理后进行简单的应用,使理论和应用相结合,
以给广大初学缓冲溢出的朋友一点小小的帮助,本文还是具有典型性的,通过本文的学习,可以让我们从一个普通的C程序员,了解到更加底层的技术,本文虽是面向初学者(指初学缓冲溢出,而不是初学C语言),作者假定你(读者)已经是一位熟练的C程序员,并且了解一些Asm编程技术。我也是刚学缓冲区溢出不久,这是我第一次写溢出技术,所以难免有错误的地方,还请大家指正,在ipxodi和袁哥的文章中我学到了很多东西,但ipxodi和袁哥和文章比较深比较专业,初学者学习起来有些困难,特别我又是非计算机专业的(我和绿盟的小四哥一样是电脑会计专业的,向小四哥学习,呵呵!).在这里把我学习时的一点理解,一点经验介绍给大家,希望对广大学习缓冲溢出的朋友有所帮助!

  一、存储分配,局部内存变量,堆栈和函数调用

  1、首先写一个简单的C字符串拷贝程序

//test.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void overflow(void)
{
 char buf[10];
 strcpy(buf,"aaaaaaaaaa");

}//end overflow

int main(void)
{
 overflow();
 return 0;
}//end main
  2、按F11进入"Step into"调试模式,其实只需要留意对我们研究和学习有用的汇编程序段,如下:

1: #include <stdio.h>
2: #include <stdlib.h>
3: #include <string.h>
4:
5: void overflow(void)
6: {
00401020 55 push ebp
00401021 8B EC mov ebp,esp
00401023 83 EC 4C sub esp,4Ch
00401026 53 push ebx
00401027 56 push esi
00401028 57 push edi
00401029 8D 7D B4 lea edi,[ebp-4Ch]
0040102C B9 13 00 00 00 mov ecx,13h
00401031 B8 CC CC CC CC mov eax,0CCCCCCCCh
00401036 F3 AB rep stos dword ptr [edi]
7: char buf[10];
8: strcpy(buf,"aaaaaaaaaa");
00401038 68 1C F0 41 00 push offset string "aaaaaaaaaa" (0041f01c)
0040103D 8D 45 F4 lea eax,[ebp-0Ch]
00401040 50 push eax
00401041 E8 6A 00 00 00 call strcpy (004010b0)
00401046 83 C4 08 add esp,8
9:
10: }//end overflow
00401049 5F pop edi
0040104A 5E pop esi
0040104B 5B pop ebx
0040104C 83 C4 4C add esp,4Ch
0040104F 3B EC cmp ebp,esp
00401051 E8 4A 01 00 00 call __chkesp (004011a0)
00401056 8B E5 mov esp,ebp
00401058 5D pop ebp
00401059 C3 ret
11:
12: int main(void)
13: {
00401070 55 push ebp
00401071 8B EC mov ebp,esp
00401073 83 EC 40 sub esp,40h
00401076 53 push ebx
00401077 56 push esi
00401078 57 push edi
00401079 8D 7D C0 lea edi,[ebp-40h]
0040107C B9 10 00 00 00 mov ecx,10h
00401081 B8 CC CC CC CC mov eax,0CCCCCCCCh
00401086 F3 AB rep stos dword ptr [edi]
14: overflow();
00401088 E8 7D FF FF FF call @ILT+5(overflow) (0040100a)
15: return 0;
0040108D 33 C0 xor eax,eax
16: }//end main
0040108F 5F pop edi
00401090 5E pop esi
00401091 5B pop ebx
00401092 83 C4 40 add esp,40h
00401095 3B EC cmp ebp,esp
00401097 E8 04 01 00 00 call __chkesp (004011a0)
0040109C 8B E5 mov esp,ebp
0040109E 5D pop ebp
0040109F C3 ret
  3、返回VStudio IDE,在调用overflow函数处设置断点,再次选择"Run"菜单项,这时程序在调用overflow前停止。(下面的学习你需要不断地翻看上面的Asm程序段)现在看一下在调用overflow之前的几个需要注意的参数,把它们加入"Watch"窗口。


[1] [2] [3] [4] [5] [6] 下一页 




上一篇:正则表达式从入门到精通

下一篇:利用API在Windows下创建进程和线程

Windows 2000缓冲区溢出技术原理 相关文章:
·Windows Vista震撼1600X1200高清壁纸
·WindowsXP超级技巧
·最全面的WindowsXP修改大全
·Windows XP的20个超级实用技巧大全
·让Windows XP系统快10倍
·Windows Vista Ultimate中文旗舰版下载+简单破解(支持迅雷HTTP & BT)
·图文详解 Windows 2003服务器集群安装
·破解windowsXP,window2000的开机密码
·做QQ高手,你应该了解的17种QQ技术
·Windows XP鲜为人知的N招实用技巧
Windows 2000缓冲区溢出技术原理 相关软件:
·Windows主题70合一典藏版
·Windows 2003 Server 简体中文企业版(免激活)ISO
·Windows 98简体中文第二版
·Windows XP Service Pack 2简体中文版
·如何加固Windows XP 主机安全
·Windows环境下32位汇编语言程序设计
·Windows XP Home Edition SP2简体中文版
·电脑安装与维修实用技术1
·番茄花园 Windows 2000 3 合 1 最终版
·UML面向对象建模技术 csf 视频教程

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot