[發明專利]一種基于元操作的智能合約漏洞檢測方法和系統在審
| 申請號: | 202211634919.7 | 申請日: | 2022-12-19 |
| 公開(公告)號: | CN116127466A | 公開(公告)日: | 2023-05-16 |
| 發明(設計)人: | 徐向華;王順 | 申請(專利權)人: | 杭州電子科技大學 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 310018 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 操作 智能 合約 漏洞 檢測 方法 系統 | ||
1.一種基于元操作的智能合約漏洞檢測方法,其特征在于,包括:規則描述階段、規則解析階段和規則執行階段;
定義元操作為一種抽象函數表示形式,包含元操作名、變量類型及變量名;
定義邏輯運算符用以描述元操作之間的邏輯運算關系;
定義漏洞檢測規則,其代表一種漏洞的檢測規則描述形式;
定義漏洞檢測腳本文件,其代表一組待檢測的合約漏洞;
定義檢測代碼單元,為元操作所代表的具體檢測邏輯的代碼片段;
其中規則描述階段中,通過使用系統中已定義的元操作與邏輯運算符生成漏洞檢測腳本文件;使用元操作描述漏洞檢測時,按照其抽象函數形式中的入參類型傳入對應的類型值;
智能合約漏洞在中間表示IR中呈現的漏洞特征用漏洞檢測規則表示;
腳本文件中以順序的形式列出漏洞檢測規則;
其中規則解析階段中,包括:
通過對漏洞檢測腳本文件中的漏洞檢測規則進行順序遍歷;
解析每個漏洞檢測規則中所有元操作和入參值;
解析漏洞檢測規則中所有邏輯運算符,根據運算符的優先級順序將已解析的代碼檢測單元按照優先級添加到優先級隊列中并保存元操作之間存在的邏輯運算符;
其中規則執行階段中,包括:
遍歷獲取優先級隊列中的代碼檢測單元,執行代碼檢測單元并在中間表示IR上進行路徑匹配,若存在相應的檢測路徑則返回True,否則返回False;
并更新當前已匹配的IR路徑為待匹配IR;
將優先級隊列中所有的代碼檢測單元的結果與相應的邏輯運算符進行組合形成邏輯運算表達式;
通過計算邏輯運算表達式返回結果True、False來描述當前智能合約中是否存在特定的漏洞。
2.一種基于元操作的智能合約漏洞檢測系統,其特征在于,包括:合約轉換模塊:使用Slither工具對智能合約源代碼進行編譯,通過詞法分析與語法分析等生成中間表示IR,作為后續代碼執行中待掃描的對象;
解析模塊:將元操作源碼文件的映射關系解析為內存中元操作與具體的檢測代碼單元的映射關系,對漏洞檢測腳本文件進行解析,獲得每條檢測規則中所包含的元操作、元操作之間的優先級和各個元操作之間的邏輯關系;
執行模塊:根據解析模塊中所解析出的元操作與檢測代碼單元的映射關系來依次執行每條元操作并記錄其返回值;通過邏輯關系來組合所有返回值并計算結果從而判斷合約是否存在漏洞問題;
擴展模塊:用于注冊檢測代碼單元,并引用注冊的檢測代碼單元,實現解析模塊追加映射關系。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州電子科技大學,未經杭州電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211634919.7/1.html,轉載請聲明來源鉆瓜專利網。





