首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到10条相似文献,搜索用时 15 毫秒
1.
C语言执行效率高,使用范围广泛,然而存在的安全问题也日益突出。内存错误是C程序中常见的缺陷,严重时将导致系统崩溃。传统的人工修复内存错误耗费大量人力物力,并可能在修复过程中引入新的错误。针对这个问题,提出了一种基于跟踪机制的程序自动修复方法。构建包含程序文件中变量作用分布的作用域树;提出基于全局指针的跟踪机制,通过插入全局指针跟踪发生错误的分配内存在程序中的状态;基于全局指针自动生成补丁,利用作用域树定位缺陷修复位置从而来安全地修复内存错误。基于上述过程,实现了原型工具DTSFix,并在开源程序中对其进行了评估。实验结果表明,DTSFix能够有效检测并修复程序中的真实缺陷而且不产生副作用。  相似文献   

2.
指针是C语言的精华所在,正确使用指针能使程序简洁高效,能避免内存错误和程序异常,保证程序的正确性和可移植性。针对指针在编程过程中可能出现的错误,阐述了C编译器对数据进行内存分配的策略,通过具体的实例进行分析,并给出解决方法。  相似文献   

3.
Linux平台下基于源代码插装的动态内存检测   总被引:1,自引:0,他引:1  
在C/C++语言程序中.指针的使用使代码灵活、简便.但所带来的类似内存泄漏、内存写溢出等的内存使用的错误却很难分析和消除.针对这些容易出现的内存使用错误.提出了Linux平台下一种基于源文件信息提取和源代码插装的动态内存检测方法,设计实现了一个动态内存检测模块DDMEM.可以检测源代码的内存泄漏、内存写溢出、释放野指针和内存管理函数的不匹配等问题.给出了写溢出错误的一个实例检测,以验证方法的有效性.  相似文献   

4.
C程序内存泄漏智能化检测方法   总被引:1,自引:1,他引:0  
内存泄漏在采用显式内存管理机制的C语言中是一种常见的代码缺陷,内存泄漏的检测方法目前主要是静态分析与动态检测.动态检测开销大,且高度依赖测试用例;静态分析目前被学术界和工业界广泛应用,但是存在大量误报,需要人工对检测结果进行确认.内存泄漏静态分析的误报通常是由于对指针、分支语句和全局变量分析的不准确性导致的.提出了一种内存泄漏的智能化检测方法,通过使用机器学习算法学习程序特征与内存泄漏之间的相关性,构建机器学习分类器,并应用机器学习分类器进一步提高内存泄漏静态分析的准确性.首先构建机器学习分类器,然后通过静态分析方法构建从内存分配点开始的Sparse Value Flow Graph(SVFG),并从中提取内存泄漏相关特征,再使用规则和机器学习分类器进行内存泄漏的检测.实验结果显示,该方法在分析指针、分支语句和全局变量时是有效的,能够提高内存泄漏检测的准确性,降低内存泄漏检测结果的误报.最后,对未来研究的可行性以及面临的挑战进行了展望.  相似文献   

5.
内存错误漏洞是以不安全语言编写软件系统中安全性和可靠性问题的主要原因。这些漏洞常被用来将代码执行重定向到攻击者控制的位置。诸如代码复用攻击这样的内存错误漏洞利用的流行促使主要处理器制造商设计基于硬件的防御机制。一个例子是ARMv8.3中引入的指针认证(PAuth)机制。PAuth使用签名密钥和指针上下文信息对指针进行签名, 上下文信息是缩小保护范围和开发不同类型安全机制的关键元素。通过使用轻量级分组密码算法QARMA64并将指针认证码(PAC)存储在指针未使用位中, PAuth可以较小的性能和存储开销检查指针的完整性。当前一些研究使用PAuth降低内存安全机制的性能开销, 还有一些研究基于PAuth提高控制流完整性的保护精度。虽然PAuth受到越来越多的关注, 但它仍然遭受暴力攻击和PAC伪造攻击。因此, 很有必要对当前基于PAuth的安全应用进行总结, 并分析其存在的问题。本文首先介绍内存错误漏洞利用的相关背景和相应的保护机制。然后, 我们详细介绍了PAuth机制的详细信息, 包括硬件支持、加密算法和密码密钥管理, 及其潜在的安全问题。然后, 我们总结了当前基于PAuth的内存安全和控制流完整性的研究, 特别是指针上下文的选择方法。最后, 基于我们的调查, 讨论和展望ARM PAuth未来可能的研究方向。未来的研究方向可能包括以下几个方面: PAuth密钥管理和上下文选择、针对推测攻击的防御, 以及PAuth与其他ARM安全机制的结合使用。  相似文献   

6.
基于Linux的动态内存检测工具的设计与实现   总被引:2,自引:0,他引:2  
内存的动态内存使用问题是C/C++程序员永远面临的问题。针对内存管理和使用的各类错误,设计并实现一个基于Linux的动态内存检测模块,可以对源码程序检测出内存泄漏、内存写溢出、“野指针”操作和内存管理函数的不匹配等问题。实验结果表明,系统具有效率高、易用性好的特点。  相似文献   

7.
指针是C语言中广泛使用的一种数据类型,运用指针编程是C语言的主要风格之一。利用指针变量可以直接对内存中各种不同数据进行快速处理,理解和运用好指针可以编出简洁明快、性能强的C程序。  相似文献   

8.
在航天领域中,安全关键的大型实时软件系统往往直接影响到任务成败,一般难以全面检测、分析或避免内存泄漏等常见内存错误。定义了实时软件的12种典型内存故障模式,提出了一种基于C++代码插装的实时软件内存错误快速分析方法。该方法通过对C++源代码进行静态分析,获取指针变量相关信息;通过C++代码插装和运行不同测试用例,实时收集统计C++指针对象的分配、释放、赋值、c-use和p-use使用情况,结合实时软件的典型内存故障模式进行分析,并自动生成详情报告。应用案例表明,该方法能够高效快捷地发现实时软件潜在的典型内存错误,从而有效提高软件质量。  相似文献   

9.
王磊  茅兵  谢立 《计算机科学》2010,37(1):153-157
内存腐烂攻击在软件安全攻击中占据着较大的比重。近来,动态着色技术得到了越来越多的关注,这种技术通过在访问内存时检测指针的完整性来抵御攻击。然而,存在一类可以绕过指针完整性检查的策略来进行攻击的实例,比如数组的越界访问攻击。提出了一种基于动态着色跟踪分析的方法来解决这类已有着色技术不能检测的问题。其思想是,借助于内存访问控制的思路,首先像已有的动态着色技术那样,在内存访问时对指针进行完整性检查,然后检查指针将要访问的内存区域是否处于指针合理的访问范围之内。原型系统是基于Valgrind的,并不需要源码,因此可以用于很多商业软件。初步实验验证结果表明,该方法可以有效地检测出很多类型的攻击,系统的性能损耗接近于Memcheck这种常用的内存错误检测工具。  相似文献   

10.
文章指出了几类常见动态存储错误的特征及其危害。设计了一种描述程序动态存储状况的数据结构———指针树,和基于指针树的动态存储错误检测方法。该方法为程序建立并分析指针树,能够有效地检测和定位几类常见动态存储错误。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号