嵌入式軟件的C語言代碼靜態(tài)檢查技術研究
發(fā)布時間:2020-04-29 05:37
【摘要】: 嵌入式系統(tǒng)是一種集軟件和硬件于一身的特殊計算機系統(tǒng)。隨著其在國防、航天、工業(yè)控制等若干重要領域的應用越來越廣泛,嵌入式軟件系統(tǒng)本身的安全性也變得越發(fā)重要。C語言是嵌入式軟件開發(fā)中應用最廣的編程語言,因此,對C語言程序的安全性驗證成為了保證嵌入式系統(tǒng)安全的關鍵。 C語言程序的檢測方法分為動態(tài)和靜態(tài)兩大類。動態(tài)檢查又稱為運行時檢查,是實際運行時檢測程序的方案,在C程序運行過程中,通過選擇適當的測試用例,并對程序的運行狀態(tài)進行監(jiān)控以發(fā)現(xiàn)程序中的錯誤。靜態(tài)檢測是指不在計算機上實際執(zhí)行所檢測的程序,而是采用分析代碼文本、人工模擬或類似動態(tài)分析的方法,借助相關的靜態(tài)分析工具完成程序源代碼的分析與檢測。由于嵌入式軟件特殊的開發(fā)模式,靜態(tài)檢測相對于動態(tài)檢測具有過程簡單,檢測代價小的優(yōu)點,是檢測嵌入式軟件的理想方法。本文通過對國內外該領域相關研究的學習,總結了C語言中常見的安全隱患,介紹了每種隱患產生的原因。在此基礎上,主要介紹了兩種檢測方法,一種是基于標注的檢測模型,用來檢測指針和內存引用錯誤。另一種是通過對C語言編譯過程中間結果的分析來檢測堆棧溢出錯誤。其中第二種方法是本文的主要工作和創(chuàng)新點。 指針和內存錯誤是C語言安全隱患中最常見同時也是最難檢測的錯誤,本文介紹了一種基于源代碼中附加標注的靜態(tài)檢測模型,通過標注每個對象的狀態(tài)來檢測內存和指針訪問錯誤。嵌入式系統(tǒng)有限的硬件資源使得堆棧的溢出檢測成為了安全保障的一個重要的環(huán)節(jié)。本文通過C語言的內存模型和函數調用過程,詳細介紹了堆棧溢出錯誤的產生原因,提出了一種基于編譯過程中間結果的靜態(tài)檢測方法,并對所涉及的關鍵技術進行了詳細介紹。最后,給出了整個堆棧靜態(tài)檢查器的系統(tǒng)設計和實現(xiàn),并通過測試證明了該方法的正確性和可用性。
【圖文】:
式系統(tǒng)主要由嵌入式處理器、相關支撐硬件、嵌入式操作系統(tǒng)及應用軟件系統(tǒng)等組成,它是可獨立工作的“器件,,。嵌入式系統(tǒng)幾乎包括了生活中的所有電器設備,,如圖1.1所示。掌上PDA、移動計算設備、電視機頂盒、手機上網、數字電視、多媒體、汽車、微波爐、數字相機、家庭自動化系統(tǒng)、電梯、空調、安全系統(tǒng)、自動售貨機、蜂窩式電話、消費電子設備、工業(yè)自動化儀表與醫(yī)療儀器等都含有嵌入式系統(tǒng)。圖1.1嵌入式應用環(huán)境
paee主要優(yōu)勢模型層次上查找bug和引起功能錯誤的原因,加速了調試短了代碼階段才檢查運行時錯誤的工作量;速檢查手寫代碼編寫的函數、客戶模塊和狀態(tài)流中的錯誤以用來確認最終發(fā)布的軟件是沒有錯誤的,具有高可靠性助模型設計者生成可重用的模型;taekAnalyzer,在堆棧分析方面,還沒有太多成熟的工具可用,唯一可以具stackAnalyzer[28]。這款軟件,如圖2.1所示,可以自動差情況下的堆棧使用情況;分析結果以標注的形式在調用關示。
【學位授予單位】:浙江大學
【學位級別】:碩士
【學位授予年份】:2008
【分類號】:TP368.12
本文編號:2644274
【圖文】:
式系統(tǒng)主要由嵌入式處理器、相關支撐硬件、嵌入式操作系統(tǒng)及應用軟件系統(tǒng)等組成,它是可獨立工作的“器件,,。嵌入式系統(tǒng)幾乎包括了生活中的所有電器設備,,如圖1.1所示。掌上PDA、移動計算設備、電視機頂盒、手機上網、數字電視、多媒體、汽車、微波爐、數字相機、家庭自動化系統(tǒng)、電梯、空調、安全系統(tǒng)、自動售貨機、蜂窩式電話、消費電子設備、工業(yè)自動化儀表與醫(yī)療儀器等都含有嵌入式系統(tǒng)。圖1.1嵌入式應用環(huán)境
paee主要優(yōu)勢模型層次上查找bug和引起功能錯誤的原因,加速了調試短了代碼階段才檢查運行時錯誤的工作量;速檢查手寫代碼編寫的函數、客戶模塊和狀態(tài)流中的錯誤以用來確認最終發(fā)布的軟件是沒有錯誤的,具有高可靠性助模型設計者生成可重用的模型;taekAnalyzer,在堆棧分析方面,還沒有太多成熟的工具可用,唯一可以具stackAnalyzer[28]。這款軟件,如圖2.1所示,可以自動差情況下的堆棧使用情況;分析結果以標注的形式在調用關示。
【學位授予單位】:浙江大學
【學位級別】:碩士
【學位授予年份】:2008
【分類號】:TP368.12
【引證文獻】
相關期刊論文 前2條
1 余亞剛;邱征;魏雪菲;;一種可擴展的C代碼靜態(tài)分析方法研究[J];科技風;2012年14期
2 張曉暉;王忠民;王文浪;;嵌入式軟件靜態(tài)測試技術研究[J];西安郵電學院學報;2011年02期
相關碩士學位論文 前2條
1 蘇青琴;基于抽象解釋的嵌入式程序不變量靜態(tài)測試研究與實現(xiàn)[D];南京航空航天大學;2012年
2 楊廣;控制流提取模型及軟件可靠性評價應用研究[D];大連理工大學;2013年
本文編號:2644274
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2644274.html
最近更新
教材專著