[發明專利]基于抽象語法樹的源碼檢測方法及裝置、計算機存儲介質在審
| 申請號: | 202011641296.7 | 申請日: | 2020-12-31 |
| 公開(公告)號: | CN112631944A | 公開(公告)日: | 2021-04-09 |
| 發明(設計)人: | 楊俊 | 申請(專利權)人: | 平安國際智慧城市科技股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京辰權知識產權代理有限公司 11619 | 代理人: | 劉廣達 |
| 地址: | 518002 廣東省深圳市前海深港合*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 抽象 語法 源碼 檢測 方法 裝置 計算機 存儲 介質 | ||
1.一種基于抽象語法樹的源碼檢測方法,其特征在于,包括:
生成待檢測的源碼對應的抽象語法樹;
遍歷抽象語法樹的所有節點,從所述所有節點中篩選出用于應用程序編程接口調用的目標節點;
通過訪問所述目標節點方式得到應用程序編程接口的表達清單,表達清單的數據類型與事先配置的調用名單的數據類型相同;
將所述表達清單與所述調用名單進行比對,以得到應用程序編程接口調用的比對結果;
根據所述比對結果鎖定存在風險的應用程序編程接口調用。
2.根據權利要求1所述的基于抽象語法樹的源碼檢測方法,其特征在于,所述表達清單和所述調用名單的數據類型均為字符串;將所述表達清單與事先配置的調用名單進行比對的過程包括:
利用所述表達清單中的字符串數據與所述調用名單中的字符串數據進行字符串比對;
將從表達清單中讀取的匹配成功的字符串數據作為所述比對結果。
3.根據權利要求1所述的基于抽象語法樹的源碼檢測方法,其特征在于,還包括:
讀取所述抽象語法樹與所述源碼之間的對應關系;
依據所述對應關系查找到存在風險的應用程序編程接口調用在所述源碼中的位置。
4.根據權利要求3所述的基于抽象語法樹的源碼檢測方法,其特征在于,還包括:
確定存在風險的應用程序編程接口調用在所述源碼中的位置后,在該位置處生成與存在風險的應用程序編程接口調用一一對應的自定義警告信息。
5.根據權利要求4所述的基于抽象語法樹的源碼檢測方法,其特征在于,還包括:
確定存在風險的應用程序編程接口調用在所述源碼中的位置后,在該位置處還生成與存在風險的應用程序編程接口調用一一對應的修復建議信息。
6.根據權利要求1至5中任一權利要求所述的基于抽象語法樹的源碼檢測方法,其特征在于,所述生成待檢測的源碼對應的抽象語法樹過程包括:
對所述源碼進行詞法分析,以將所述源碼切分成多類標記序列;
對所述多類標記序列進行語法分析,以將所述多類標記序列按照語法轉化為解析樹;
對所述解析樹進行語義分析,以生成多個初始節點,按照不同的初始節點之間的層級關系構建抽象語法樹。
7.根據權利要求1至5中任一權利要求所述的基于抽象語法樹的源碼檢測方法,其特征在于,遍歷抽象語法樹的所有節點的過程包括:
基于分析函數調用鏈對抽象語法樹的所有節點進行深度優先訪問。
8.根據權利要求1至5中任一權利要求所述的基于抽象語法樹的源碼檢測方法,其特征在于,還包括:
啟動源碼編譯過程;
在源碼編譯過程中遍歷所述抽象語法樹、訪問所述目標節點以及鎖定存在風險的應用程序編程接口調用。
9.一種基于抽象語法樹的源碼檢測裝置,其特征在于,包括:
抽象語法樹生成模塊,用于生成待檢測的源碼對應的抽象語法樹;
目標節點篩選模塊,用于遍歷抽象語法樹的所有節點,并用于從所述所有節點中篩選出用于應用程序編程接口調用的目標節點;
表達清單獲取模塊,用于通過訪問所述目標節點方式得到應用程序編程接口的表達清單;其中,表達清單的數據類型與事先配置的調用名單的數據類型相同;
接口調用比對模塊,用于將所述表達清單與所述調用名單進行比對,以得到應用程序編程接口調用的比對結果;
風險調用鎖定模塊,用于根據所述比對結果鎖定存在風險的應用程序編程接口調用。
10.一種計算機存儲介質,其特征在于,其上存儲有計算機程序,所述計算機程序被處理器執行時實現如權利要求1至8中任一權利要求所述的基于抽象語法樹的源碼檢測方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于平安國際智慧城市科技股份有限公司,未經平安國際智慧城市科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011641296.7/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:旋轉培養機
- 下一篇:用于拼接顯示的顯示電路、拼接顯示結構及顯示系統





