程序分析与检测中的若干问题研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:huangom444
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件不断的演化和发展,软件的复杂性日益增加,对软件的理解和推理变得愈加困难。软件复杂度来源于很多因素,包括代码含义的模糊、代码相互依赖和软件中潜在的恶意负载等。软件复杂度随着这些因素不断递增,对软件正确性和可靠性提出巨大挑战。对程序进行分析和检测是人们理解软件的重要方法。对程序性质的分析一般是从静态的视角去分析程序代码,尤其是带有指针和递归数据结构的程序所满足的递归性质,建立其与前后置条件之间的关系,从而可以帮助人们理解程序代码的含义。分析和理解程序含义的另一个重要方面是局部推导,即对一段程序代码的理解仅限于这段代码本身,而不需要了解其它模块的含义。这意味着程序的分析难度与代码之间相互依赖关系成正比。对于面向对象程序来说,封装性是重要的依赖关系解耦手段,是实现局部推导的重要基础。现实中很多面向对象程序因为多种因素,如快速迭代和需求变化等,面临封装性缺失的问题。因此系统性地评估封装性对面向对象程序的性质分析具有非常重要的意义。另外,软件中普遍存在的隐藏恶意负载也使得软件的行为逻辑变得复杂。即使一个程序满足了功能性需求,它的非功能性负载也会对软件的质量和可靠性带来很大威胁。近年来,相当一部分的安卓恶意应用利用WebView技术允许Java代码和JavaScript代码相互调用的特性,有意地将自己的恶意负载分散在跨语言的特性中,并且设定较为严苛的触发条件,使得这类行为难以被现有方法系统性地分析和检测出来。在此背景下,本文针对上面指出的与软件复杂度相关的三个问题,即程序递归性质难以分析的问题、面向对象程序中封装性缺失带来依赖性问题和软件中潜在的恶意负载难以检测的问题,展开研究,主要工作包括以下三个方面。1.提出了一种分析程序中指针和递归数据结构性质的框架。框架分为3个主要部分。首先,我们将递归数据结构的性质分为两个主要类别,并提出对应的处理模式,从而帮助简化对于程序中的递归数据结构上的相关性质的分析。其次,提出了一种称为分割与拼接的技术来发现和描述递归数据结构是如何被程序修改的:递归数据结构首先被分割为若干个互不相交的片段,然后,这些片段以新的方式重新拼接在一起,形成一个新的数据结构。这个技术的重点在于如何将程序原有的性质保留下来,从而为后面的分析过程所使用。最后,提出了一种调用上下文敏感的程序摘要过程间分析方法。案例分析和实验结果表明:分析框架可以有效地分析递归数据结构的性质,并生成对程序证明过程有用的断言。2.提出了一种分析和评估面向对象程序封装性的技术。这个技术扩展了在编译器优化中被广泛采用的逃逸分析技术,通过基于表达式的数据流分析去计算面向对象程序的运行时内存布局。这个分析技术能够有效地将面向对象程序中常见的内存问题检测出来,从而得出对面向对象程序的封装性的评价。具有良好封装特性的类更加易于分析和验证。对于封装性较差的类,分析结果会给出建议的重构方法帮助开发人员完善类的设计和实现。3.提出了一种通过跨语言强制执行技术检测软件中隐藏恶意行为的技术。这个技术针对安卓Web View恶意应用,其核心在于对安卓Web View应用中的Java和JavaScript代码同时进行强制执行,使得程序根据需要往不同的路径执行,而不需要任何环境搭建和手动输入。通过这个技术,我们能将WebView中隐藏的恶意行为强制性地暴露出来。为了解决强制执行可能导致的异常问题,提出了一种新型的执行模型,使得程序能够检测出异常,并从异常中恢复执行。此外,这个执行模型还能够按需要为程序执行提供必要的输入。实验结果显示,跨语言强制执行技术能够高效且准确地在150个随机挑选的安卓WebView应用中发现包含恶意行为的119个应用,对于WebView恶意行为的检测能力高于现有的相关技术约23%.本文针对导致软件复杂性的三个问题,分别从不同的角度提出了检测和分析方法。我们相信这些分析方法为解决程序分析与检测中的若干问题做出了一定贡献,为程序理解和推理提供了有效支持。
其他文献
建立气管插管人工气道的目的是及时清除气道分泌物,改善患者通气功能,保证机体供氧。气道湿化是气道管理的重点,有效的气道湿化可以提高患者的舒适感,减少痰痂形成,降低气管
公司瑕疵设立是公司设立过程中经常出现的问题,这些瑕疵设立的公司已经完成了公司的设立登记,取得了公司法人格,但由于其实体或者程序要件的欠缺,所以瑕疵设立的公司并不具备一般
在我国,茶文化有着悠久的历史,与传统文化存在着紧密的联系,蕴涵着深厚的文化特征。在不断的发展过程中,茶文化不断与其他文化相互结合,留下了丰富的文化痕迹,如茶诗、茶词、
分析目前高职项目课程存在问题,提出项目课程设计思路,以《建筑识图与构造》课程为例,从教学目标的确定、项目模块的设计、活动方案的制定三方面说明项目课程设计过程,并提出
目的探讨精准病情评估体系在腹腔镜宫颈癌根治术围术期护理中的应用价值。方法选取宫颈癌患者108例为观察对象,采用随机数字表法将患者分为对照组和研究组,各54例。对照组患
合川市白鹿山墓群为重庆市文物保护单位南屏汉墓群之一部分,在配合渝南高速公路建设而进行的考古发掘中,发现并清理了古代墓葬5座。其中包括东汉至六朝砖室墓2座,宋代石室墓1
本刊讯近日,为指导和推动建工集团职工文体活动的开展,迎接北京市第十届职工运动会和建工集团第五届职工运动会的召开,建工集团制订出台了职工文体活动规划。 Recently, in
ue*M#’#dkB4##8#”专利申请号:00109“7公开号:1278062申请日:00.06.23公开日:00.12.27申请人地址:(100084川C京市海淀区清华园申请人:清华大学发明人:隋森芳文摘:本发明属于生物技