摘 要:在計算機領域中,嵌入式應用程序中出現的內存錯誤對于系統的正常運行起到了阻礙作用,這就需要我們使用檢測技術對錯誤進行檢測。內存錯誤主要是指在應用程序中出現的讀寫內存單元問題,或者是在執行內存相關操作時所出現的一系列錯誤,這是導致絕大多數軟件發生紊亂的根本原因。在程序的運行期間較難尋找這些錯誤,在進行軟件的調試過程中很有可能因為某些內存錯誤而阻斷程序的運行。因此我們需要對應用程序的內存設計一定的檢測技術,通過這種技術避免一些內存問題的出現。本文對這種內存檢測技術作出了基本的研究與總結。
關鍵詞:嵌入式;內存錯誤;緩沖區溢出;靜態檢測技術
一、嵌入式應用程序的系統性概述
嵌入式系統是一種從國外引進的一種控制與檢測機器、裝置等的設備。這種嵌入式系統在國內也有了許多應用,并對于國內的裝置檢測作出了重要的貢獻。國內對于這種系統的介紹較為詳細,是以應用為中心,結合計算機網絡基礎進行的一種對應用系統檢測,并在計算機系統中發揮著重要的監控作用。在嵌入式系統中,由于系統具有高度的集中化,因此在實際應用中往往是將軟件或者硬件在系統中進行嵌入通過一個個小系統的構建,集成到一個較為大的系統之中并發揮各自的作用。這種嵌入式系統與以往的計算機系統相比具有多方面的使用便捷性,例如所使用的硬件、軟件的集成度存在較高的水平。但是,在嵌入式系統面向特定應用時,還是會具有資源有限的不利條件。[1]我們應該從實際出發對這種系統作出全面的分析,了解系統的利弊,并結合實踐應用設計合理的系統,促進計算機系統的穩定發展。
由于嵌入式系統與以往的計算機應用系統相比具有資源有限的特點,因此在對于嵌入式系統的軟件開發過程中具有與以往的計算機系統不同的特點。例如在嵌入式系統進行硬件平臺的選擇時,常常需要使用專門的微處理器或者是其他設備對系統進行特定的處理,因此對硬件平臺的專用性水平要求較高。除此之外,由于嵌入式系統中的硬件與軟件的開發是同步進行的,因此在初期可能會出現系統穩定性較低或者是使用平臺不確定的現象發生。
二、應用程序中的內存錯誤分析之緩沖區溢出
在程序的內存可能出現的錯誤中,有很多錯誤都會對程序的正常與穩定運行具有一定的不良影響,干擾程序的正常運行。以下主要對程序內存錯誤的代表性錯誤作出分析,即緩沖區溢出的內存錯誤分析。
這種錯誤主要是由于緩存區的緩存數據具有一定的限度引起的,而當數據超過這個容量之時便會出現緩存區數據溢出的后果。這種錯誤會使多余的數據在其他的內存單元進行區域覆蓋,造成了極大的程序系統漏洞。在計算機的程序中,任何一種漏洞的出現都可能被黑客或者其他計算機程序攻擊者利用,給計算機系統安全帶來了極大的威脅。由于程序設計人員對于安全編程的應用與防范意識過差,因此可能會給計算機程序入侵者提供機會,給惡意代碼的侵入制造機會,進而會更改程序的執行流程,極大的破壞了計算機系統的安全穩定性。[2]這種緩存區溢出的問題作為程序內存錯誤中一個重要的問題,應當引起無論是軟件開發人員還是技術檢測人員的強烈關注。如下圖。
三、嵌入式應用程序內存中的靜態檢測技術
作為在軟件錯誤檢測中的一種極為重要的檢測技術,靜態檢測技術是一種較為普遍使用的檢測技術,在實際的軟件錯誤分析中占據一定的地位。這種檢測技術一般從詞法語法或者其他方面對相應的文件進行檢測與分析,這種檢測技術的好處是不但可以對源代碼進行檢測,也可以對二進制文件進行一定的檢測。這種方式的可靠性與安全性都比較高。但是,對于程序進行的這種靜態測試,其實不不是為了檢驗程序的正確與否,而是起到了一個作為動態檢測的輔助操作。在程序投入使用之前,往往會先對程序進行檢測,對可能存在的隱患作出分析,并發現程序中存在的錯誤與程序漏洞,這樣才能對程序進行一定的改進,防止程序在正式投入后出現一系列無法補救的問題。這種靜態檢測的檢測范圍是十分廣泛的,覆蓋軟件的范圍極廣,因此在應用程序中的應用型特別強。
靜態檢測技術可以在較早的時間里對嵌入式系統程序進行分析,及時發現程序中的內存錯誤并作出防范或者改正措施。由于軟件開發的生命周期是有一定限度的,因此我們需要在軟件投入使用之前做好軟件的調試準備,及時地對可能存在地隱患作出錯誤分析,以便在運行時可以重新對系統進行審查。[3]這樣可以及時地發現軟件中存在地錯誤,以防止對于以后地錯誤維護而付出不必要地高昂費用,另外,快速有效地發現錯誤,對技術開發人員及時維護系統漏洞具有很大地幫助。由于靜態檢測可以直接對代碼進行檢查,因此有些靜態分析技術可以直接在代碼段上應用,在代碼編輯完成之前就能對代碼錯誤作出全面地掌握。
靜態檢測的缺點主要表現在對于軟件內存錯誤的分析上,可能會產生較高的錯誤誤報或者時漏報的不良后果。不利于對程序的錯誤作出全面的掌握。這給檢測人員的檢測工作帶來了極大的不便,因此對于檢測的精確度造成了重大影響。這對整個系統的穩定性是極為不利的。
四、總結
通過靜態檢測技術的應用,我們得出了一套研究程序中內存問題的基本方法,并通過對緩沖區溢出問題的有效分析,闡釋出緩沖區溢出的原理以及相關解決方法。通過對此種技術的研究設計系統的檢測方案,解決在應用程序中發現的內存錯誤問題。
參考文獻:
[1]李肖堅,鐘達夫,夏冰,唐懿芳.緩沖區溢出原理及植入代碼的分析研究[J].計算機應用研究,2007(01).
[2]張威,盧慶齡,李梅,宮云戰.基于指針分析的內存泄露故障測試方法研究[J].計算機應用研究,2006(10).
[3]張威,盧慶齡,萬琳,肖慶.空指針引用故障模型與測試方法研究[J].計算機工程與應用,2006(04).
作者簡介:劉勇(1989-),漢族,江西撫州樂安縣人,電控工程師,研究方向:嵌入式應用。