空指针解引用论文-傅玉,邓艺,孙晓山,程亮,张阳

空指针解引用论文-傅玉,邓艺,孙晓山,程亮,张阳

导读:本文包含了空指针解引用论文开题报告文献综述及选题提纲参考文献,主要关键词:空指针解引用检测,静态程序分析,二进制程序分析,最弱前置条件

空指针解引用论文文献综述

傅玉,邓艺,孙晓山,程亮,张阳[1](2018)在《面向二进制程序的空指针解引用错误的检测方法》一文中研究指出空指针解引用是C/C++程序中常见的一类程序错误,它可让攻击者旁路安全机制或窥探操作系统敏感信息,一直是计算机安全领域的重要研究课题之一.目前已有很多(自动)分析工具对其进行检测,然而它们都在源代码层面上进行检测.大量的商业软件不公开源代码,因此基于源代码的工具无法对这类软件中空指针解引用进行检测.此外,一些空指针解引用无法在源代码层面检测,因为这些缺陷由编译选项和编译优化不当引入.因此进行基于二进制的空指针解引用检测非常必要.基于二进制的空指针解引用检测的一个优势是可以包含库函数的代码,而基于源代码的分析通常采用人工构造的库函数摘要,从而影响检测的准确性和召回率.该文首次提出并实现了面向二进制程序的空指针解引用静态检测工具NPtrChecker,直接接受二进制程序进行分析,并给出代码中出现空指针的来源和解引用的位置以及对应的路径条件.在二进制上进行空指针解引用检测的一个重要难点是二进制程序中缺少指针类型、结构体类型等相关数据类型信息.如果缺乏这类信息,会导致分析结果的准确率大大降低.但是从二进制中恢复类型、数据结构本身是非常困难的问题.针对上述问题,我们提出了一种内存模型,区分来自同一数据结构的不同域的引用,实现了针对空指针解引用检测的域敏感指针分析.为了进一步提高分析的准确率,文章在此基础上设计实现了一套基于函数摘要的上下文敏感的数据流分析算法.此外,工具采用最弱前置条件对数据流分析结果进行验证,检查从指针来源到解引用点的路径条件是否可以被满足,以降低误报率.我们应用NPtrChecker分析了SPEC2000中的11个程序,总共报告了37个可疑空指针解引用,通过人工确认,其中22个是真实的程序错误.相对于Saturn报告的92个,仅13个为真;LUKE报告的3个,2个为真,而文中的工具检测出了更多的空指针解引用错误,同时保持了较低的误报率.(本文来源于《计算机学报》期刊2018年03期)

董玉坤[2](2016)在《基于属性可靠分析的空指针引用缺陷检测》一文中研究指出为实现基于静态分析技术充分地检测出C程序中的空指针引用缺陷,提出了一种基于属性可靠分析的缺陷检测方法。首先介绍了空指针引用缺陷模式及特征。然后针对空指针引用缺陷的检测特点提出了属性可靠分析理论,并将指针的指向属性描述为一个属性格。通过提出的抽象内存模型,基于给出的每种程序语句上的迁移实现指针指向属性的可靠分析,根据得到的每个被引用指针的指向属性进而实现空指针引用缺陷的检测。通过对五个实际工程的检测结果分析表明,方法可充分检测出C程序的空指针引用缺陷。(本文来源于《计算机工程与应用》期刊2016年22期)

段钊,田聪,段振华[3](2016)在《基于CEGAR的C程序空指针解引用检测》一文中研究指出随着计算机软件规模和复杂度的日益增长,软件系统的可靠性和安全性倍受关注.空指针解引用是程序中常见的一类错误.提出了一种基于反例制导抽象精化CEGAR的C程序空指针解引用检测方法.该方法首先使用线性时序逻辑描述空指针解引用问题,然后通过抽象精化的方法检测待测程序中是否含有空指针解引用错误.为了达到完全自动验证的目标,同时针对空指针解引用问题,研究了该类性质的时序逻辑表达方法,并自动从程序中针对所有的指针变量,形成相应的时序逻辑公式.实验结果表明,所提出的方法在大规模C程序的空指针解引用检测方面有着重要的实际应用价值.(本文来源于《计算机研究与发展》期刊2016年01期)

王锐强,金大海[4](2015)在《软件安全中基于判断逻辑的空指针引用故障检测》一文中研究指出空指针引用故障导致的软件安全问题不断出现,给各个方面带来了极大困扰和损失。文章研究利用静态测试的方法对一类空指针引用故障进行静态检测分析,同时提出一种利用判断逻辑信息进行空指针引用检测的方法。文章首先给出与基于判断逻辑的空指针引用故障相关的一些定义和故障分类。接着,提出使用函数摘要技术提取间接判空点和间接解引用点,定义该函数摘要为函数特征信息和后置约束信息的集合,研究了判断逻辑函数摘要生成和传递的方法。最后,利用有限状态机建立基于判断逻辑的空指针引用故障模型,给出故障模型描述,并利用状态机状态转换和函数摘要完成对此类空指针引用故障的检测。在静态检测工具DTS中实现了文中的方法并且对6个开源Java工程进行了测试,测试结果表明文中方法可以检测出更多的BUG并且同样适用于检测大型软件系统。(本文来源于《信息网络安全》期刊2015年06期)

