第一范文网 - 专业文章范例文档资料分享平台

C语言源程序的缓冲区溢出漏洞分析及解决方案

来源:用户分享 时间:2021-06-03 本文由软妹界大佬 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

第22卷 第3期沈 阳 化 工 学 院 学 报

JOURNALOFSHENYANGINSTITUTEOFCHEMICALTECHNOLOGY

2008.9

Vol.22 No.3

Sep.2008

文章编号: 1004-4639(2008)03-0265-04

C语言源程序的缓冲区溢出漏洞分析及解决方案

刘 俊, 张 枫

(沈阳化工学院计算机科学与技术学院,辽宁沈阳110142)

摘 要: 着重分析一些存在缓冲区溢出攻击漏洞的C语言函数,介绍具有哪些特点的C函数容易受到缓冲区溢出攻击,并借此更加深入地了解缓冲区溢出攻击机制.探讨了缓冲区溢出攻击程序的结构.最后提出避免缓冲区溢出攻击的方法.该方法从C函数和攻击程序两方面入手,通过避免或正确使用有缓冲区溢出攻击漏洞的C语言函数;了解恶意程序代码的结构识别恶意程序代码,达到避免缓冲区溢出攻击的目的.关键词: 缓冲区; 溢出; 安全攻击

中图分类号: TP393108 文献标识码: A

缓冲区溢出攻击一直以来都是黑客攻击的主要手段,其原因很大程度上取决于C或C++程序中的许多存在缓冲区溢出漏洞的函数.这些漏洞导致缓冲区溢出相对于其他攻击方式容易实现.缓冲区溢出攻击,轻者可导致计算机系统的混乱,重起或死机,更加严重的会使攻击者有机会得到被攻击主机的超级权限,从而控制主机,执行一些破坏行为.如:偷取重要资料,查看内部保密信息,篡改重要文件,删除有用的数据等等.但由于攻击者取得了被攻击主机的超级权限,他可以删除这台主机活动日志中的记录,使得他能够长期控制这台主机而且还不会被机主发现.其后果非常严重.研究过的相关问题未从C函数的细节剖析C语言的缓冲区溢出机制.本文借C语言中一些不安全的库函数的研究,从更细化方面来深入地说明缓冲区溢出机制的原理,并就避免缓冲区溢出攻击提出一些建议和意见.

[1]

存低地址到高地址依次为:代码段,数据段,堆栈段.其中代码段顾名思义存放的是程序)))机器码和一些只读数据;数据段存放的则是程序中的静态数据;堆栈段存放的是程序中的动态数据,包括一些局部变量,函数中传递的参数等[2].缓冲区溢出就是利用程序在内存堆栈段的溢出来实现的.堆栈的增长方向与内存的方向相反.栈底是内存的高端,栈顶则是内存的低端.栈底指针是不会改变的,出入栈时都是从栈顶进行,即栈顶指针在变化,满足栈的后进先出原则.

当一个函数被调用时,栈中的变化如下:首先将参数入栈;其次是指令寄存器中的EIP作为函数返回地址入栈;然后将基址寄存器中的EBP入栈,最后将所调函数中的局部变量入栈,同时将栈顶指针减去局部变量所用的空间作为新的栈顶[2].以下的代码1:主函数main调用函数function并造成数组越界的过程[3].

#include<stdio1h>#include<string1h>voidfunction(char*str){

charbuffer[1]; strcpy(buffer,str);

1 C函数的分析

111 C语言中函数的存储及执行

函数在内存中的存储,大致分为三段.由内

收稿日期: 2007-05-07

作者简介: 刘俊(1971-),男,辽宁沈阳人,副教授,硕士,主要从事计算机网络方面的研究.

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新经管营销C语言源程序的缓冲区溢出漏洞分析及解决方案全文阅读和word下载服务。

C语言源程序的缓冲区溢出漏洞分析及解决方案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1209853.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top