缓冲区溢出静态分析中的指针分析技术研究

来源 :国防科学技术大学 | 被引量 : 0次 | 上传用户:wo6857953
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
指针分析是指通过对程序的静态分析来近似地求取程序中指针变量确定或可能指向的目标,它在程序静态分析领域中非常重要,并且很有挑战性,其结果被广泛应用于程序的优化、安全分析和验证等方面。 由于C语言允许通过指针进行间接内存访问,但并不进行边界检查,因此可能存在缓冲区溢出。缓冲区溢出漏洞是最严重的软件安全弱点之一,发现和消除软件中的缓冲区溢出漏洞已成为信息安全领域的一个研究热点。静态分析能够在软件发布前发现软件中的缓冲区溢出漏洞,并且不会降低软件运行的效率。为了进行静态缓冲区溢出分析,必须首先进行高效而精确的指针分析,以确定指针可能指向的目标缓冲区。 对于缓冲区溢出静态分析,已有的指针分析算法存在复杂度太高或者分析精度太低的不足。本文针对缓冲区溢出静态分析的需求,提出了一个基于过程间指向副作用嵌入调度的流不敏感、上下文敏感指针分析算法,它分为两个阶段:自底向上阶段嵌入调度指向副作用,删除导致指向副作用的指针赋值语句,将整个程序转化成一个没有过程间指向副作用的程序;自顶向下阶段对转化后的程序进行CGBCI(Constraint-Graph-Based Context-Insensitive)指针分析,获得上下文敏感的指向结果。这个算法的优点是能够取得与完全过程嵌入等价的上下文敏感性质,对每个函数至多分析两次,所以不会导致复杂度呈指数增长。 基于LLVM编译器平台,我们实现了此算法,并应用此指针分析算法实现了一个缓冲区溢出静态分析工具。实验结果表明我们上下文敏感的指针分析算法能够提高缓冲区溢出静态分析的精度,具有较高的分析效率。
其他文献
本论文是国家自然基金课题“黄土高原人居环境景观生态安全模式规划设计理论与方法研究”中的山地型小流域人居生态单元的案例研究。 论文以“黄土高原人居生态单元”的小
随着科技进步,部分动产价值日益提升,在财产由归属权到使用权转移的趋势下,2007年我国《物权法》引入动产浮动抵押制度,可以以现有的以及将有的动产作为抵押,抵押后抵押人对
中国房地产业是在改革开放后,随着城镇住房制度和土地使用制度改革的进展逐步复苏并活跃起来的。20世纪90年代初我国曾提出发展房地产业为支柱产业,随着1992~1993年房地产热问
<正> 《在马克思墓前的讲话》是一篇经典演说辞。理解“他作为科学家就是这样,但是这在他身上远不是主要的”的含义,是本文的一大难点。恩格斯谈了马克思在历史科学上的重大
以天然石墨为原料,采用氧化石墨热解膨胀氢气还原法制备出石墨烯。通过SEM、XRD、Laman光谱及TEM对石墨、氧化石墨以及石墨烯的微观形态进行了研究。实验结果表明,成功制备出
针对测土配方施肥指标体系建立中遇到的技术问题,以内蒙古自治区海拉尔地区2007~2009三年油菜试验数据为例,对应用"3414"试验数据进行土壤养分分级、基于三元二次肥料效应模
美国当代著名哲学家、伦理学家罗尔斯的正义理论是西方伦理学理论发展史上的一个重要里程碑。罗尔斯将其毕生的精力倾注于学术工作之中,以其卓越的哲学天赋和分析证明能力,对
法治既是国家的政治理想,也是社会文明的重要标尺。形式法治与实质法治的划分是理解法治这个综合性话语体系的重要工具。当下,中国正处于全面建成小康社会、全面深化改革和全
税务行政管理效率在我国是一个比较新的课题,交叉学科研究是其一个新趋势。西方的新公共管理运动无疑为提高税务行政管理效率提供了一种新的思路,但我们在吸纳私人部门管理经
将面向对象的程序设计方法引入有限元软件开发中的研究,正引起国外越来越多的关注,但国内目前尚未普遍开展这方面的研究。本论文全面、系统地将面向对象的方法引入有限元程序