马森,赵文,习翔宇,王栋伟[5](2015)在《基于值依赖分析的空指针解引用检测》一文中研究指出本文提出了一种基于程序值依赖分析的、路径敏感的空指针解引用检测方法.该方法通过结合数据流分析中的到达定值分析、区间分析及指向分析创建了值依赖分析图,该图刻画了可能产生空指针语句到其解引用语句的值依赖关系.该图中的边采用守卫标注,即描述了相邻点之间的到达条件.为了降低误报率,本文同时提出了一种需求驱动的必然别名算法.由本文所述方法实现的工具展示了良好的实验效果,在10个SPEC2000项目中发现了70余个空指针解引用缺陷,误报率仅为6%左右.(本文来源于《电子学报》期刊2015年04期)

王锐强[6](2014)在《基于判断逻辑的空指针引用模式检测》一文中研究指出空指针引用故障导致的软件安全问题不断出现,给各个方面带来了极大困扰和损失。本文研究利用静态测试的方法对一类空指针引用故障‘进行静态检测分析。本文提出一种利用判断逻辑信息进行空指针引用检测的方法。首先给出与基于判断逻辑的空指针引用故障相关的一些定义和故障分类。接着,提出使用函数摘要技术提取间接判空点和间接解引用点,定义该函数摘要为函数特征信息和后置约束信息的集合,研究了判断逻辑函数摘要生成和传递的方法。最后,利用有限状态机建立基于判断逻辑的空指针引用故障模型,给出故障模型描述,并利用状态机状态转换和函数摘要完成对这类空指针引用故障的检测。本文共分五个部分。第一部分对本论文研究背景和基于判断逻辑的空指针引用故障进行了概述,第二部分介绍了运用函数摘要技术解决过程间判空点和解引用点提取问题,包括判断逻辑函数摘要模型、摘要生成和摘要传递算法,第叁部分进行缺陷模式描述和运用上述摘要实现缺陷检测,第四部分是实验结果及问题分析,第五部分对本文研究总结及下一步研究工作的展望。(本文来源于《北京邮电大学》期刊2014-12-25)

段钊[7](2014)在《基于CEGAR的C程序空指针解引用检测》一文中研究指出随着计算机硬件技术的发展,计算机软件系统的复杂性越来越高,所涉及的代码量越来越大,同时程序中的错误和问题隐患也越来越多。因此,如何提高软件系统的可靠性和安全性已成为计算机软件领域的一个紧迫需求。软件模型检测技术是提高程序可靠性和安全性的重要途径。该技术可以自动化地验证程序是否可以满足一些关键性质。C语言是目前软件领域最为广泛使用的编程语言之一。它的语法规范比较灵活,尤其是对指针的使用,稍微不注意,就会导致程序崩溃。在C程序中,对指针的不正确使用,会带来如内存泄露,指针未初始化、多次释放,以及空指针解引用等问题。本文研究基于CEGAR技术的C程序空指针解引用的检测算法。首先,实现了基于CEGAR的C程序PPTL模型检测算法。在此基础上,通过PPTL公式来描述空指针解引用的特征,进一步检测C程序中是否存在空指针解引用的问题。为了提高验证的自动化水平,本文通过对C源代码进行扫描,对所涉及到的指针自动产生待验证的PPTL性质,避免了手动在C程序中加入断言所带来的麻烦。在以上方法的基础上,实现了基于CEGAR的C程序PPTL模型检测检测工具:PPTLChecker。该工具可以支持PPTL公式描述的程序性质的验证,实现了对程序中空指针解引用问题的自动化检测功能。实验结果表明,PPTLChecker在C程序空指针解引用检测中有着实际的应用价值。(本文来源于《西安电子科技大学》期刊2014-11-15)

白杨,王瑀屏[8](2014)在《一种多敏感空指针引用错误的静态检测方法》一文中研究指出空指针引用错误是一种常见的、难以发现和避免的程序错误。针对该错误,结合传统静态分析方法和符号执行方法,提出一种过程内流敏感、路径敏感和过程间上下文敏感的多敏感静态分析方法。对全局指针、局部指针以及函数的指针类参数进行建模,对指针指向地址进行简化分类。在函数间传递指针的指向状态,在函数内遍历路径,使用约束求解的方式判定路径可达性,当函数分析结束后,在退出点进行指针状态信息合并,以减少漏报和误报。在此基础上,使用人工标注错误触发条件的方式进一步提高分析效率,减少漏报和误报。实验证明,该方法能够高效地检测出各类空指针引用错误。(本文来源于《中国科技论文》期刊2014年10期)

