[發明專利]對存在數據溢出表達式的檢測方法及終端設備有效
| 申請號: | 201910111337.2 | 申請日: | 2019-02-12 |
| 公開(公告)號: | CN109885491B | 公開(公告)日: | 2022-07-05 |
| 發明(設計)人: | 洪開慧;張蓬勃;胡欣 | 申請(專利權)人: | 科華恒盛股份有限公司;漳州科華技術有限責任公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 石家莊國為知識產權事務所 13120 | 代理人: | 祁靜 |
| 地址: | 361101 福建省廈*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 存在 數據 溢出 表達式 檢測 方法 終端設備 | ||
本發明適用于嵌入式軟件檢測技術領域,提供了一種對存在數據溢出表達式的方法及終端設備,該方法包括:根據待檢測文件夾路徑,獲取待檢測文件列表;讀取所述文件列表中的待檢測程序文件,獲取所述待檢測程序文件的內容;根據Python正則表達式定義的減法表達式、被減數、減數,逐行匹配所述待檢測程序文件的內容中的減法表達式以及所述減法表達式中的被減數和減數;當定義的所述減法表達式、所述被減數、所述減數與所述待檢測程序文件中的第一減法表達式相匹配時,記錄并保存第一結果文件。本方法可以實現快速定位嵌入式軟件代碼中存在數據溢出的表達式。
技術領域
本發明屬于嵌入式軟件檢測技術領域,尤其涉及一種對存在數據溢出表達式的檢測方法及終端設備。
背景技術
通常嵌入式軟件代碼中表達式存在無符號數據類型的數據相減,然后再賦值給另一個無符號類型變量,若被減數變量小于減數變量,得到變量的數據會溢出,當進一步用溢出的變量檢索數組地址并進行寫操作時,會導致內存寫越界,從而修改原有內存的數值。
目前,采用現有技術檢測數據溢出時,在嵌入式軟件代碼中直接搜索“-”號,然后逐個判斷,但實際除了減法以外還將搜索出其他大量的符號表達式,例如“\**-”、“-”等,使排查變得不準確,并且耗時;另外,現有技術借助嵌入式軟件檢測工具檢測數據溢出,如采用常見的商用檢測軟件進行靜態分析,但Z=X-Y中的減操作可能被認為是X加上Y的補碼,因此當X、Y、Z都是無符號類型數據時,也不會有任何告警。
發明內容
有鑒于此,本發明實施例提供了一種對存在數據溢出表達式的檢測方法及終端設備,以解決現有技術中無法快速定位嵌入式軟件代碼中存在數據溢出的表達式的問題。
本發明實施例的第一方面提供了一種對存在數據溢出表達式的檢測方法,包括:
根據待檢測文件夾路徑,獲取待檢測文件列表;
讀取所述文件列表中的待檢測程序文件,獲取所述待檢測程序文件的內容;
根據Python正則表達式定義的減法表達式、被減數、減數,逐行匹配所述待檢測程序文件的內容中的減法表達式以及所述減法表達式中的被減數和減數;
當定義的所述減法表達式、所述被減數、所述減數與所述待檢測程序文件中的第一減法表達式相匹配時,記錄并保存第一結果文件,所述第一結果文件包括所述第一減法表達式、所述第一減法表達式對應的第一被減數、所述第一減法表達式對應的第一減數、所述第一減法表達式的位置。
在一實施例中,在所述記錄并保存第一結果文件之后,還包括:
根據Python正則表達式定義的變量定義表達式、變量定義表達式中的數據類型名和變量名,逐行匹配第一程序文件中變量聲明定義的所述變量定義表達式以及所述變量定義表達式中的數據類型名和變量名;
當所述變量名與所述第一結果文件中的所述第一被減數相同時,確定所述第一程序文件中的被減數的數據類型與該變量的數據類型一致,同時保留無符號數據類型的被減數,確定為第二被減數;所述第一結果文件中的第一減數,確定為第二減數;
根據所述第一結果文件、所述第二被減數、所述第二減數,確定并保存第二結果文件,所述第二結果文件包括所述第二被減數、所述第二減數、所述第二被減數對應的第二減法表達式、所述第二減法表達式的位置。
在一實施例中,在所述確定并保存第二結果文件之后,還包括:
根據Python正則表達式定義的比較表達式、比較表達式的左值、比較表達式的右值,逐行匹配第二程序文件中的所有比較表達式以及比較表達式的左值和右值;
當所述定義的比較表達式的左值與所述第二結果文件的所述第二被減數相同,比較表達式的右值與所述第二結果文件的所述第二減數相同時,確定所述第二程序文件中的第一比較表達式為已做防溢出處理的比較表達式,保存所述第一比較表達式;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于科華恒盛股份有限公司;漳州科華技術有限責任公司,未經科華恒盛股份有限公司;漳州科華技術有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910111337.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于非負矩陣分解的RNA序列并行分類方法
- 下一篇:線圈組件
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





