基于CEGAR的LLVM IR程序验证方法与实现

来源 :西安电子科技大学 | 被引量 : 0次 | 上传用户:czg
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件的广泛应用,其规模越大越大,复杂度越来越高,软件的安全问题也越发突出。如何保证软件系统的正确性、可靠性和安全性,是计算机软件领域面临的重要挑战。作为一种自动化验证技术,模型检测可以有效地提升程序的安全性和可靠性。然而模型检测算法复杂度高,实现难度大,这也就成为对程序源码进行模型检测的主要瓶颈。通常,大多数模型检测工具都仅支持一种编程语言。LLVM是一个编译器框架,LLVM前端支持的任意编程语言都可以转为其中间表示LLVM IR。此外,LLVM IR还可以高效地使用LLVM的优化策略及分析方法,为程序分析及验证提供便利。本文研究LLVM IR程序的抽象验证理论与方法,从而可以支持多种程序设计语言的抽象验证。本文的主要工作内容和创新点如下:1.研究LLVM框架和LLVM IR的语法结构和基本语义,对LLVM IR程序进行词法分析和语法分析,提出了LLVM IR程序的CFA生成算法。2.根据LLVM IR程序的CFA,提出了基于CEGAR的LLVM IR程序验证方法,并根据该方法设计了相关验证工具的基本框架,具体给出了验证工具中各模块的设计与实现方案。并使用C++编程实现了该验证工具,可以实现对不同编程语言的程序进行验证。3.基于C程序和MSVL程序生成了大量的LLVM IR程序测试用例,用于测试基于CEGAR算法的LLVM IR程序验证工具,测试结果验证了该工具的正确性和可用性。
其他文献
随着天然气加注行业的发展,传统靠打电话联系、依靠纸质派工单和手动记录维修结果的方式已经越来越不适应加气机售后服务的需要。在互联网和信息技术高速发展的今天,业务人员
由于人工智能产生机制的特殊性,打破了人们关于作品创作的传统认知,使得人工智能“创作”行为的法律属性成为极具争议性的问题,进而使得人工智能“创作”时未经许可获取使用他人数据的行为存在侵犯著作权人合法权益的风险。结合人工智能的特殊性及新技术的发展情形,对人工智能的“创作”行为进行剖析:数据采集阶段,人工智能未经许可非法获取使用他人数据的行为侵犯著作权人的复制权;数据分析阶段,人工智能的深度学习及数据分
在体验经济时代,设计更加注重人的情感活动,人们对产品的需求不再只停留在单纯的物质和功能需求,逐渐的转入深层次的心理和情感体验上的需求。把个性化、优越性等用户情感融
随着我国软件行业和互联网行业的高速发展,人们对软件安全性的要求越来越高。然而软件开发人员往往缺乏信息安全意识,因此在开发过程中会不自觉地引入很多的安全漏洞。对于大
本文以重庆灰岩隧道作为研究对象,首先对重庆地区大量隧道排水管道结晶现状进行调查,并现场采集结晶试样和水样,开展室内测试分析;其次,根据分析结果及相关理论对隧道排水管
学位
局部二值模式是一种有效的纹理描述符。然而,传统局部二值模式算子仅仅使用均匀模式,而忽略了所有非均匀模式。随着邻域半径增大和采样点增多,非均匀模式的比例越来越高,丢弃
近年来,随着云计算技术的不断发展和应用,作为云计算组成的云存储服务已经成为企业和个人存储和管理数据的重要方式。然而,由于云存储服务的不可靠性,可能会发生数据隐私泄露
人工蜂群算法是一种新型的群智能算法,它模拟的是工蜂采蜜过程中各种蜜蜂分工合作以开采最佳蜜源的原理。该算法将采蜜蜂群分为引领蜂、跟随蜂和侦查蜂三类,通过三种蜜蜂轮流
计算机技术的快速进步,使人离不开计算机,各式各样的软件层出不穷,软件规模也与日俱增,仅以测试的方法排查漏洞已经不能满足需要。为了减少软件中的漏洞,保证软件程序的正确