1 / 48
文档名称:

基于数据流指针别名分析.pdf

格式:pdf   页数:48页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于数据流指针别名分析.pdf

上传人:2028423509 2015/12/6 文件大小:0 KB

下载得到文件列表

基于数据流指针别名分析.pdf

文档介绍

文档介绍:西安电子科技大学
硕士学位论文
基于数据流的指针别名分析
姓名:施珍珍
申请学位级别:硕士
专业:计算机软件与理论
指导教师:刘坚
20070101
摘要本文针对珻程序的指针别名分析,给出了一种跨过程指针别名分析的框架,并设计了基于此框架的一个流敏感、上下文敏感的指针分析算法。该方法基于程序分析器前端生成的抽象语法树和控制流图,遍历程序中的函数体,交替记录过程内、跨过程的可能的指针别名信息,并将记录结果提供给之后的安全检查使用。文中对过程内和跨过程指针别名分析中存在的问题给出了一个解决方案。为了减少存储空间,实现了过程内指针别名信息的共享。此外,为了减少函数体的分析次数,对不同调用上下文处的指针别名模式进行抽象,若函数调用点处的指针别名模式相容,则函数体无需重新分析。本文的指针别名分析方法已在珻安全检查工具中实现,实验证明该方法是有效的。关键词:跨过程指针别名分析流敏感上下文敏感安全分析
瓼,:甀琣痶
创新性声明关于论文使用授权的说明本人声明所呈交的论文是我个人在导师的指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得西安电子科技大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究工作所做的任何贡献均己在论文中作了明确的说明并表示了谢意。申请学位论文若有不实之处,本人承担一切相关责任。本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其他复制手段保存论文。C艿穆畚在解密后遵守此规定本学位论文属于保密在年解密后适用本授权书。
第一章绪论研究背景疌程序安全检查的现状在,此外对谝胄碌挠镅蕴匦允保餐贝戳艘恍┬碌陌踩迹缭谑疌程序设计语言由于灵活高效、功能强大,被广泛地应用于从嵌入式单片机系统、网络服务器软件开发到企业应用软件等多种不同领域的软件开发中。随着应用范围的不断扩大,珻程序的安全性问题越来越受到关注。镅宰畛踉操作系统开发领域的应用背景导致其在设计上倾向于向程序员暴露机器细节,以方便程序员直接操作硬件,或者与汇编语言代码交互,且镅缘脑诵惺被肪惩常不提供任何形式的保护机制,也不提供任何资源自动释放机制,这些特性导致程序中易出现内存泄漏、缓冲区溢出、指针非法引用等安全漏洞;坛辛薈语言的绝大多数语法和语义,使得绦蛑械男矶喟踩侍庠赾程序中仍然存用指针手工管理内存时由于异常跳转的影响导致的资源泄漏等,这些安全隐患的存在极大地威胁着软件系统的稳定性和可靠性。针对珻程序中可能存在的安全漏洞,目前学术研究领域中已经提出了多种程序安全检查方法,如模型检验⒔馐寓鬔⒊绦蚍治等。模型检验是一种用来验证有限状态并发系统的形式化验证技术,模型检验工具有、、取DP图煅榈幕舅枷胧怯米刺ㄒ葡低表示系统行为,用模态/时序逻辑公式枋鱿低车男灾剩媚P图煅楣ぞ呒测系统欠衤阈灾蔉。由于模型检验方法是完全自动的通过算法来搜索系统各种可能的行为以获取错误信息,对用户要求不高、无需人为干与,并且在系统性质未被满足时可以给出反例,此类信息常常反映了系统设计中的细微失误,对于用户排错有极大的帮助,目前模型检测方法已被广泛的应用于数字电路系统,混和、实时系统以及代码验证中。但由于模型检验方法具有模型构造困难、属性规范难以表示对软件行为属性的要求、状态空间爆炸及模型验证的结果难以阅读等缺点而阻碍了将该方法成功应用于软件系统。进化测试是一种新兴的极有潜力的测试数据自动生成技术,是年由最早提出的【俊Küú馐允莸纳晌侍庾;K阉魑侍猓欢ò.盒覆盖准则下的测试目标作为该搜索问题的全局优化目标,利用进化算法缫
.刚氡鹈治鲈诔绦虬踩ǚ治鲋械淖饔眉把芯肯肿度大大降低。指针别名分析在痗抖程序的数据流分析、程序优化以及程序分析传算法等坑辛Φ娜ň盅坝拍芰Γ谝桓鲋甘侗ǖ牟馐允菔淙肟占渲姓到所需的测试数据,并以此来验证软件的安全性和可靠性。进化测试能够在巨大的测试输入空间中根据覆盖准则以较低的代价自动生成高质量的测试数据,从而程序分析是目前主流的验证软件安全性的方法之一,包括静态分析和动态分析方法。静态分析通过分析源代码或机器代码来检查程序中的安全漏洞,无需执行被分析程序,目前用于疌程序的静态程序安全检查工具有很多,如通过构建所有权类型系统通过使用前置条件和后置条件定义疌程序中各种语句的安全性条件并利用该条件执行安全检查的ü绦蛟毕虺绦蛑惺止ぜ尤胱⑹托畔⒌姆椒ń行程序安全检查的蚉康龋欢治鐾ü