[發明專利]利用大數據和神經網絡的軟件分析方法和裝置有效
| 申請號: | 201810107975.2 | 申請日: | 2018-02-02 |
| 公開(公告)號: | CN108229170B | 公開(公告)日: | 2020-05-12 |
| 發明(設計)人: | 馬寧 | 申請(專利權)人: | 中科軟評科技(北京)有限公司 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06F8/41;G06F16/9535;G06F16/955;G06N3/08 |
| 代理公司: | 北京維正專利代理有限公司 11508 | 代理人: | 羅煥清 |
| 地址: | 100070 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 利用 數據 神經網絡 軟件 分析 方法 裝置 | ||
本發明公開了一種軟件分析方法,包括:步驟101,搜索并下載開源代碼;步驟102,提取所述開源代碼的指紋信息;步驟103,將所述指紋信息存儲到指紋數據庫中;步驟104,利用所述指紋數據庫對待分析軟件進行分析,識別其中的開源代碼,并確定識別出的開源代碼的來源。本發明還公開了一種與上述方法對應的裝置、計算機系統和計算機可讀存儲介質。本發明的優點在于能夠提高開源代碼數據庫覆蓋的數據廣度,以及軟件分析的準確性和效率。
技術領域
本發明屬于計算機軟件應用領域,具體涉及一種利用大數據和神經網絡的軟件分析方法和裝置,以及計算機可讀存儲介質。
背景技術
隨著計算機軟件技術的發展以及用戶對互聯網應用需求的提升,對軟件功能多樣性的要求越來越高,這導致軟件規模不斷增長,出現了大量的大型軟件項目。對于軟件開發者來說,開發大型軟件項目是非常費時費力的,因而,為了節省人力和物力的投入,大型軟件項目或多或少會使用互聯網上的開源代碼。
對于互聯網上公開的開源代碼,很多由于編寫方法不當而存在安全隱患,例如導致內存泄漏等,如果軟件開發者將存在安全隱患的開源代碼應用到軟件中,將導致軟件存在安全漏洞,后續軟件運行會出現問題。因而,當軟件開發者將開發完畢的軟件交付給軟件用戶時,軟件用戶需要對軟件進行全面的分析,確定軟件是否能夠完成預定功能、軟件運行的安全性和穩定性,尤其是,需要識別軟件中的所有開源代碼及其來源,確定是否存在安全隱患。
已有的解決方案是:搜集已知的開源代碼,建立開源代碼數據庫;將待分析軟件的代碼與開源代碼數據庫中的開源代碼進行比較,從而識別開源代碼及其來源。
上述方案存在以下不足之處:
1.開源代碼數據庫覆蓋的代碼有限,不能夠識別互聯網上所有的開源代碼及其來源;
2. 僅能基于開源代碼的靜態特征進行識別,識別效率和準確率低。
發明內容
本發明的目的是提供一種軟件分析方法和裝置,其優點在于,通過搜索和下載互聯網上所有能夠獲得的開源代碼,基于開源代碼的動態特征和靜態特征來對待分析軟件中的開源代碼進行識別,提高了識別準確率。
本發明的上述技術目的是通過以下技術方案得以實現的:
一種軟件分析方法,包括:
步驟S 101,搜索并下載開源代碼;
步驟S 102,提取所述開源代碼的指紋信息;
步驟S 103,將所述指紋信息存儲到指紋數據庫中;
步驟S 104,利用所述指紋數據庫對待分析軟件進行分析,識別其中的開源代碼,并確定識別出的開源代碼的來源。
優選地,步驟S 102具體為:
提取開源代碼的靜態特征和動態特征,基于所述靜態特征和動態特征計算得到開源代碼的指紋信息;
所述靜態特征包括分析開源代碼的語言形式和語法結構而得到的執行路徑信息;
所述動態特征包括開源代碼執行時的執行路徑信息。
優選地,提取開源代碼的動態特征包括:對開源代碼進行編譯,得到二進制代碼,分析所述二進制代碼中的函數調用關系,得到所述動態特征。
優選地,基于所述靜態特征和動態特征計算得到開源代碼的指紋信息包括:
對所述靜態特征和動態特征進行哈希運算,得到靜態特征哈希值和動態特征哈希值;
將所述靜態特征哈希值和動態特征哈希值進行合并,從而得到所述開源代碼的指紋信息。
優選地,通過以下步驟得到所述動態特征哈希值:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中科軟評科技(北京)有限公司,未經中科軟評科技(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810107975.2/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





