[發明專利]基于動態符號執行與模糊測試的緩沖區溢出檢測方法有效
| 申請號: | 201910293815.6 | 申請日: | 2019-04-12 |
| 公開(公告)號: | CN110059010B | 公開(公告)日: | 2023-01-31 |
| 發明(設計)人: | 鄭煒;藺軍;曹石超 | 申請(專利權)人: | 西北工業大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 西北工業大學專利中心 61204 | 代理人: | 王鮮凱 |
| 地址: | 710072 *** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 動態 符號 執行 模糊 測試 緩沖區 溢出 檢測 方法 | ||
1.一種基于動態符號執行與模糊測試的緩沖區溢出檢測方法,其特征在于包括以下步驟:
步驟一、初始測試值的生成;
首先,對待測程序的待測方法參數進行符號化的處理,利用隨機的具體值對程序進行探索,在執行的過程中收集分支處的符號約束,將符號約束組成對應的符號約束樹;之后,從具體值探索的終點向符號約束樹的上層回溯,依此利用線性轉換對分支處的約束進行簡化操作,完成約束簡化后對其取反,并將取反后的條件送入約束求解器得出新的具體值,使用新的值探索出新的路徑,直到遍歷完程序中所有路徑,最終,得出每條路徑對應的初始測試值;
步驟二、基于控制流圖的插樁;
首先在表示程序語句節點的每個方法中添加構建控制流圖的代碼;與控制語句對應的節點類中的每個訪問方法負責創建該語句的子控制流圖;然后,在遍歷抽象語法樹的過程中,根據邏輯關系逐個連接這些子控制流程圖;在創建好控制流圖之后,使用基于即時編譯的動態插樁技術對控制流圖進行插樁;程序運行時,目標程序被動態編譯,分析代碼直接插入到待測程序中,并對待測程序控制流圖的每條邊進行編號;根據分析代碼和路徑編號,在評估測試用例時確定測試用例遍歷了程序中的哪些路徑從而確定檢測到了程序的哪些部分,并查看測試用例是否觸發了新狀態;
步驟三、基于變異操作的測試值生成;
將初始的測試值加載到測試值隊列中;逐個從隊列中取出測試數據,并使用簡單突變、統一變異、邊界突變來改變數據,以生成新的測試值;將這些新的測試值作為待測程序的輸入,當待測程序使用這些值開始執行時,對執行結果進行監視;在監控期間,捕獲程序錯誤并判斷此錯誤是否已經出現過;如果此錯誤從未出現過,將記錄導致該結果的測試值;最后,獲得一組有用的測試值,通過使用它們來重現程序中隱藏的缺陷。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西北工業大學,未經西北工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910293815.6/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用于測試代碼文件的方法和裝置
- 下一篇:接口測試方法、裝置、介質及電子設備





