一个符号执行工具的C++语言扩展

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:xiaoshuanshuan521521
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
当今世界,软件已经在我们的生活和生产中发挥着基础性的作用。与其重要性相伴的,是人类对软件安全日益增加的重视。对于那些安全攸关的大型软件系统,为了保证其安全可靠,已经有各种各样的方法被发明出来用以避免由此带来的损失。符号执行是一种在特定领域十分有效的用来提高软件质量的方法。符号执行以对变量的约束代替具体数值对程序进行模拟执行,用相对低的代价达到较高的路径覆盖率,以自动化的生成测试例以及搜寻程序中的缺陷。ShapeChecker是一个面向C语言的符号执行分析器,利用Clang作为前端,对由源代码编译得到的LLVM中间表示进行符号执行分析,可以找出程序中诸如访问越界、悬垂指针和算术溢出这样的错误。作为一种基础性的编程语言,由于其使用领域的敏感性和相对其他主流编程语言的脆弱性,C++一直是静态分析软件所关注的重点。在本文中,为了使ShapeChecker分析器能够对C++语言的程序进行分析,我们对其提出了一系列修改和扩展,包含:·一组在符号执行过程中引入标记和使用类型信息的方法,使用类型信息辅助分析的过程;·一组对ShapeChecker断言语言和执行状态的扩展,使其能够支持对包含异常处理特性的代码进行正确的符号执行分析;·一组对内存状态和内存谓词的修改,使ShapeChecker能够检测出使用C++内存管理机制的代码中隐藏的缺陷。通过实现文中的工作,我们成功使ShapeChecker分析器支持对包含了虚函数调用、运行时类型信息、异常处理等语言特性的代码,并给出了良好的分析效果。本文提出的方法已经在ShapeChecker上进行了实验,取得了对C++语言良好的分析效果。
其他文献
围绕“人类思想、历史文化、经济管理、科学技术、国学基础、文学艺术”等六个通识素养维度,开展通识素养测评,根据评测结果进行数据挖掘与分析,分析影响学生通识素养水平的
设计并搭建了带回热器的商用跨临界CO2水-水热泵热水器试验系统,并依据相应的国家标准对试验系统进行了多个工况的循环性能试验研究。试验结果表明,名义工况下出水温度85℃时
由于冷却塔的性能对冷却塔的能耗影响较大,因此需要对冷却塔的性能进行优化。本文运用数学模型模拟了在类似工况下水膜和湍流空气流的传质传热过程,探讨了冷却塔性能优化的方
嘉兴地处杭嘉湖平原腹心,是中国革命红船的起航地,也是浙江接轨上海融入长三角的前沿阵地。按照2004年习近平同志在嘉兴蹲点调研时提出的“嘉兴完全有条件成为全省乃至全国统
空化现象是一种与液体的压力有关的动态过程,而对空化流动的研究涉及到流体机械、船舶工程、医疗、环保、国防等众多领域。本文从空化初生、空泡动力学、空化流的测量、以及
商务英语翻译服务于商务活动,其语言形式、词汇与内容等方面具有极强的专业性、格式性与简练性。语言表达、文化礼仪以及思维方式的差异是影响商务英语翻译的重要因素,在翻译