C程序内存安全错误的运行时检测技术研究与实现

来源 :南京航空航天大学 | 被引量 : 6次 | 上传用户:divide2058
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
当前,操作系统,企业数据库管理系统、嵌入式软件等一般都采用C/C++编程语言进行编写,原因是C语言提供了底层的内存布局控制,更接近底层硬件,且只需要最小的运行支持。采用这样的语言编写的软件具有执行效率高,可移植性强等特点。但由于语言本身在内存访问时缺乏对内存边界的检查,导致了软件可能存在严重的内存安全错误,如缓冲区溢出、悬挂指针、多次释放等,使得软件的可靠性和安全性得不到保障。当前已有很多种运行时的方法和工具致力于检测C程序的内存安全错误,但它们都或多或少存在一些问题,如使用的元数据与源代码的不兼容,检测错误类型的不完整,运行时效率低下等等。本文提出了一种改进的基于指针的运行时检测技术,该技术中的指针元数据不仅包括其指向对象的上下界还记录了指向对象的存储状态信息,并对所有指向相同对象的指针进行计数。在此基础上,我们利用开源编译器Clang和源代码插桩技术实现了原型工具Movec(Monitoring,verification and control)。然后通过与AddressSanitizer、MemorySanitizer、MemCheck、SoftBoundCets工具在有效性方面进行对比,表明Movec能够检测出所有已知的时间和空间内存错误,通过与功能上仅次于我们的SoftBoundCets工具在运行时性能上进行对比,表明Movec在运行时性能上优于SoftBoundCets。最后,通过在windows平台上对μC/OS-II源码的插桩检测,验证了Movec工具的跨平台使用特性。综合以上实验,表明Movec是一个完整高效且支持跨平台使用的C程序内存安全错误的运行时检测工具。
其他文献
子宫腺肌病是一种具有增殖、浸润及转移能力的良性妇科疾病,多见于40~50岁的女性,常引起月经过多、进行性痛经及不孕等症状,极大地影响着女性的身心健康。但由于其具体的发病
胶红酵母为红酵母属物种,具有较强的环境适应力,广泛存在于不同生态系统环境中。其菌体含有蛋白质、天然类胡萝卜素、β-胡萝卜素、虾青素、多不饱和脂肪酸和维生素等多种营
通过流动人口家庭入户调查,该研究利用第一手资料,概述了北京市流动人口家庭户的突出特征,居京时间趋长、“举家迁移”发展快、京内流动频率低、就业生活较稳定、移民特征日益凸
采用邻二氮菲-Fe2+氧化法、邻苯三酚自氧化和ABTS法,分别测定野菊花总黄酮对羟自由基(·OH)、超氧阴离子自由基(O2-·)、ABTS 自由基正离子(ABTS+·)的清除率。结果表明,
探究口腔综合治疗机电气安全的检测方法与质量控制,将相关工作人员的工作安全性进行增强。主要采用奥利克288型电气安全检测仪器,根据相关检测规则对其进行严格操作,主要涉及
文章批判性的继承了前人关于为什么纳税的结论,并在此基础上提出税收是广义公共商品的价格的观点.详细分析社会主义市场经济下人民纳税的原因,即两大部门的形成、公共产品的
本文首先从预算内外两个维度理论诠释收支分权对收入不平等的作用机制,然后在对城乡居民收入基尼系数和中国式分权水平进行重新测度的基础上建立面板数据模型,从全国和分区域
通过对导体棒在电磁感应中受安培力作用的有关习题分析,培养学生领悟物理规律的能力.
本文介绍了在精确时间同步系统中,为实现设备与设备间高精度的时间同步而提出的一种新的接口设计方案。该方法不但大幅度提高同步精度,而且简化了硬件接口设计。此外,对于将
本文通过文献资料法、录像观察法、数理统计法,对马琳10场重要比赛中前场技术的使用率、得失分情况和击球线路进行录像数据分析,总结其打法优势并发现存在的问题,以及马琳与