[發明專利]一種51匯編語言軟件安全性編碼規則自動檢查方法無效
| 申請號: | 201110412461.6 | 申請日: | 2011-12-08 |
| 公開(公告)號: | CN102419730A | 公開(公告)日: | 2012-04-18 |
| 發明(設計)人: | 侯成杰;武占峰;段永顥;李鵬宇;歐陽高翔;常江 | 申請(專利權)人: | 北京控制工程研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 中國航天科技專利中心 11009 | 代理人: | 安麗 |
| 地址: | 10008*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 51 匯編語言 軟件 安全性 編碼 規則 自動 檢查 方法 | ||
技術領域
本發明涉及一種軟件編碼規則自動檢查方法,主要應用于針對51匯編語言軟件的靜態測試。
背景技術
編碼規則自動檢查技術是針對軟件與所確定的編碼規則符合性進行檢查的技術,是軟件靜態測試技術的一個分支。
目前對于C語言的編碼規則研究較多,常見的C語言安全編碼規則集有MISRA(Motor?Industry?Software?Reliability?Association)C編碼規則等。而針對C語言的常用軟件測試工具大都包含針對MISRA等C語言軟件編碼規則的檢查功能。
針對匯編語言的編碼規則自動檢查技術目前研究較少,首先是由于沒有制定針對匯編語言的編程規則集;其次,軟件的編碼規則自動檢查技術中最重要的是詞法和語法分析和規則匹配技術,而目前針對51匯編語言程序的詞法及語法分析、規則匹配技術很少被研究。
發明內容
本發明的技術解決問題是:克服現有技術的不足,提供了一種操作簡便、準確率高、可擴展性強的51匯編語言軟件安全性編碼規則自動化檢查方法,為針對51匯編語言軟件進行安全性編碼規則的自動檢查提供了依據。
本發明的技術解決方案是:一種51匯編語言軟件安全性編碼規則自動檢查方法,步驟如下:
(1)確定針對51匯編語言的安全編碼規則,包括:堆棧處理安全性規則、中斷處理安全性規則、指令匹配性檢查規則、未用中斷向量處理安全性規則、避免存在不可達代碼安全性規則;所述的堆棧處理安全性規則用于檢查程序中堆棧是否存在堆棧不平衡或者堆棧溢出;所述的中斷處理安全性規則用于檢查程序的中斷處理是否存在安全性;所述的指令匹配性檢查規則用于檢查特定指令與所在子程序是否匹配以及指令與所用操作數之間是否匹配;所述的未用中斷向量處理安全性規則用于檢查所有未用中斷的中斷向量處理是否符合安全性要求;所述的避免存在不可達代碼安全性規則用于檢查程序中是否存在未被調用的子程序或者不可達代碼;
(2)將源代碼按照統一格式重新排版,進行分離代碼和注釋、提取獨立的單詞助記符;
(3)在重新排版的源代碼上增加子程序開始和結束標識,然后從得到的單詞助記符中提取偽指令、指令、操作數、行號、標號并與51匯編語言語法規則進行匹配,識別出變量、相關指令、操作數、中斷向量區、子程序、中斷服務程序,由此提取各個子程序、中斷服務程序的名稱及起始行號和結束行號,并記錄與步驟(1)中制定的安全性編碼規則匹配相關的指令所在的行號,以及子程序調用指令和無條件跳轉指令的操作數信息;同時對軟件代碼進行結構分析,得到所有的被調用子程序集合和被跳轉標號集合;
(4)根據步驟(3)的提取結果以及結構分析結果,依據步驟(1)中制定的安全性編碼規則,判斷程序代碼中是否存在錯誤并將判斷結果輸出。
本發明與現有技術相比的優點在于:本發明提出了一種51匯編語言軟件安全性編碼規則自動化檢查方法,該方法具有分析準確率高、直接對應到源程序、規則可擴展等特點,為針對51匯編語言軟件進行安全性編碼規則的自動檢查提供了簡便實用的方法。其中檢查所依據的安全性編碼規則根據以往51匯編語言編程的錯誤案例提取,涉及堆棧處理、中斷處理、指令匹配檢查等多方面,覆蓋性強。通過軟件編程,可以使該方法的檢查完全自動進行,不需要與人的交互過程。通過對源代碼進行的掃描和預處理過程可以使該方法適用于不同編程風格和書寫格式的被測程序。通過對被測程序的詞法分析、語法分析、結構分析,得到了進行規則匹配所需要的所有信息以及被測程序的其他信息,方便以后增加其他安全性編碼規則。同時由于對程序進行了結構分析,大大提高了分析的準確性。最終的結果輸出時能直接對應到源程序,方便用戶對軟件錯誤進行定位。
附圖說明
圖1為本發明方法的流程框圖。
具體實施方式
如圖1所示,本發明方法主要包括安全性編碼規則制定、代碼掃描和預處理、程序代碼搜索、規則匹配、結果輸出等步驟,下面分別進行詳細說明。
一、安全性編碼規則制定
本方法所針對的51匯編語言安全編碼規則包括:
堆棧處理的安全性規則。堆棧處理的安全性規則包括保持堆棧平衡的安全性規則和防止堆棧溢出的安全性規則,這是最常見也是最關鍵安全性規則,一旦違反通常都將導致軟件運行崩潰。如規則1:壓棧和彈棧指令應匹配出現,規則2:要防止堆棧使用時的溢出。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京控制工程研究所,未經北京控制工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110412461.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種液相法制備氯甲烷和氨的方法
- 下一篇:放置可調角度數位板的電腦桌





