论文部分内容阅读
摘 要:在计算机领域中,嵌入式应用程序中出现的内存错误对于系统的正常运行起到了阻碍作用,这就需要我们使用检测技术对错误进行检测。内存错误主要是指在应用程序中出现的读写内存单元问题,或者是在执行内存相关操作时所出现的一系列错误,这是导致绝大多数软件发生紊乱的根本原因。在程序的运行期间较难寻找这些错误,在进行软件的调试过程中很有可能因为某些内存错误而阻断程序的运行。因此我们需要对应用程序的内存设计一定的检测技术,通过这种技术避免一些内存问题的出现。本文对这种内存检测技术作出了基本的研究与总结。
关键词:嵌入式;内存错误;缓冲区溢出;静态检测技术
一、嵌入式应用程序的系统性概述
嵌入式系统是一种从国外引进的一种控制与检测机器、装置等的设备。这种嵌入式系统在国内也有了许多应用,并对于国内的装置检测作出了重要的贡献。国内对于这种系统的介绍较为详细,是以应用为中心,结合计算机网络基础进行的一种对应用系统检测,并在计算机系统中发挥着重要的监控作用。在嵌入式系统中,由于系统具有高度的集中化,因此在实际应用中往往是将软件或者硬件在系统中进行嵌入通过一个个小系统的构建,集成到一个较为大的系统之中并发挥各自的作用。这种嵌入式系统与以往的计算机系统相比具有多方面的使用便捷性,例如所使用的硬件、软件的集成度存在较高的水平。但是,在嵌入式系统面向特定应用时,还是会具有资源有限的不利条件。[1]我们应该从实际出发对这种系统作出全面的分析,了解系统的利弊,并结合实践应用设计合理的系统,促进计算机系统的稳定发展。
由于嵌入式系统与以往的计算机应用系统相比具有资源有限的特点,因此在对于嵌入式系统的软件开发过程中具有与以往的计算机系统不同的特点。例如在嵌入式系统进行硬件平台的选择时,常常需要使用专门的微处理器或者是其他设备对系统进行特定的处理,因此对硬件平台的专用性水平要求较高。除此之外,由于嵌入式系统中的硬件与软件的开发是同步进行的,因此在初期可能会出现系统稳定性较低或者是使用平台不确定的现象发生。
二、应用程序中的内存错误分析之缓冲区溢出
在程序的内存可能出现的错误中,有很多错误都会对程序的正常与稳定运行具有一定的不良影响,干扰程序的正常运行。以下主要对程序内存错误的代表性错误作出分析,即缓冲区溢出的内存错误分析。
这种错误主要是由于缓存区的缓存数据具有一定的限度引起的,而当数据超过这个容量之时便会出现缓存区数据溢出的后果。这种错误会使多余的数据在其他的内存单元进行区域覆盖,造成了极大的程序系统漏洞。在计算机的程序中,任何一种漏洞的出现都可能被黑客或者其他计算机程序攻击者利用,给计算机系统安全帶来了极大的威胁。由于程序设计人员对于安全编程的应用与防范意识过差,因此可能会给计算机程序入侵者提供机会,给恶意代码的侵入制造机会,进而会更改程序的执行流程,极大的破坏了计算机系统的安全稳定性。[2]这种缓存区溢出的问题作为程序内存错误中一个重要的问题,应当引起无论是软件开发人员还是技术检测人员的强烈关注。如下图。
三、嵌入式应用程序内存中的静态检测技术
作为在软件错误检测中的一种极为重要的检测技术,静态检测技术是一种较为普遍使用的检测技术,在实际的软件错误分析中占据一定的地位。这种检测技术一般从词法语法或者其他方面对相应的文件进行检测与分析,这种检测技术的好处是不但可以对源代码进行检测,也可以对二进制文件进行一定的检测。这种方式的可靠性与安全性都比较高。但是,对于程序进行的这种静态测试,其实不不是为了检验程序的正确与否,而是起到了一个作为动态检测的辅助操作。在程序投入使用之前,往往会先对程序进行检测,对可能存在的隐患作出分析,并发现程序中存在的错误与程序漏洞,这样才能对程序进行一定的改进,防止程序在正式投入后出现一系列无法补救的问题。这种静态检测的检测范围是十分广泛的,覆盖软件的范围极广,因此在应用程序中的应用型特别强。
静态检测技术可以在较早的时间里对嵌入式系统程序进行分析,及时发现程序中的内存错误并作出防范或者改正措施。由于软件开发的生命周期是有一定限度的,因此我们需要在软件投入使用之前做好软件的调试准备,及时地对可能存在地隐患作出错误分析,以便在运行时可以重新对系统进行审查。[3]这样可以及时地发现软件中存在地错误,以防止对于以后地错误维护而付出不必要地高昂费用,另外,快速有效地发现错误,对技术开发人员及时维护系统漏洞具有很大地帮助。由于静态检测可以直接对代码进行检查,因此有些静态分析技术可以直接在代码段上应用,在代码编辑完成之前就能对代码错误作出全面地掌握。
静态检测的缺点主要表现在对于软件内存错误的分析上,可能会产生较高的错误误报或者时漏报的不良后果。不利于对程序的错误作出全面的掌握。这给检测人员的检测工作带来了极大的不便,因此对于检测的精确度造成了重大影响。这对整个系统的稳定性是极为不利的。
四、总结
通过静态检测技术的应用,我们得出了一套研究程序中内存问题的基本方法,并通过对缓冲区溢出问题的有效分析,阐释出缓冲区溢出的原理以及相关解决方法。通过对此种技术的研究设计系统的检测方案,解决在应用程序中发现的内存错误问题。
参考文献:
[1]李肖坚,钟达夫,夏冰,唐懿芳.缓冲区溢出原理及植入代码的分析研究[J].计算机应用研究,2007(01).
[2]张威,卢庆龄,李梅,宫云战.基于指针分析的内存泄露故障测试方法研究[J].计算机应用研究,2006(10).
[3]张威,卢庆龄,万琳,肖庆.空指针引用故障模型与测试方法研究[J].计算机工程与应用,2006(04).
作者简介:刘勇(1989-),汉族,江西抚州乐安县人,电控工程师,研究方向:嵌入式应用。
关键词:嵌入式;内存错误;缓冲区溢出;静态检测技术
一、嵌入式应用程序的系统性概述
嵌入式系统是一种从国外引进的一种控制与检测机器、装置等的设备。这种嵌入式系统在国内也有了许多应用,并对于国内的装置检测作出了重要的贡献。国内对于这种系统的介绍较为详细,是以应用为中心,结合计算机网络基础进行的一种对应用系统检测,并在计算机系统中发挥着重要的监控作用。在嵌入式系统中,由于系统具有高度的集中化,因此在实际应用中往往是将软件或者硬件在系统中进行嵌入通过一个个小系统的构建,集成到一个较为大的系统之中并发挥各自的作用。这种嵌入式系统与以往的计算机系统相比具有多方面的使用便捷性,例如所使用的硬件、软件的集成度存在较高的水平。但是,在嵌入式系统面向特定应用时,还是会具有资源有限的不利条件。[1]我们应该从实际出发对这种系统作出全面的分析,了解系统的利弊,并结合实践应用设计合理的系统,促进计算机系统的稳定发展。
由于嵌入式系统与以往的计算机应用系统相比具有资源有限的特点,因此在对于嵌入式系统的软件开发过程中具有与以往的计算机系统不同的特点。例如在嵌入式系统进行硬件平台的选择时,常常需要使用专门的微处理器或者是其他设备对系统进行特定的处理,因此对硬件平台的专用性水平要求较高。除此之外,由于嵌入式系统中的硬件与软件的开发是同步进行的,因此在初期可能会出现系统稳定性较低或者是使用平台不确定的现象发生。
二、应用程序中的内存错误分析之缓冲区溢出
在程序的内存可能出现的错误中,有很多错误都会对程序的正常与稳定运行具有一定的不良影响,干扰程序的正常运行。以下主要对程序内存错误的代表性错误作出分析,即缓冲区溢出的内存错误分析。
这种错误主要是由于缓存区的缓存数据具有一定的限度引起的,而当数据超过这个容量之时便会出现缓存区数据溢出的后果。这种错误会使多余的数据在其他的内存单元进行区域覆盖,造成了极大的程序系统漏洞。在计算机的程序中,任何一种漏洞的出现都可能被黑客或者其他计算机程序攻击者利用,给计算机系统安全帶来了极大的威胁。由于程序设计人员对于安全编程的应用与防范意识过差,因此可能会给计算机程序入侵者提供机会,给恶意代码的侵入制造机会,进而会更改程序的执行流程,极大的破坏了计算机系统的安全稳定性。[2]这种缓存区溢出的问题作为程序内存错误中一个重要的问题,应当引起无论是软件开发人员还是技术检测人员的强烈关注。如下图。
三、嵌入式应用程序内存中的静态检测技术
作为在软件错误检测中的一种极为重要的检测技术,静态检测技术是一种较为普遍使用的检测技术,在实际的软件错误分析中占据一定的地位。这种检测技术一般从词法语法或者其他方面对相应的文件进行检测与分析,这种检测技术的好处是不但可以对源代码进行检测,也可以对二进制文件进行一定的检测。这种方式的可靠性与安全性都比较高。但是,对于程序进行的这种静态测试,其实不不是为了检验程序的正确与否,而是起到了一个作为动态检测的辅助操作。在程序投入使用之前,往往会先对程序进行检测,对可能存在的隐患作出分析,并发现程序中存在的错误与程序漏洞,这样才能对程序进行一定的改进,防止程序在正式投入后出现一系列无法补救的问题。这种静态检测的检测范围是十分广泛的,覆盖软件的范围极广,因此在应用程序中的应用型特别强。
静态检测技术可以在较早的时间里对嵌入式系统程序进行分析,及时发现程序中的内存错误并作出防范或者改正措施。由于软件开发的生命周期是有一定限度的,因此我们需要在软件投入使用之前做好软件的调试准备,及时地对可能存在地隐患作出错误分析,以便在运行时可以重新对系统进行审查。[3]这样可以及时地发现软件中存在地错误,以防止对于以后地错误维护而付出不必要地高昂费用,另外,快速有效地发现错误,对技术开发人员及时维护系统漏洞具有很大地帮助。由于静态检测可以直接对代码进行检查,因此有些静态分析技术可以直接在代码段上应用,在代码编辑完成之前就能对代码错误作出全面地掌握。
静态检测的缺点主要表现在对于软件内存错误的分析上,可能会产生较高的错误误报或者时漏报的不良后果。不利于对程序的错误作出全面的掌握。这给检测人员的检测工作带来了极大的不便,因此对于检测的精确度造成了重大影响。这对整个系统的稳定性是极为不利的。
四、总结
通过静态检测技术的应用,我们得出了一套研究程序中内存问题的基本方法,并通过对缓冲区溢出问题的有效分析,阐释出缓冲区溢出的原理以及相关解决方法。通过对此种技术的研究设计系统的检测方案,解决在应用程序中发现的内存错误问题。
参考文献:
[1]李肖坚,钟达夫,夏冰,唐懿芳.缓冲区溢出原理及植入代码的分析研究[J].计算机应用研究,2007(01).
[2]张威,卢庆龄,李梅,宫云战.基于指针分析的内存泄露故障测试方法研究[J].计算机应用研究,2006(10).
[3]张威,卢庆龄,万琳,肖庆.空指针引用故障模型与测试方法研究[J].计算机工程与应用,2006(04).
作者简介:刘勇(1989-),汉族,江西抚州乐安县人,电控工程师,研究方向:嵌入式应用。