本發(fā)明專利技術(shù)公開了一種操作系統(tǒng)中斷安全隱患定位系統(tǒng)及其應(yīng)用。所述定位系統(tǒng)包括調(diào)試信息處理模塊,目標(biāo)代碼抽象模型生成模塊,模型驗證模塊,回溯模塊。該系統(tǒng)在操作系統(tǒng)中斷安全隱患的定位方法中的應(yīng)用為:在調(diào)試信息處理模塊中提取調(diào)試信息,建立源代碼及目標(biāo)代碼之間的對應(yīng)關(guān)系;在模型生成模塊中,為所得目標(biāo)代碼建立抽象模型,建立目標(biāo)代碼與模型代碼之間的對應(yīng)關(guān)系;在模型驗證模塊中,檢測抽象模型中是否存在中斷安全隱患;在回溯模塊中,根據(jù)調(diào)試信息回溯隱患產(chǎn)生過程,返回錯誤執(zhí)行路徑。為了避免編譯器的可能引發(fā)的錯誤,本發(fā)明專利技術(shù)從目標(biāo)代碼級別用模型檢測的方法保證程序的中斷安全性,通過提取基于DWARF規(guī)范的調(diào)試信息回溯安全隱患。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及一種,屬于操作系統(tǒng)軟件
技術(shù)介紹
中斷處理是操作系統(tǒng)的一個重要組成部分,它為系統(tǒng)的運行提供了一種基于事件的快速響應(yīng)機制。引起中斷的事件被稱為中斷源,中斷源發(fā)出的中斷處理信號成為中斷請求,中斷源對應(yīng)的事件處理程序成為中斷處理程序。中斷請求的不確定性和中斷處理機制的復(fù)雜性給操作系統(tǒng)的運行帶來了很大的隱患。中斷引發(fā)的問題主要有兩種:第一種是溢出類問題,無論是堆棧的溢出還是引發(fā)的全局變量內(nèi)容的溢出,都將會使進入非正常的狀態(tài)之中。此類錯誤同時可能會產(chǎn)生除中斷嵌套層數(shù)變量與堆棧指針溢出以外的問題,與中斷嵌套變量及堆棧指針有關(guān)的其它邏輯判斷變量值都有可能會產(chǎn)生錯誤的結(jié)果。第二種是數(shù)據(jù)操作錯誤,由于中斷程序的特殊調(diào)用過程與調(diào)用的時間的不確定性,造成了原有的數(shù)據(jù)操作的事務(wù)性特征無法得到保持,從而產(chǎn)生了數(shù)據(jù)操作錯誤。這種錯誤又可以分為數(shù)據(jù)誤讀錯誤與數(shù)據(jù)臟讀錯誤。數(shù)據(jù)誤讀錯誤是指中斷處理程序修改被中斷的事務(wù)性任務(wù)的數(shù)據(jù)環(huán)境。例如在被中斷程序P中,在中斷點后使用了全局變量Vl,在中斷處理程序INTP中,將不能許可對Vl進行寫操作。否則將會產(chǎn)生中斷數(shù)據(jù)誤讀的錯誤。數(shù)據(jù)臟讀錯誤是指中斷的處理程序讀取被中斷的事務(wù)性任務(wù)將操作的數(shù)據(jù)環(huán)境。例如在被中斷的事務(wù)性任務(wù)P中,在中斷點后修改了全局變量vl,在中斷處理程序INTP中,將不能許可對Vl進行讀操作。否則將有可能產(chǎn)生中斷數(shù)據(jù)臟讀的錯誤。DWARF規(guī)范是一種廣泛使用、標(biāo)準(zhǔn)化、可擴展的調(diào)試信息格式,用來規(guī)范各種編程語言的源代碼與目標(biāo)代碼之間關(guān)系的信息,包括源代碼中的變量信息、數(shù)據(jù)類型信息、常量信息、子程序信息等。DWARF對于調(diào)試信息采用結(jié)構(gòu)化的描述方法,調(diào)試信息單元(Debugging Informat1n Entry,DIE)是構(gòu)成整個結(jié)構(gòu)的基本單位。DIE可以分為兩種類型,一種是用于描述數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)的;另外一種是用于描述函數(shù)及其它可執(zhí)行代碼的。根據(jù)這些結(jié)構(gòu)化信息,我們可以自動提煉出定位中斷安全隱患所需要的各種信息。中斷安全隱患給操作系統(tǒng)的正確運行帶來了很大的問題。
技術(shù)實現(xiàn)思路
本專利技術(shù)所要解決的是現(xiàn)有技術(shù)中無法對檢測出的中斷安全隱患進行自動定位、進而無法形成有效的代碼改進方案的問題。為了解決上述問題,本專利技術(shù)提供了一種基于DWARF規(guī)范的操作系統(tǒng)中斷安全隱患定位系統(tǒng),其特征在于,包括:調(diào)試信息處理模塊,其對編譯后生成的基于DWARF規(guī)范的調(diào)試信息文件進行信息提取;目標(biāo)代碼抽象模型生成模塊,其為編譯后的目標(biāo)代碼建立抽象模型;模型驗證模塊,其檢測抽象模型中是否存在中斷安全隱患;回溯模塊,其根據(jù)調(diào)試信息找到隱患模型代碼相對應(yīng)的源代碼,實現(xiàn)對中斷安全隱患的定位,返回錯誤執(zhí)行路徑。本專利技術(shù)還提供了一種操作系統(tǒng)中斷安全隱患的定位方法,其特征在于,采用上述操作系統(tǒng)中斷安全隱患定位系統(tǒng),具體包括以下步驟:步驟一:在調(diào)試信息處理模塊中提取調(diào)試信息,建立源代碼及目標(biāo)代碼之間的對應(yīng)關(guān)系;步驟二:在模型生成模塊中,為步驟一所得目標(biāo)代碼建立抽象模型,建立目標(biāo)代碼與模型代碼之間的對應(yīng)關(guān)系;步驟三:在模型驗證模塊中,檢測抽象模型中是否存在中斷安全隱患;步驟四:在回溯模塊中,根據(jù)調(diào)試信息回溯隱患產(chǎn)生過程,返回錯誤執(zhí)行路徑。優(yōu)選地,所述步驟一中的調(diào)試信息具體包括全局變量與其內(nèi)存地址的對照符號表、函數(shù)名字及入口地址、函數(shù)的源代碼及相對應(yīng)的目標(biāo)代碼。優(yōu)選地,所述步驟二對所述步驟一所得的目標(biāo)代碼進行抽象,將目標(biāo)代碼抽象為節(jié)點構(gòu)成的樹狀結(jié)構(gòu)。每個節(jié)點代表著和某一全局變量相關(guān)的讀/寫操作;樹狀結(jié)構(gòu)是在目標(biāo)代碼執(zhí)行路徑的基礎(chǔ)上抽象出來的;包括分支結(jié)構(gòu),循環(huán)結(jié)構(gòu),函數(shù)調(diào)用。優(yōu)選地,所述步驟三中的中斷安全隱患是指模型代碼中因中斷發(fā)生導(dǎo)致執(zhí)行錯誤的模型代碼。進一步地,所述步驟三中的中斷安全隱患的檢測是將自動機模型插入機器碼中的可中斷點,覆蓋所有函數(shù)可能執(zhí)行路徑,利用模型檢測工具進行檢測。更進一步地,所述模型檢測工具為SPIN model checker、NuSMV或UPPAAL等。優(yōu)選地,所述步驟四具體為:通過模型代碼與目標(biāo)代碼的關(guān)系、目標(biāo)代碼與源代碼的關(guān)系將可能出現(xiàn)的數(shù)據(jù)競爭的源代碼以代碼運行路徑文件形式輸出。得到缺陷報告后,可根據(jù)缺陷報告查出造成中斷安全隱患的代碼,分析相應(yīng)的錯誤執(zhí)行路徑修補對應(yīng)的漏洞,從而有助于建立具備中斷安全性的系統(tǒng)。本專利技術(shù)中為了避免編譯器的可能引發(fā)的錯誤,從目標(biāo)代碼級別用模型檢測的方法保證程序的中斷安全性。檢測是否存在中斷安全隱患需要對中斷安全隱患滿足的條件進行形式化的性質(zhì)描述,在形式化的性質(zhì)描述的過程中可以結(jié)合自動機模型,本專利技術(shù)使用時態(tài)邏輯進行描述。本專利技術(shù)提供的一種基于DWARF規(guī)范的操作系統(tǒng)中斷安全隱患定位解決方案,具有隱患定位系統(tǒng)化、自動化的有益效果。【具體實施方式】為使本專利技術(shù)更明顯易懂,茲以優(yōu)選實施例,作詳細說明如下。實施例本實施例提供了一種基于DWARF規(guī)范的操作系統(tǒng)中斷安全隱患定位系統(tǒng)應(yīng)用于檢測國際汽車電子操作系統(tǒng)規(guī)范OSEK OS 2.2.3標(biāo)準(zhǔn)的一個操作系統(tǒng)實例。所述操作系統(tǒng)中斷安全隱患定位系統(tǒng)包括:調(diào)試信息處理模塊,其對編譯后生成的基于DWARF規(guī)范的調(diào)試信息文件進行信息提取;目標(biāo)代碼抽象模型生成模塊,其為編譯后的目標(biāo)代碼建立抽象模型;模型驗證模塊,其檢測抽象模型中是否存在中斷安全隱患;回溯模塊,其根據(jù)調(diào)試信息找到隱患模型代碼相對應(yīng)的源代碼,實現(xiàn)對中斷安全隱患的定位,返回錯誤執(zhí)行路徑。一種操作系統(tǒng)中斷安全隱患的定位方法,采用上述操作系統(tǒng)中斷安全隱患定位系統(tǒng),具體包括以下步驟:步驟一:在調(diào)試信息處理模塊中提取調(diào)試信息,建立源代碼及目標(biāo)代碼之間的對應(yīng)關(guān)系;步驟二:在模型生成模塊中,為步驟一所得目標(biāo)代碼建立抽象模型,建立目標(biāo)代碼與模型代碼之間的對應(yīng)關(guān)系;步驟三:在模型驗證模塊中,檢測抽象模型中是否存在中斷安全隱患;步驟四:在回溯模塊中,根據(jù)調(diào)試信息回溯隱患產(chǎn)生過程,返回錯誤執(zhí)行路徑。其中,步驟一中調(diào)試信息具體包括全局變量與其內(nèi)存地址的對照符號表、函數(shù)名字及入口地址、函數(shù)的源代碼及相對應(yīng)的目標(biāo)代碼。步驟二對步驟一所得的目標(biāo)代碼進行抽象,將目標(biāo)代碼抽象為節(jié)點構(gòu)成的樹狀結(jié)構(gòu)。每個節(jié)點代表著和某一全局變量相關(guān)的讀/寫操作。樹狀結(jié)構(gòu)是在目標(biāo)代碼執(zhí)行路徑的基礎(chǔ)上抽象出來的。包括分支結(jié)構(gòu),循環(huán)結(jié)構(gòu),函數(shù)調(diào)用。步驟三中的中斷安全隱患是指模型代碼中因中斷發(fā)生導(dǎo)致執(zhí)行錯誤的模型代碼。其中,步驟三中斷安全隱患的檢測是將自動機模型插入機器碼中的可中斷點,覆蓋所有函數(shù)可能執(zhí)行路徑,利用模型檢測工具進行檢測。步驟四中通過模型代碼與目標(biāo)代碼的關(guān)系、目標(biāo)代碼與源代碼的關(guān)系將可能出現(xiàn)的數(shù)據(jù)競爭的源代碼以代碼運行路徑文件形式輸出。得到缺陷報告后,可根據(jù)缺陷報告查出造成中斷安全隱患的代碼,分析相應(yīng)的錯誤執(zhí)行路徑修補對應(yīng)的漏洞,從而有助于建立具備中斷安全性的系統(tǒng)。本實施例運用本專利技術(shù)操作系統(tǒng)中斷安全隱患定位系統(tǒng)檢測OSEK OS 2.2.3標(biāo)準(zhǔn)操作系統(tǒng)有30余個操作系統(tǒng)中斷安全性錯誤,并返回相應(yīng)的錯誤路徑,為開發(fā)人員修正代碼提供有效的幫助。【主權(quán)項】1.一種操作系統(tǒng)中斷安全隱患定位系統(tǒng),其特征在于,包括:調(diào)試信息處理模塊,其對編譯后生成的基于DWARF規(guī)范的調(diào)試信息文件進行信息提取;目標(biāo)代碼抽象本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種操作系統(tǒng)中斷安全隱患定位系統(tǒng),其特征在于,包括:調(diào)試信息處理模塊,其對編譯后生成的基于DWARF規(guī)范的調(diào)試信息文件進行信息提取;目標(biāo)代碼抽象模型生成模塊,其為編譯后的目標(biāo)代碼建立抽象模型;模型驗證模塊,其檢測抽象模型中是否存在中斷安全隱患;回溯模塊,其根據(jù)調(diào)試信息找到隱患模型代碼相對應(yīng)的源代碼,實現(xiàn)對中斷安全隱患的定位,返回錯誤執(zhí)行路徑。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:朱龍飛,史建琦,何積豐,
申請(專利權(quán))人:東華大學(xué),
類型:發(fā)明
國別省市:上海;31
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。