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

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

ID:19576489

大小:63.00 KB

页数:14页

时间:2018-10-03

如何编写自己的缓冲区溢出利用程序_第1页
如何编写自己的缓冲区溢出利用程序_第2页
如何编写自己的缓冲区溢出利用程序_第3页
如何编写自己的缓冲区溢出利用程序_第4页
如何编写自己的缓冲区溢出利用程序_第5页
资源描述:

《如何编写自己的缓冲区溢出利用程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、如何编写自己的缓冲区溢出利用程序?作者:黑猫(virtualcat@hotmail.com)[文章出自:www.fanqiang.com]内容: 本文主要讲解有关Buffer Overflow的原理, 以及结合实战范例介绍Linux和Solaris下的漏洞利用.      本文并不介绍如何编写shell code.要求: 读者要有一点C和汇编语言基础.目标: 希望本文能够尽量做到通熟易懂,使得稍有计算机基础知识的朋友看后能够亲自动手写自己的Exploit      如果你觉得自己对这些都懂了, 就请不要再往下看了.                      

2、    第一部份    概述篇1. Buffer overflow是如何产生的?    所谓Buffer overflow, 中文译为缓冲区溢出. 顾名思意, 就是说所用的缓冲区太小了, 以至装不下    那么多的东西, 多出来的东西跑出来了. 就好象是水缸装不了那么多的水, 硬倒太多会溢出来一样;)    那么, 在编程过程中为什么要用到buffer(缓冲区)呢? 简单的回答就是做为数据处理的中转站.2. UNIX下C语言函数调用的机制及缓冲区溢出的利用.   1) 进程在内存中的影像.      我们假设现在有一个程序, 它的函数调用顺序如下.     

3、 main(...) -> func_1(...) -> func_2(...) -> func_3(...)      即: 主函数main调用函数func_1; 函数func_1调用函数func_2; 函数func_2调用函数func_3      当程序被操作系统调入内存运行, 其相对应的进程在内存中的影像如下图所示.        (内存高址)        +--------------------------------------+        

4、             ......                   

5、  ... 省略了

6、一些我们不需要关心的区        +--------------------------------------+        

7、  env strings (环境变量字串)          

8、         +--------------------------------------+          

9、  argv strings (命令行字串)           

10、           +--------------------------------------+            

11、  env pointers (环境变

12、量指针)         

13、    SHELL的环境变量和命令行参数保存区        +--------------------------------------+    /        

14、  argv pointers (命令行参数指针)      

15、   /        +--------------------------------------+  /        

16、  argc (命令行参数个数)               

17、 /        +--------------------------------------+     

18、   

19、            main 函数的栈帧           

20、         +--------------------------------------+          

21、            func_1 函数的栈帧         

22、           +--------------------------------------+            

23、            func_2 函数的栈帧         

24、             +---------------------------------

25、-----+              

26、            func_3 函数的栈帧         

27、      Stack (栈)        +......................................+      /        

28、                                      

29、     /                      ......                        /        

30、                                      

31、 

32、  /        +..............

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。