问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

软件缺陷有哪些表现

发布网友 发布时间:2022-04-19 23:52

我来回答

4个回答

热心网友 时间:2023-08-09 07:24

常见的软件缺陷有以下四种:
第一,栈溢出。就是在栈中申请一段内存,一般是数组或字符串,在对这段内存做操作的时候,错误的写操作可能导致栈中也特殊意义的地址被用户的输入内容所控制。最早发现是一些字符串操作的函数中,比如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上比较难以利用。很多软件采用自己管理内存方法,那么就很可能被利用到。

热心网友 时间:2023-08-09 07:24

您好!常见的软件缺陷有以下四种:第一,栈溢出。就是在栈中申请一段内存,一般是数组或字符串,在对这段内存做操作的时候,错误的写操作可能导致栈中也特殊意义的地址被用户的输入内容所控制。最早发现是一些字符串操作的函数中,比如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上比较难以利用。很多软件采用自己管理内存方法,那么就很可能被利用到。

热心网友 时间:2023-08-09 07:25

在有些环境中不能运行,与其他软件不兼容,功能不稳定,有时可以有时不可以。

热心网友 时间:2023-08-09 07:26

容易被攻击BUG多运行大量消耗内存甚至死机
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...抛物线y=x2-4x+3与x轴交于A、B两点,与y轴交于点C,连AC,将直线AC向右... 抢劫罪的构成要素有哪些 抢劫罪的几个要素 抢劫罪违反了什么法律 转化型抢劫的法律认定 我想问问我的魔兽世界帐号值多少钱? 我的号能卖多少?(魔兽世界) 求评估魔兽世界账号价值,懂得来! 魔兽世界账号问题,我有一个90级的DK,想便宜出售了,直接卖了,想问问大... 魔兽世界号价值评估 软件缺陷包括哪些内容? 严重的软件缺陷的产生主要源自于 软件错误与软件缺陷区别 软件缺陷的定义是什么? 0Pp0 r15手机照片误删后还能找回吗 换只华为mate电池多少钱 华为mate40pro换个电池多少钱? 华为mate30换个电池大概多少钱? oppor15手机相册的照片突然都没了,怎样找回手机中的照片? 冰箱冷冻室不制冷是什么原因? 容声冰箱冷冻室最下面一层不冷冻什么原因? 海尔冰箱冷冻室不冻是什么原因 冰箱冷冻层最上面一层不冷冻,什么原因?怎样解决? 海尔冰箱的冷冻室不结冰是什么原因? 冰箱冷冻不结冰怎么办? 冰箱突然不制冷是什么原因,怎么办 冰箱的冰冻层不冰冻了,是什么原因啊? 西门子冰箱冷冻室不冻? 冰箱的冷冻室冻不住东西是什么原因? 冰箱冷冻室不冷冻怎么回事 软件缺陷的构成 80%的软件错误,往往集中在20%的程序模块.这是一种... 1.软件缺陷和故障是什么,举例说明。 2.软件测试的... "软件缺陷就是软件运行时产生的错误"这句话对吗 应用软件的缺陷有那些? 软件缺陷名词解释 软件失效的机理 软件缺陷的简介 软件缺陷是什么 软件测试BUG的种类和种类定义 为什么说软件缺陷的最大来源是软件需求说明 简述软件缺陷的定义和划分 一条软件缺陷(或者叫Bug)记录都包含了哪些内容?... 软件缺陷分类标准 cnas实验室认证流程是什么? cnas实验室认可 三阶文件有哪些? 关于完成CNAS认可后体系运行与三大体系的关系 CNAS实验室认可规范文件清单 里面有一系列文件,是... CNAS实验室认可认证的申请条件有哪些? 实验室CNAS认可的详细流程有哪些?