文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C/C++编写自己的缓冲区溢出利用程序
精品推荐
特别推荐
·C语言编程易犯毛病集合
·C语言编程常见问题解答(目录)
·C#程序开发中的常用函数汇总
·C#数据库操作的三种经典用法
·C/C++笔试、面试题目大汇总
·Beej的网络socket编程指南
·socket编程原理
·C语言的常用库函数使用方法分析及用途
·在C语言中如何处理时间和日期
·C++设计模式之Singleton
·VC++动态链接库编程之MFC扩展 DLL
·TCP/IP网络重复型服务器通信软件的设计
·DirectX游戏开发入门
·经典与现代的结合:在MFC中集成RAD .NET框架
·Windows API-GDI入门基础知识详解(2)
·Visual C++ 入门精解
·C#基础概念二十五问
·用C#实现pdf文件的完整性验证
·成为嵌入式程序员应知道的0x10个问题
·TCP/IP编程实现远程文件传输
热点TOP10
·C#编写的windows计算器-源代码
·C#基础概念二十五问
·Beej的网络socket编程指南
·socket编程原理
·TCP/IP编程实现远程文件传输
·C/C++笔试、面试题目大汇总
·如何用C#编写文本编辑器
·C语言图形函数
·C# GridView 排序及分页
·C#源码读取excel数据到程序中-SQL SERVER-到dataset中
·Windows下C语言网络编程快速入门
·C语言编程常见问题解答(目录)
·c#的random shuffle
·扑克牌的发牌程序(用伪随机数实现)
·学生成绩管理系统实习
·C语言的常用库函数使用方法分析及用途
·改编 的 C版 职工管理系统
·C语言程序设计基础讲座之函数
·飞机订票系统设计
·Visual C++ 实现数字化图像的分割

编写自己的缓冲区溢出利用程序

日期:2004年3月20日 作者:清风网络学院 查看:[大字体 中字体 小字体]


内容: 本文主要讲解有关Buffer Overflow的原理, 以及结合实战范例介绍Linux和Solaris下的漏洞利用. 
本文并不介绍如何编写shell code. 

要求: 读者要有一点C和汇编语言基础. 

目标: 希望本文能够尽量做到通熟易懂,使得稍有计算机基础知识的朋友看后能够亲自动手写自己的EXPloit 
如果你觉得自己对这些都懂了, 就请不要再往下看了. 


第一部份 概述篇 

1. Buffer overflow是如何产生的? 
所谓Buffer overflow, 中文译为缓冲区溢出. 顾名思意, 就是说所用的缓冲区太小了, 以至装不下 
那么多的东西, 多出来的东西跑出来了. 就好象是水缸装不了那么多的水, 硬倒太多会溢出来一样;) 
那么, 在编程过程中为什么要用到buffer(缓冲区)呢? 简单的回答就是做为数据处理的中转站. 

2. UNIX下C语言函数调用的机制及缓冲区溢出的利用. 
1) 进程在内存中的影像. 
我们假设现在有一个程序, 它的函数调用顺序如下. 
main(...) -> func_1(...) -> func_2(...) -> func_3(...) 
即: 主函数main调用函数func_1; 函数func_1调用函数func_2; 函数func_2调用函数func_3 

当程序被操作系统调入内存运行, 其相对应的进程在内存中的影像如下图所示. 

(内存高址) 
+--------------------------------------+ 
| ...... | ... 省略了一些我们不需要关心的区 
+--------------------------------------+ 
| env strings (环境变量字串) | \ 
+--------------------------------------+ \ 
| argv strings (命令行字串) | \ 
+--------------------------------------+ \ 
| env pointers (环境变量指针) | SHELL的环境变量和命令行参数保存区 
+--------------------------------------+ / 
| argv pointers (命令行参数指针) | / 
+--------------------------------------+ / 
| argc (命令行参数个数) | / 
+--------------------------------------+ 
| main 函数的栈帧 | \ 
+--------------------------------------+ \ 
| func_1 函数的栈帧 | \ 
+--------------------------------------+ \ 
| func_2 函数的栈帧 | \ 
+--------------------------------------+ \ 
| func_3 函数的栈帧 | Stack (栈) 
+......................................+ / 
| | / 
...... / 
| | / 
+......................................+ / 
| Heap (堆) | / 
+--------------------------------------+ 
| Uninitialised (BSS) data | 非初始化数据(BSS)区 
+--------------------------------------+ 
| Initialised data | 初始化数据区 
+--------------------------------------+ 

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] 下一页 




上一篇:ollydbg1.08b教学篇

下一篇:ASP中处理#include

编写自己的缓冲区溢出利用程序 相关文章:
·编写自己的缓冲区溢出利用程序
编写自己的缓冲区溢出利用程序 相关软件:

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