Clang上的C/C++过程间分析

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:sadsorry11
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序静态分析不编译运行程序,而是对程序源代码进行分析以发现其中的错误。静态分析的目标不是证明程序完全正确,而是在程序运行前尽可能多地发现其中隐含的错误,提高程序的可靠性和健壮性。 现有的C/C++程序的过程内分析已经发展得较为完善,而大部分C/C++程序安全漏洞却存在于过程之间的交互作用中,仅仅使用过程内分析技术无法检测这些漏洞,需要深入研究过程间静态分析的理论和技术。 在传统的过程间分析技术和经典过程间漏洞发掘技术的基础上,针对函数调用拓扑序列的生成和函数本地分析路径的生成等问题提出了符合Clang架构的实现算法。对于函数调用序列,采用递归向下的分析方法,保证每个函数即使被多次调用,函数体本身也只需分析一遍;对于本地分析路径,采用根据本地控制流图生成实际分析路径的方法,减少了路径分析的时间。 基于LLVM编译架构以及Clang编译器设计并实现了一个过程间分析工具的原型SimpleIPA。SimpleIPA通过递归算法创建控制节点,然后对每个函数进行本地分析,对于某些特殊语句则使用特定的处理算法,在本地分析结束后,采用模型生成算法产生函数摘要。 实例分析表明,SimpleIPA能够有效地发现过程间的安全漏洞。
其他文献
互联网不断地深入到人们生活的方方面面,如何对互联网上的非法网页进行过滤,给用户营造一个良好的学习和工作环境,成为一个重要的研究领域。由于当前的网页过滤系统对网页过
目标跟踪是典型的动态系统状态估计问题。线性、高斯条件下,卡尔曼滤波是最优估计。但实际应用中,运动目标极少满足单一模型和线性、高斯条件。在强非线性、非高斯环境下,卡
隐蔽通道是信息隐藏(Message Hiding)的一个重要分支,它是允许进程间以危害系统安全策略的方式传输信息的通信信道,网络隐蔽通道作为隐蔽通道中的一种,黑客常常会利用它来窃
近年来,随着国内经济的高速发展,民航旅客的数量急剧增加,国内民航进入快速发展模式。各航空公司为了应对民航市场的激烈竞争,分析民航不同旅客群体的出行偏好,进而制定相应
学位
校园网是学校信息化建设的基础设施,是广大师生完成教学和科研的一个重要平台。针对校园网的特点,本文设计了一款基于P2P技术的校园网文件共享软件——PCRN系统,利用P2P半分
目前,高光谱遥感的应用领域涵盖了地球科学的各个方面,成为对地观测、地图绘制、资源勘探、灾害调查、军事侦察等遥感应用领域的新型技术手段。高光谱图像分类是高光谱图像分析的重要内容之一,由于高光谱图像分类处理具有数据量大、算法复杂度高等特点,现有串行分类算法的执行效率往往较低,很难满足高光谱图像处理中实时分类的需求。近年来,随着高性能计算技术的进步,GPU (Graphic Processing Uni
近年来,机器学习算法一直受到学者广泛的关注,并且得到了各个领域的应用。同时信息融合方法在近十几年也得到了大量的实际应用。那么,将这两种方法结合起来,互相弥补缺陷而保
图像缩放在图像处理领域中,发挥着重要作用。图像的分辨率调整和格式变换,都需要用到图像缩放技术。图像放大和缩小(简称缩放或放缩)是图像处理的一种基本操作。所谓图像缩放
网格的概念和相关技术最主要是为了实现科研协作中的资源共享而提出,最终目的是把分布在不同地理位置上的各种资源全面的整合在一起,消除信息孤岛和资源孤岛。目前,网格已应