Clang上的C2fC2b2b过程间分析

Clang上的C2fC2b2b过程间分析

ID:39101289

大小:2.85 MB

页数:57页

时间:2019-06-24

Clang上的C2fC2b2b过程间分析_第1页
Clang上的C2fC2b2b过程间分析_第2页
Clang上的C2fC2b2b过程间分析_第3页
Clang上的C2fC2b2b过程间分析_第4页
Clang上的C2fC2b2b过程间分析_第5页
资源描述:

《Clang上的C2fC2b2b过程间分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、图目录图2.1软件开发周期中的安全实践⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..6图3.1静态分析流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.12图3.2PREfix流程框架图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19图3.3PRE做本地分析算法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.20图4.1Clang库组织形式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.26图4.2Clang驱动器工作流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯27图4.3Clang静态分析流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..30图5.1SimpleIPA在Clang驱动配置文件内的添加代码⋯⋯⋯⋯..33图5.2“clang—help”输出截图⋯⋯⋯⋯

2、⋯⋯⋯⋯⋯⋯⋯⋯33图5.3“clang—simpelPA”输出截图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.34图5.4SimplelPA在Clang—cc驱动配置文件中添加的代码⋯⋯⋯⋯34图5.5ActionSimplelPA测试代码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..35图5.6SimplelPA成功驱动截图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.35图5.7dead.store.c源代码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯37图5.8dead.store.c的控带0流图输出⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.38图5.9基于控制流图的路径生成算法⋯⋯⋯⋯⋯⋯⋯⋯⋯..39图5.10生成模型信息的来源

3、⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯40图5.11SimplelPA主体算法流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯44图5.12IPAManager构造函数及核心实现⋯⋯⋯⋯⋯⋯⋯⋯.46图5.13PathAnalysis函数实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..46图5.14返回语句的特殊处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯47图5.15函数调用语句的特殊处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..48图5.16PathAnalysis中的模型生成代码⋯⋯⋯⋯⋯⋯⋯⋯⋯48图5.17test.c的源代码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..49图5.18对test.c进行SimpleIPA的结果截图

4、⋯⋯⋯⋯⋯⋯⋯..50图5.19deref函数的控制流图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..50图5.20main函数的控制流图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5l图5.21deref函数的模型⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5lVI中国科学技术大学学位论文原创性声明本人声明所呈交的学位论文,是本人在导师指导下进行研究工作所取得的成果。除已特别加以标注和致谢的地方外,论文中不包含任何他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的贡献均已在论文中作了明确的说明。作者签名:签字日期:尘扯中国科学技术大学学位论文授权使用声明作为申请学位的条件之~,学

5、位论文著作权拥有者授权中国科学技术大学拥有学位论文的部分使用权,即:学校有权按有关规定向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存,汇编学位论文。本人提交的电子文档的内容和纸质论文的内容相一致。保密的学位论文在解密后也遵守此规定。/晒公开口保密(——年)作者签名:导师签名:签字日期:—上半阻签字日期:第1章引言1.1研究背景第1章引言随着计算机应用的不断发展,软件已渗透到国民经济和国防建设的各个领域,在信息社会中发挥着至关重要的作用。一方面

6、,软件为人们提供了新的生活和工作方式,软件成为信息基础设施;另一方面,软件不仅在逐步地代替传统硬件和物理设备,而且在系统中承担了集成的作用。然而,软件的生产现状以及质量都不能令人满意【l】。所以程序的正确性、安全性等性质一直受到人们的关注,如何在软件的开发和运行中保证软件具有这些性质也成为软件理论和技术的重要研究方向。程序静态分析作为在程序运行前发现软件漏洞的主要手段之一,对于保证程序质量,提高软件生产率有重要的意义。如今,程序静态分析的研究是软件工程研究的一个热点,也已经有一些产品面世。但是由于程序设计语言的复杂性,现有的静态分析技术很

7、难达到非常理想的效果(既具有高效率,又能找到尽可能多的错误)。静态分析需要更加有效的算法,同时在程序模型的构造、路径选择等方面,需要有更好的策吲引。近年来,国内外研究者采用将动态测试和静态分析有机结合的方法,从而将分析的路径限制在一定的范围。这种方法的尝试获得一定的成果,例如文献【3】中的EXE(EXecutiongeneratedExecutions)漏洞自动发掘工具和文献【4】中的程序验证工具。它们采用符号执行的方法来自动地生成测试例和测试输入。Clang(LLVM的C语言族编译器)作为新一代编译器,提供了许多为静态分析使用的库函数和

8、数据结构。利用Clang的特性解决静态分析算法与编译器耦合的问题,这是本文选择Clang作为实验平台的依据。在C/C++的静态分析工具中,过程间分析是发掘现代软件漏洞的最有效技术之一副。有一些

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。