基于二进制指令插桩的C++程序缺陷检测技术的研究与实现

来源 :北京邮电大学 | 被引量 : 2次 | 上传用户:yangguaiguai
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件的规模越来越大,逻辑越来越复杂,使得在软件开发的过程中不可避免的出现错误。C++语言作为被广泛使用的编程语言之一,常常被用于基础设施类软件的编写,这类基础设施类的软件一旦出现缺陷造成的损失要比常规的软件高得多。由于C++的语言特性,在程序的编写过程中,很容易出现内存管理方面的缺陷,这些缺陷通常都难以定位与修复。使用程序插桩技术可以准确的收集程序运行过程中的特征数据,并通过分析这些特征数据进而达到对应用程序实施缺陷检测的目的。动态二进制插桩技术相较于传统的源代码插桩技术,拥有不需要重新编译被测程序,能够在程序运行过程中进行二进制代码的插桩和替换等功能,能够更好的实现缺陷检测功能。由于二进制代码语义缺乏和平台相关的特性,加大了动态二进制插桩程序的编写难度,所以进行基于动态二进制插桩技术的C++程序缺陷检测方法的相关研究是具有重要意义的。本文介绍了常见的软件分析方法,并着重研究了当前使用比较广泛的动态二进制插桩技术。针对C++程序中广泛存在的内存管理类错误,设计并实现了一个基于动态二进制插桩的C++程序缺陷检测工具。工具通过DynamoRIO插桩框架对被测程序进行跟踪,以维护影子内存并对被测程序中的缺陷进行检测。论文在设计影子内存时,通过组合不同的映射方式,在保证了二进制位级别的信息保存粒度的同时,大幅减少了信息的冗余,降低了维护影子内存所需要的空间开销。同时通过跟踪栈内存变量的边界,实现了栈内变量的缓冲区溢出检测。最后通过实验对检测方法的运行时开销以及检测准确率进行了验证。
其他文献
礼刑思想是北宋法律思想的重要组成部分。因为北宋社会经济状况的变化、政治法制的变革以及哲学思想的活跃,北宋士大夫对礼和刑进行了新的思考。本文以苏轼的礼刑思想为研究
学位
数学课程标准强调:“学生是学习的主体,教师是学习的组织者、引导者与合作者。”教师必须改变“满堂灌”的教学方法,引领学生积极主动地参与学习,让他们在数学课堂中动手、动
人力资源是教育发展的核心,教育人力资源的质量、数量决定着教育活力以及发展水平,本文通过分析现在教育人力资源管理现状,针对问题提出改善的对策,期望对教育人力资源管理建
本文设计了一种适于水下应用的海底地形匹配系统。介绍了该系统的原理并给出了匹配算法。该算法采用多模估计技术获取最佳估计位置,可大大提高系统的定位精度
要想树立大作文教学观,建立新教学体系,就要针对传统封闭型、僵死型的作文教学在培养目标上的弊端,坚持全面育人;针对现行中小学作文教学在教学内容上的弊端,主张教学内容的
要写好材料作文,除了平时多积累素材,还要胸中有沟壑,做到以下四步:读材料,明主旨;析因果,定意向;联实际,谈看法;点中心,作收束。
罚金刑的配置模式是对具体罪行配置罚金刑时所采取的立法模式。采用不同的罚金刑配置模式反映了立法者的价值取向,并将在客观上影响罚金刑的实际适用率。纵观各国刑法典,当今
目的:分析矽肺合并下呼吸道感染病原菌及耐药情况,指导临床用药。方法:选取我院2015年1月-2018年6月收治的矽肺合并下呼吸道感染患者1 500例,收集工种、接尘时间、痰培养及药敏结果并分析。结果:矽肺合并下呼吸道感染患者4 832份痰标本共培养出319株病原菌。其中306株革兰阴性杆菌分别为肺炎克雷伯菌、铜绿假单胞菌、鲍曼不动杆菌、大肠埃希菌等,55株真菌均为念珠菌,其余30株革兰阳性球菌分别
测试了PF型染料在不同温度、不同时间的烘干和汽蒸条件下的得色量,并与K、M、KN型染料色光进行对比.分析了PF型染料的拔白和防印性能,测试了其印花后的各项色牢度.结果表明,P
锦纶上染速率快、竭染率高,但容易产生上染不匀,色不符样和染色牢度差等疵病.通过打样染色工艺试验,选择上染曲线及亲和力相似,配伍性好且适合生产机台的染化料系列,并从温度