【摘 要】
:
C语言作为一门主流的编程语言,在操作系统、编译器、嵌入式软件等领域得到广泛使用,这些领域的软件的安全性问题直接影响整个软件领域的安全。与其他语言相比,C语言具有指针
论文部分内容阅读
C语言作为一门主流的编程语言,在操作系统、编译器、嵌入式软件等领域得到广泛使用,这些领域的软件的安全性问题直接影响整个软件领域的安全。与其他语言相比,C语言具有指针、动态存储分配、无数组越界动态检查等语言特性,导致C程序容易出现空指针脱引用、内存泄漏、缓冲区溢出等诸多内存安全漏洞。目前学术界和工业界都非常关注C程序的安全性问题,并提出了多种可以增强C程序的安全性方法如:程序验证、动态分析、静态分析等。本文工作基于我们实验室研发的一个C程序形状的静态分析工具原型ShapeChecker,它主要用来分析C程序内存方面的错误。本文主要讨论该工具中分析的并行化设计与实现,主要的贡献在于:第一,在ShapeChecker中设计实现了符号执行调度算法。ShapeChecker从函数与路径两个层次上分析程序,需要有相应的调度算法去选择可分析的函数和路径,再由符号执行引擎去分析这些函数和路径。第二,在ShapeChecker中设计实现了函数层次和路径层次上的并行化分析。在ShapeChecker中,函数层次和路径层次是两个可以采用并行化技术的分析层次,在这两个层次上进行并行化,可以提升ShapeChecker的分析性能。第三,参与实现了ShapeChecker原型系统。原型系统支持对单链表、双链表、树等形状的分析,主要寻找C程序中与内存相关的错误。目前系统可以分析规模在万行左右的C程序,可以找出代码中空指针脱引用、缓冲区溢出、内存泄露等错误。并行化分析技术可以提升分析工具的分析性能,增强工具的可伸缩性,使工具可以分析更大规模的程序。
其他文献
机器人技术在过去的几十年取得了巨大进展,已经广泛应用于工业,医疗,教育以及家庭服务等方面。然而,在某些特殊条件下,用硬质材料制成关节并依靠电机驱动的刚体机器人的应用
复杂网络常用来抽象表示某个实际系统。网络中的节点代表实际系统中的个体对象,连边代表个体对象之间的联系。在许多真实系统中,节点个体都是具有行为决策能力的主观个体。当节
随着Internet的迅速发展和不断普及,Web日志资源越来越丰富,如何分析和利用这些海量的数据是当前突出的问题。Web日志挖掘是网络信息处理的一门新技术,也是数据挖掘在Interne
可重构常分为软件可重构、硬件可重构和系统可重构,其中,软件可重构已成为一种共识,常见于各种开发和应用中。随着微电子技术、计算机技术的快速发展,传统意义上的软、硬件界
本文对局域网络环境下高校综合管理信息系统的系统分析技术和方法进行了研究和探索。将UML应用于信息系统开发过程中,给出了一种基于UML的管理信息系统需求分析方法,提供了一个
Tim Berners-Lee于2000年12月在XML2000会议上,提出下一代互联网的概念——语义网(Semantic Web),目的在于赋予万维网上所有资源唯一的标识,并在资源之间建立起机器可处理的
第一台PC机的出现距今已有20余年,基于传统PC-AT架构的BIOS(基本输入输出系统)方案仍然应用在PC中。BIOS的基本功能就是在OS启动前操控平台负责系统引导,然而它的架构过于老
克隆攻击是无线传感器网络中存在一种非常严重的安全威胁,攻击者只要放置少量克隆节点就可以控制整个无线传感器网络。针对克隆节点如何解决,学术界已经开展了一系列相关研究
流媒体简单地说,就是一边下载一边播放的视频、音频媒体信息。流媒体技术包括适应网络传输的编码格式,QoS控制机制和控制协议。目前的流媒体软件大多是基于客户端/服务器模式的
随着计算机技术与无线射频技术的飞速发展,基于远距离无线射频识别(RFID)技术的读写器越来越多地受到各种行业的关注,并产生了许多在RFID基础上的应用需求。由于RFID技术起步发