董玉坤,宫云战,金大海[9](2014)在《基于区域内存模型的空指针引用缺陷检测》一文中研究指出为了实现对C程序中空指针引用的充分检测,本文提出了一种基于区域内存模型的空指针引用缺陷检测方法.首先,提出了基于区域的符号化叁值逻辑(Region-based Symbolic Three-Valued Logic,RSTVL),RSTVL能够描述C程序运行时内存中数据结构的形态信息与变量的存储状态,以及可寻址表达式间的各种关系;其次,给出了基于抽象语法树与函数摘要识别被引用指针方法;最后,结合基于RSTVL的数据流分析结果,将对被引用指针的检测转换为对相应区域的检测,给出了空指针引用缺陷检测的方法,通过函数摘要实现过程间的空指针引用缺陷检测.对比实验结果表明,本文方法在保证一定检测准确率的前提下,能够极大的减少空指针引用缺陷的漏报.(本文来源于《电子学报》期刊2014年09期)

董玉坤[10](2014)在《空指针引用缺陷充分性检测技术研究》一文中研究指出可信软件的相关研究是软件工程领域的一个焦点,如何在软件的开发过程或测试阶段中尽早的发现并消除掉软件缺陷,是构建可信软件的重要途径。软件代码中的缺陷是导致软件故障及漏洞的主要原因,其中静态分析技术是检测代码级缺陷的一种有效方法,但静态分析的结果不可能既是可靠的又是完备的,导致静态缺陷检测出现漏报或误报。对某些高可信软件,需要达到缺陷的零漏报,因此对缺陷进行充分检测的研究非常具有实用价值。空指针引用是一种具有代表性的代码级缺陷,也一直是缺陷检测领域的研究热点之一。虽然目前对空指针引用缺陷检测已有许多相关研究,但对空指针引用进行充分测试依然是难以达到的一个目标。因此,本文对可靠的数据流分析、空指针引用缺陷充分检测中的一系列关键技术问题进行了深入研究,主要工作包括如下内容:(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程序中的空指针引用缺陷实现充分检测。(本文来源于《北京邮电大学》期刊2014-05-04)

空指针解引用论文开题报告

(1)论文研究背景及目的

此处内容要求:

首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。

写法范例:

为实现基于静态分析技术充分地检测出C程序中的空指针引用缺陷,提出了一种基于属性可靠分析的缺陷检测方法。首先介绍了空指针引用缺陷模式及特征。然后针对空指针引用缺陷的检测特点提出了属性可靠分析理论,并将指针的指向属性描述为一个属性格。通过提出的抽象内存模型,基于给出的每种程序语句上的迁移实现指针指向属性的可靠分析,根据得到的每个被引用指针的指向属性进而实现空指针引用缺陷的检测。通过对五个实际工程的检测结果分析表明,方法可充分检测出C程序的空指针引用缺陷。

(2)本文研究方法

调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。

观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。

实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。

文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。

实证研究法:依据现有的科学理论和实践的需要提出设计。

定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。

定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。

跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。

功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。

模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。

空指针解引用论文参考文献

[1].傅玉,邓艺,孙晓山,程亮,张阳.面向二进制程序的空指针解引用错误的检测方法[J].计算机学报.2018

[2].董玉坤.基于属性可靠分析的空指针引用缺陷检测[J].计算机工程与应用.2016

[3].段钊,田聪,段振华.基于CEGAR的C程序空指针解引用检测[J].计算机研究与发展.2016

[4].王锐强,金大海.软件安全中基于判断逻辑的空指针引用故障检测[J].信息网络安全.2015

[5].马森,赵文,习翔宇,王栋伟.基于值依赖分析的空指针解引用检测[J].电子学报.2015

[6].王锐强.基于判断逻辑的空指针引用模式检测[D].北京邮电大学.2014

[7].段钊.基于CEGAR的C程序空指针解引用检测[D].西安电子科技大学.2014

[8].白杨,王瑀屏.一种多敏感空指针引用错误的静态检测方法[J].中国科技论文.2014

[9].董玉坤,宫云战,金大海.基于区域内存模型的空指针引用缺陷检测[J].电子学报.2014

[10].董玉坤.空指针引用缺陷充分性检测技术研究[D].北京邮电大学.2014

标签:;  ;  ;  ;  

空指针解引用论文-傅玉,邓艺,孙晓山,程亮,张阳
下载Doc文档

猜你喜欢