- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
缓冲区溢出防范策略
缓冲区溢出防范策略
缓冲区溢出防范策略
软件是一种典型的以有效的方式操纵数据的书面形式的产品。这些数据可以是文本,图
像,视频或声音;但是,就程序而言,本质上它只是一串数据——通常以字节(8 位数
据)的形式代表某些意义(例如,颜色或文本字符)。当一个程序员申明一个缓冲区时,
非常容易申请一个可能不适合程序后来的指针使用的缓冲区,或者可能会在没有很充分地
验证输入时接受超出缓冲区大小的数据。这就涉及到缓冲区溢出的问题,本手册将围绕这
一问题展开讲解。
初识缓冲区溢出
许多流行的语言,例如C 和C + +,留给程序员很大的自由度——比如让程序员明确申明
缓冲区为一定的大小。那么什么是缓冲区溢出呢?它对我们的软件程序应用会带来什么样
的危害呢?
是什么导致网络应用中的缓冲区溢出和内存泄露?
缓冲区溢出攻击是如何发生的
深入理解缓冲区溢出
了解了缓冲区溢出之后,你是否想更进一步的深入理解它的发生原理呢?目前的软件市场
上这种情况呈现怎样的趋势呢?
如何破坏代码之缓冲区溢出
淹没于缓冲区溢出漏洞
TT 安全技术专题之 “缓冲区溢出防范策略”
Page 2 of 18
缓冲区溢出攻击:它们是如何进行的?
缓冲区溢出的应对策略
现在我们完全理解了缓冲区溢出进行的原理,那么我们该怎样在自己的程序中避免它的发
生呢?还有,我们应该怎样防御来自外界的缓冲区溢出的攻击呢?下面将向你介绍相关的
应对策略。
理解和阻止缓冲区溢出
防止缓冲区溢出攻击的策略
TT 安全技术专题之 “缓冲区溢出防范策略”
Page 3 of 18
是什么导致网络应用中的缓冲区溢出和内存泄露?
问:我们所说的在网络应用程序中的内存泄漏和缓冲区溢出是什么意思呢?你可以用
一个例子说明如何检测它们吗?
答:这两个问题一直困扰着网络应用程序。缓冲区溢出攻击(如Code Red 蠕虫病
毒),会导致重要的数据泄露,危及系统的安全。不过,首先让我们来看看内存泄漏,因
为这将帮助你理解缓冲区溢出。如果程序员为某种类型的变量动态分配了内存空间,而在
程序结束之前又没有释放出这部分空间,此时内存泄露就发生了。这将使系统可用的内存
更少,而重复运行这样内存泄露的程序或函数,则最终会导致系统崩溃或拒绝服务
(denial of service)。下面是一个会导致内存泄露的简单的代码示例:
int main(int argc, char **argv)
{
char * memoryA = new char[10];
memoryA [0] = A;
printf(%cn, memoryA [0]);
}
该程序给数组memoryA 分配了10 个字符的存储空间,但该程序最后并没有显式释放
这些空间。
为了防止内存泄漏,当变量不再使用时,程序员应该总是释放所有动态分配的空间。
对于简单的应用程序,你可以检查你的代码,以确保每一个新的申请内存的操作都有一个
对应的释放操作,或者是采用语言近似配对(language-equivalent pairing)的办法。
而对于更复杂的项目,你需要运行可以检测内存错误的应用程序诊断工具,如Purify 或
LeakTracer。此外,还可以对你的应用程序进行压力测试(stress-test),并监视其内
存的消耗情况。
TT 安全技术专题之 “缓冲区溢出防范策略”
Page 4 of 18
缓冲区溢出可以导致应用程序或系统的崩溃,甚至还会使黑客攻击系统,并启动未经
认可的进程。当程序或进程试图存储超过缓冲区设定大小的数据到缓冲区时,缓冲区溢出
就发生了。例如,黑客故意给出一个比分配给它的内存缓冲区大的数据,以表(form)的
形式将数据提交到网络应用程序
您可能关注的文档
最近下载
- (word完整版)10kV配电安装工程施工方案.docx VIP
- 养老院安全突发事件应急预案.docx VIP
- 【沙利文】全球及中国生物试剂市场独立研究报告.pdf
- 计算机软件著作权成果转化合同8篇.docx VIP
- 论刑法中的多次犯罪-法律(法学)专业论文.docx VIP
- 2022浙ST19壁挂式轻便消防水龙及室内消火栓安装.pdf VIP
- 2025年小升初语文总复习:记叙文阅读附答案解析.doc VIP
- 《GB/T 20882.3-2021淀粉糖质量要求 第3部分:结晶果糖、固体果葡糖》.pdf
- 高中物理带电粒子在电场中的运动典型例题解析.docx VIP
- 公司员工在职证明模板.docx VIP
文档评论(0)