空指针引用缺陷充分性检测技术研究

来源 :北京邮电大学 | 被引量 : 3次 | 上传用户:wangshaohua11
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
可信软件的相关研究是软件工程领域的一个焦点,如何在软件的开发过程或测试阶段中尽早的发现并消除掉软件缺陷,是构建可信软件的重要途径。软件代码中的缺陷是导致软件故障及漏洞的主要原因,其中静态分析技术是检测代码级缺陷的一种有效方法,但静态分析的结果不可能既是可靠的又是完备的,导致静态缺陷检测出现漏报或误报。对某些高可信软件,需要达到缺陷的零漏报,因此对缺陷进行充分检测的研究非常具有实用价值。空指针引用是一种具有代表性的代码级缺陷,也一直是缺陷检测领域的研究热点之一。虽然目前对空指针引用缺陷检测已有许多相关研究,但对空指针引用进行充分测试依然是难以达到的一个目标。因此,本文对可靠的数据流分析、空指针引用缺陷充分检测中的一系列关键技术问题进行了深入研究,主要工作包括如下内容:(1)可寻址表达式的充分识别。本文将C程序中的可寻址表达式作为静态分析的基本对象,并介绍了基于抽象语法树识别可寻址表达式的方法。首先,归纳总结出了C程序中内存对象与可寻址表达式的语法规则,以及可寻址表达式与抽象语法树上节点的映射关系;其次,介绍了可寻址表达式的命名规则、类型推导及作用域推导规则;最后,介绍了基于抽象语法树充分识别可寻址表达式的方法。(2)应用基于区域的符号化三值逻辑(Region-based Symbolic Three-Valued Logic, RSTVL)描述内存对象的存储状态。RSTVL使用抽象的区域模拟内存对象所分配的内存块,用区域上的符号表达式表示内存对象的取值,用区间域表示符号表达式中的每个符号的取值,并进而将对可寻址表达式的各种操作映射为在区域上的操作。RSTVL作为一种可靠的抽象内存模型,能够描述C程序运行时内存中数据结构的形态信息与内存对象的存储状态,以及可寻址表达式间的各种关联,包括指向关系、层次关系与取值逻辑关系。(3)基于RSTVL的数据流分析。本文提出了一种基于RSTVL的流敏感、域敏感的过程内数据流分析方法,该方法将对可寻址表达式的操作映射到对区域上的操作,可满足对值信息与地址信息的一并分析,进而实现在一个统一的框架下进行数据流分析、指针分析与形态分析。本文重点介绍了对赋值语句、分支语句、循环语句的迁移操作处理,并结合抽象解释理论证明了基于RSTVL的数据流分析对这三类语句迁移操作的可靠性,进而证明了本文数据流分析方法的可靠性。(4)基于符号化函数摘要的过程间数据流分析。本文提出了一种基于符号化函数摘要的域敏感、上下文敏感的过程间数据流分析方法,该方法首先基于过程内数据流分析的结果,应用基于RSTVL描述的符号化函数摘要描述函数的行为,在函数调用点基于调用点处由RSTVL描述的上下文信息对符号化函数摘要进行实例化,实现域敏感、上下文敏感的过程间数据流分析。(5)空指针引用缺陷的充分检测。基于可寻址表达式充分识别的结果,介绍基于抽象语法树充分识别出被引用的指针的方法;为空指针引用缺陷检测的需要,提出了指针指向属性的概念,及基于指针指向属性的指针引用判定规则;为实现过程间空指针引用的缺陷检测,将指向属性未知的指针所关联的外部指针添加到函数摘要的空指针引用缺陷的前置约束中,在函数调用点,基于由RSTVL描述的调用点处上下文信息,获得前置约束中的指针对应的调用点处的空指针引用缺陷检测对象,基于指针引用判定规则实现对过程间空指针引用缺陷的检测。综上所述,本文针对C程序的数据流分析与空指针引用缺陷检测的几个关键性问题进行了研究,取得了一定的理论研究成果。上述技术已经在缺陷检测工具DTSC RSTVL中实现,大量的测试结果表明该工具能够实现对C程序中的空指针引用缺陷实现充分检测。
其他文献
介绍高建东教授治疗慢性肾小球肾炎以及慢性肾衷的临床诊治经验。高教授认为,慢性肾小球肾炎风邪外袭证基本病机为肺卫气虚,腠理失固,营卫不和,治宜益气固表,调和营卫,凉血止血。临
远行的飞禽靠什么辨别方向,始终是人们百思不得其解的谜。例如有一种北极燕鸥,它们夏季出生在北极圈10°以内的地方,出生后6个星期就离家南飞,一直飞到远在1.8万km外的南极浮
<正>课程改革实验是一项庞大的基础教育科研课题。在实验过程中,北海市教育科学研究所坚持全程参与,以教育科研为先导,边实验,边总结,边推广,将重点课题研究与广大教师的教改
目的探讨青年OSAHS患者缺氧程度与认知功能的相关性。方法选取OSAHS患者63例,年龄18~44岁。根据OSAHS患者的低氧血症程度,将患者分为轻度组20例(最低SaO2≥85%),中度组24例(最低SaO26
目前电冰箱的社会保有量已达1.2亿台,洗衣机1.7亿台,电视机4亿台,电脑1600万台。20世纪80年代末或90年代初摧毁入使用的电冰箱、洗衣机、电视机绝大多数到了报废期。电脑产品由
培养中学生的数学思维是中学数学教学的重要任务,数学思维可以有效地提升中学生运用数学文字、符号的能力,对于中学生综合素质的提升也具有重要意义。在中学数学教学中加强对
最近,英国《自然》杂志上公布了一只12岁拳师狗的完全基因组图谱。对这一图谱的研究,将有助于人类了解一些特定基因的演化过程,可以用于寻找一些人类疾病的致病基因,促进对人、狗
随着多媒体通信技术的发展,海量的多媒体数据逐渐成为信息处理与传输的主要对象,尤其是视频图像数据。在各个应用领域,每天都有数十亿比特的视频数据产生;在许多特定的应用领
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield