[發(fā)明專利]一種智能合約模糊測試方法、裝置、存儲介質(zhì)及電子設(shè)備在審
| 申請?zhí)枺?/td> | 202211247082.0 | 申請日: | 2022-10-12 |
| 公開(公告)號: | CN115455435A | 公開(公告)日: | 2022-12-09 |
| 發(fā)明(設(shè)計)人: | 鄭子彬;陳翔;葉銘熙;郝偲成 | 申請(專利權(quán))人: | 中山大學(xué) |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F11/36 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 李偉賢 |
| 地址: | 510275 *** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 智能 合約 模糊 測試 方法 裝置 存儲 介質(zhì) 電子設(shè)備 | ||
1.一種智能合約模糊測試方法,其特征在于,包括以下步驟:
S1:獲取智能合約數(shù)據(jù)集,構(gòu)建各智能合約的函數(shù)調(diào)用圖和各函數(shù)的控制流圖;
S2:依次運行第一測試用例集中的各測試用例,并記錄各測試用例所覆蓋的函數(shù)和基本塊,若當(dāng)前測試用例只覆蓋了前面測試用例已覆蓋的函數(shù)和基本塊,則從所述第一測試用例集中刪除當(dāng)前測試用例,根據(jù)各測試用例運行時收集的漏洞信息和預(yù)設(shè)的漏洞測試預(yù)言判斷所述智能合約中是否存在對應(yīng)漏洞,所述基本塊為所述控制流圖中各分支對應(yīng)的代碼;
S3:計算所述第一測試用例集中各測試用例到目標(biāo)基本塊的第一距離,所述目標(biāo)基本塊是從所有測試用例未覆蓋的基本塊中隨機(jī)選擇的,將所述第一距離的最小值對應(yīng)的測試用例加入第二測試用例集,根據(jù)所述第二測試用例集中的測試用例生成若干新的測試用例,將所述新的測試用例加入所述第一測試用例集,返回執(zhí)行S2直至模糊測試時間達(dá)到預(yù)設(shè)的時間閾值。
2.根據(jù)權(quán)利要求1所述的智能合約模糊測試方法,其特征在于,計算各測試用例到目標(biāo)基本塊的第一距離包括:
根據(jù)所述函數(shù)調(diào)用圖得到各測試用例所覆蓋的各函數(shù)到目標(biāo)函數(shù)的第二距離,所述目標(biāo)函數(shù)為所述目標(biāo)基本塊所在的函數(shù);
根據(jù)所述流程控制圖得到各測試用例所覆蓋的各基本塊到所述目標(biāo)基本塊的第三距離,所述第三距離是根據(jù)所述第二距離計算得到的;
根據(jù)所述第三距離得到各測試用例到所述目標(biāo)基本塊的第一距離。
3.根據(jù)權(quán)利要求2所述的智能合約模糊測試方法,其特征在于,根據(jù)所述函數(shù)調(diào)用圖得到各測試用例所覆蓋的各函數(shù)到目標(biāo)函數(shù)的第二距離包括:
針對各測試用例所覆蓋的每一函數(shù):
若所述函數(shù)與所述目標(biāo)函數(shù)之間存在跳轉(zhuǎn)關(guān)系,則根據(jù)所述函數(shù)調(diào)用圖和Dijkstra算法計算出最短路徑,將所述最短路徑作為所述函數(shù)到目標(biāo)函數(shù)的第二距離;否則,所述函數(shù)到目標(biāo)函數(shù)的第二距離為無窮大。
4.根據(jù)權(quán)利要求2所述的智能合約模糊測試方法,其特征在于,根據(jù)所述流程控制圖得到各測試用例所覆蓋的各基本塊到所述目標(biāo)基本塊的第三距離包括:
針對各測試用例所覆蓋的每一基本塊:
若所述基本塊為所述目標(biāo)基本塊,則所述基本塊到所述目標(biāo)基本塊的第三距離為0;
若所述基本塊中存在能跳轉(zhuǎn)到所述目標(biāo)函數(shù)的函數(shù)調(diào)用語句,計算各被調(diào)用函數(shù)到所述目標(biāo)函數(shù)的第二距離,將所述第二距離的最小值與常量的乘積作為所述基本塊到所述目標(biāo)基本塊的第三距離。
5.根據(jù)權(quán)利要求2所述的智能合約模糊測試方法,其特征在于,根據(jù)所述第三距離得到各測試用例到所述目標(biāo)基本塊的第一距離包括:
將各測試用例所覆蓋的各基本塊到所述目標(biāo)基本塊的第三距離求平均得到各測試用例到所述目標(biāo)基本塊的第一距離。
6.根據(jù)權(quán)利要求1-5任一項所述的智能合約模糊測試方法,其特征在于,根據(jù)所述測試用例運行時收集的漏洞信息和預(yù)設(shè)的漏洞測試預(yù)言判斷所述智能合約中是否存在對應(yīng)漏洞包括:
若所述測試用例運行時收集的漏洞信息與預(yù)設(shè)的漏洞測試預(yù)言相匹配,則所述智能合約中包含與所述漏洞測試預(yù)言對應(yīng)的漏洞,否則,所述智能合約中不包含與所述漏洞測試預(yù)言對應(yīng)的漏洞。
7.一種智能合約模糊測試裝置,其特征在于,包括:
智能合約的圖構(gòu)建模塊,用于獲取智能合約數(shù)據(jù)集,構(gòu)建各智能合約的函數(shù)調(diào)用圖和各函數(shù)的控制流圖;
智能合約漏洞檢測模塊,用于依次運行第一測試用例集中的各測試用例,并記錄各測試用例所覆蓋的函數(shù)和基本塊,若當(dāng)前測試用例只覆蓋了前面測試用例已覆蓋的函數(shù)和基本塊,則從所述第一測試用例集中刪除當(dāng)前測試用例,根據(jù)各測試用例運行時收集的漏洞信息和預(yù)設(shè)的漏洞測試預(yù)言判斷所述智能合約中是否存在對應(yīng)漏洞,所述基本塊為所述控制流圖中各分支對應(yīng)的代碼;
新測試用例生成模塊,用于計算所述第一測試用例集中各測試用例到目標(biāo)基本塊的第一距離,將所述第一距離的最小值對應(yīng)的測試用例加入第二測試用例集,根據(jù)所述第二測試用例集中的測試用例生成若干新的測試用例,將所述新的測試用例加入所述第一測試用例集,返回智能合約漏洞檢測模塊執(zhí)行直至模糊測試時間達(dá)到預(yù)設(shè)的時間閾值。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中山大學(xué),未經(jīng)中山大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211247082.0/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種鋁殼擴(kuò)孔模具
- 下一篇:一種化工廢水處理用樹脂吸附裝置
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計算機(jī)或計算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計算機(jī)系統(tǒng)或計算機(jī)網(wǎng)絡(luò)中的節(jié)點
G06F21-22 .通過限制訪問或處理程序或過程
- 合約轉(zhuǎn)賬方法、設(shè)備和存儲介質(zhì)
- 區(qū)塊鏈合約升級方法、裝置、計算機(jī)設(shè)備及可讀存儲介質(zhì)
- 智能合約測試方法、裝置、計算機(jī)設(shè)備和存儲介質(zhì)
- 智能合約生成方法、裝置、計算機(jī)設(shè)備和存儲介質(zhì)
- 實現(xiàn)可更新智能合約的系統(tǒng)和方法
- 一種管理區(qū)塊鏈系統(tǒng)合約的方法和裝置
- 合約簽署方法、裝置、電子設(shè)備及可讀存儲介質(zhì)
- 基于加密貨幣的智能合約生成方法、相關(guān)設(shè)備及存儲介質(zhì)
- 智能合約的自動測試方法、裝置、計算機(jī)設(shè)備和存儲介質(zhì)
- 智能合約執(zhí)行方法、裝置、系統(tǒng)、存儲介質(zhì)及電子設(shè)備





