软件缺陷有哪些表现

软件缺陷有哪些表现,第1张

常见的软件缺陷有以下四种:

第一,栈溢出。就是在栈中申请一段内存,一般是数组或字符串,在对这段内存做 *** 作的时候,错误的写 *** 作可能导致栈中也特殊意义的地址被用户的输入内容所控制。最早发现是一些字符串 *** 作的函数中,比如strcat,后来又发现在Strncpy如果不正常 *** 作的话也会出现这个问题。最后有一个Windows UNicode处理的函数如果不正常使用也会出现这样的问题。下面介绍的是整数溢出的问题。

整数溢出是多发于的情况,特别是一些加、乘的 *** 作出现在内存前面就要特别注意了。加或者乘出来的数不一定比原先两个数大。还有一个正负数比较的问题,或者是符号扩展的问题。即使现在这个问题仍存在于很多软件中。但是在很多流行软件中已经很少出现了,比如微软的软件、国外大公司的软件。但是在国内软件这个问题依然是很多的。这个问题在JAVA软件中也经常存在。例如银行系统,系统错误处理,把别人帐号上扣掉的金额,一个正的金额加到你的帐号上。

第二, heap overflow。这是现代程序C语言主要申请分配方法,所以他比栈溢出比例大的多。微软做了很多防护措施,所以它利用起来是非常复杂的。尤其是 WindowsXP2之后的版本,比如vista。堆管理主要利用两张表,freelist、lookaside,freelist[0]代表着一些不规则的可以利用的chunk,尤其是比较大的chunk。freelist[1] - freelist[n]代表2的整数次方可以利用的堆中的chunk。利用这样堆溢出的问题,你需要对Windows堆管理非常熟悉。比如有人通过 freelist[0]这个链表成功利用。目前有一个immdbg的程序对这种研究利用是很有帮助的。因为他把堆分配的内容都可以显示出来。对vista 软件的攻击,理论上应该是不存在的。因为vista对堆管理有严格控制,但是有很多软件使用自己的内存管理方法,比如OFFICE,他们自己堆管理方法和内存方法是和vista不一样的,这些方法往往采用教科书的方法或者以前系统的方法,所以他们这些方法是有可能被利用起来。

第三,未初始化的问题。栈上的问题由德国人在06年详细讨论过。头一次压栈的时候,在栈上写需要内容,然后函数退出,导致栈顶上移,有问题的函数压栈时正好利用这段栈空间,如果函数中发现了未初始化问题,比如数组,那么其内容刚好是我们刚写入的内容的栈空间,就可能被利用。先把堆里的大部分内容写成自己需要的内容,未初始问题发生时,比如堆里指针的内容就可能指向我们需要的内容。目前这个问题是大量存在的,OFFICE存在了很多。比如这个月微软补丁,excel那一个补丁里就包括很多这样的问题。你可以对比新旧的OFFICE软件,你发现 OFFICE2007有一些新加的代码就是做初始化工作的。

第四,二次释放或者叫double free问题。内存泄露是现代软件大敌,特别是服务器软件。有很多程序员害怕发生这样的问题,申请内存时总是想释放它,结果释放多了几次,这样也会有安全问题。曾经在linux上的方法很巧妙、经典,但是在目前Windows上比较难以利用。很多软件采用自己管理内存方法,那么就很可能被利用到。

IEEE 1983 of IEEE Standard 729中对软件缺陷作了一个标准的定义:

从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

因此软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的需求。

以前看黑马程序员公开课时候就讲过。

程序员转正申请

尊敬的领导

您好!首先非常感谢您能在百忙之中抽出宝贵的时间来看我的申请。于2011年6月27日非常幸庆地能够成为贵公司的一员,也很高兴能加入目前这个团体,自从入职当日至今已有两个多月,在其期间,在领导和同事的教导及帮助之下,我基本上了解了许多工作的流程,也能很快着手工作上的事情,完成领导安排的任务。

目前,我主要负责的是服务器维护与网站编程这一块,维护网站的正常运营和功能的添加修改。定期清理服务器沉淀的垃圾文件,定期进行各个网站和通达OA的数据备份,以便提高网络的浏览速度和文件的安全。参与网站的维护和管理,设计网站页面布局,调整关键字密度及推广。以便于浏览量的增加和搜索引擎的收录。有时帮忙录制网课、解决同事们电脑的问题、解决公司内部网络问题,以及公司设备使用运作情况。现在在了解和学习ASP编程,通达OA组件功能 *** 作和二次开发,以便日后的升级管理和维护。

在工作过程中,我学到了许多东西,身边的同事、上级的领导,他们每一句话都有可能成为我人生中的一个警钟。在此我接触到许多与我之前未曾了解过的东西,如:ASP编程、通达OA的工作原理、JAVA的工作流实现、以及硬件设备的维修等。我非常珍惜这份工作,所以我一直严格要求自己,每天都认真努力去做好领导布置的每一项任务,在完成过程的同时,也尽力去完善。

我很感谢领导能给我这么一次机会,让我在公司学习和锻炼,经过这段时间的努力,不管是个人经验还是能力,都有所提升。也非常感谢领导们在工作中的指导,让我吸取许多丰富的经验和纠正了许多错误,感谢同事在工作中给予我的帮助和支持!

毕竟我到公司已有一段时间,相信领导也对我有一定的了解,因此我希望能以一名正式员工的身份进行工作,特写此转正申请,恳请领导予以批准。不知我的行为是否正确,如有不对之处,敬请谅解。刚到公司,还有很多不懂得地方,经验阅历不是特别的丰富,在工作当中难免有不足之处。所以以后,不管是我的能力还是性格,处事或是思维上有问题,还往领导能及时地指出,以便于自己努力去纠正和改善,我会以优秀同事做为榜样去提醒自己,争取能成为公司一名优秀的员工,希望能在龙本这个大舞台上展示自己,能为公司奉献自己的一份力量。

网络部:李XX

以上就是关于软件缺陷有哪些表现全部的内容,包括:软件缺陷有哪些表现、简述软件缺陷的定义和划分、程序员的转正申请优缺点和建议怎样写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9361762.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存