[發明專利]一種代碼檢測方法及裝置有效
| 申請號: | 202010326315.0 | 申請日: | 2020-04-23 |
| 公開(公告)號: | CN111552638B | 公開(公告)日: | 2023-08-18 |
| 發明(設計)人: | 茍亞明;蔡宇 | 申請(專利權)人: | 北京奇藝世紀科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京銀龍知識產權代理有限公司 11243 | 代理人: | 黃燦;顧春天 |
| 地址: | 100080 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 代碼 檢測 方法 裝置 | ||
1.一種代碼檢測方法,其特征在于,包括以下步驟:
提取軟件模塊中包括的源代碼;
提取所述源代碼中的函數;
利用與所述函數的類型相對應的基類模板匹配所述函數中的子類函數,以檢測所述源代碼中的臨時變量和執行分支中的一項或多項;
標記冗余的臨時變量和冗余的執行分支中的一項或多項;
其中,所述提取軟件模塊中包括的源代碼之后,還包括:
將所述源代碼根據編程語言劃分為不同的類型;
獲取每一種編程語言的子類函數和基類函數的對應關系作為所述編程語言對應的基類模板;
其中,所述利用與所述函數的類型相對應的基類模板匹配所述函數中的子類函數,包括:
標記所述函數中的參數、臨時變量和全局變量;
根據參數、所述臨時變量和所述全局變量利用字符串匹配算法匹配所述函數中的子類函數和所述基類模板對應的基類函數;
根據匹配結果獲取所述基類函數的函數聲明,所述函數聲明中包括對于所述子類函數中的臨時變量和執行分支中的一項或多項的檢測結果。
2.如權利要求1所述的代碼檢測方法,其特征在于,所述將所述源代碼根據編程語言劃分為不同的類型,包括:
識別所述源代碼的文件后綴,并根據所述文件后綴將所述源代碼劃分至不同的匹配模板;
提取所述源代碼中函數的返回值類型、函數名和參數列表,以及函數的屬性和協議,以區分同一匹配模板中的源代碼對應的編程語言。
3.如權利要求1所述的代碼檢測方法,其特征在于,所述利用與所述函數的類型相對應的基類模板匹配所述函數中的子類函數之前,包括:
根據預設映射關系建立所述子類函數對應的第一縮寫特征表;
基于所述預設映射關系建立基類函數的對應的第二縮寫特征表作為所述基類模板。
4.一種代碼檢測裝置,其特征在于,包括:
第一提取模塊,用于提取軟件模塊中包括的源代碼;
第二提取模塊,用于提取所述源代碼中的函數;
匹配模塊,用于利用與所述函數的類型相對應的基類模板匹配所述函數中的子類函數,以檢測所述源代碼中的臨時變量和執行分支中的一項或多項;
標記模塊,用于標記冗余的臨時變量和冗余的執行分支中的一項或多項;
其中,所述裝置還包括:
劃分模塊,用于將所述源代碼根據編程語言劃分為不同的類型;
基類模板獲取模塊,用于獲取每一種編程語言的子類函數和基類函數的對應關系作為所述編程語言對應的基類模板;
其中,所述匹配模塊包括:
標記子模塊,用于標記所述函數中的參數、臨時變量和全局變量;
匹配子模塊,用于根據參數、所述臨時變量和所述全局變量利用字符串匹配算法匹配所述函數中的子類函數和所述基類模板對應的基類函數;
獲取子模塊,用于根據匹配結果獲取所述基類函數的函數聲明,所述函數聲明中包括對于所述子類函數中的臨時變量和執行分支中的一項或多項的檢測結果。
5.一種電子設備,其特征在于,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
存儲器,用于存放計算機程序;
處理器,用于執行存儲器上所存放的程序時,實現權利要求1至3任一所述的代碼檢測方法步驟。
6.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時,實現權利要求1至3任一所述的代碼檢測方法步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇藝世紀科技有限公司,未經北京奇藝世紀科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010326315.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種指紋頭結構
- 下一篇:一種物聯網信息顯示方法、計算機設備及存儲介質





