[發(fā)明專利]分級多特征的代碼同源分析方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 202210913259.X | 申請日: | 2022-08-01 |
| 公開(公告)號: | CN114968351B | 公開(公告)日: | 2022-10-21 |
| 發(fā)明(設計)人: | 高慶;張世琨;李玫;孫基男 | 申請(專利權)人: | 北京大學 |
| 主分類號: | G06F8/75 | 分類號: | G06F8/75 |
| 代理公司: | 北京華創(chuàng)智道知識產(chǎn)權代理事務所(普通合伙) 11888 | 代理人: | 彭隨麗 |
| 地址: | 100871*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 分級 特征 代碼 同源 分析 方法 系統(tǒng) | ||
本發(fā)明涉及軟件代碼分析領域,公開了一種分級多特征的代碼同源分析方法及系統(tǒng),使用值依賴分析技術,脫離了特征提取對于結構的依賴,更準確地發(fā)現(xiàn)代碼中的不可達路徑、并更精確地計算變量常量值和變量之間的依賴關系,從而更加全面、準確構建代碼在控制流和數(shù)據(jù)流上的歸一化模型,使用分級的方法,將項目按照粒度由大到小劃分為項目、包、文件、類和函數(shù)五層,此外按照分析精度由低到高劃分為文本、標識、語法、語義四層,通過流水線由項目向函數(shù)逐級分解、再從函數(shù)向項目逐級推導和綜合結果,通過流水線的方式有機組合不同粒度和不同分析層次,利用不同分析方法的優(yōu)點,加速代碼匹配過程,提高匹配速度和匹配精度。
技術領域
本發(fā)明涉及軟件代碼分析領域,尤其涉及一種分級多特征的代碼同源分析方法及系統(tǒng)。
背景技術
現(xiàn)有的基于文本、標識、語法等分析技術構建的程序模型不夠精確,對代碼結構改變等問題并未很好地解決,由此造成了精度的缺失。此外,現(xiàn)有一般性的反混淆方法對代碼的依賴關系構建不夠準確,因而對數(shù)據(jù)流等混淆技術的針對能力不足。
目前已存在多種代碼匹配的方法,但是分析粒度較為單一,不能有效平衡匹配效率與匹配精度,分析層次較低的方法效率較高、精度較低;分析層次較高的方法匹配效率較低、精度較高。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對軟件代碼的高維特性,從函數(shù)、類、文件、包、項目的級別上,歸一化提取開源代碼中間表示,構建軟件代碼復合特征、多級流水、混合粒度的提取方法和多層次特征索引生成及檢索機制。
為實現(xiàn)上述目的,本發(fā)明提供一種分級多特征的代碼同源分析方法,包括:
通過代碼庫提取代碼,將所述代碼展開為項目級、包級和文件級,分別提取不同級的文本摘要并建立與之對應的特征值庫;
判斷所述文件級的屬性是否為代碼文件,若是,則判斷所述代碼文件是否為面向?qū)ο笳Z言,若是,則將所述文件級展開為類級并提取所述類級的文本摘要,建立類級特征值庫,若不是,則將所述文件級展開為函數(shù)級并提取所述函數(shù)級的文本摘要,建立函數(shù)級特征值庫;
對被測試代碼進行預處理并將所述被測試代碼劃分為所述項目級、所述包級和所述文件級的格式;
計算所述被測試代碼的文本摘要,判斷所述被測試代碼的文本摘要是否與不同級的特征值庫匹配,若不匹配,則匯總并分析不匹配內(nèi)容,得到所述函數(shù)級的標識集合;
提取所述標識集合的標識特征、語法特征和語義特征,判斷所述標識集合是否與不同級的特征值庫匹配,若匹配,則建立多特征模型,得到檢測結果。
根據(jù)本發(fā)明的一個方面,所述分別提取不同級的文本摘要并建立與之對應的特征值庫的方法為:
將所述代碼展開為所述項目級,提取所述項目級的文本摘要,建立項目級特征值庫,將所述項目級展開為所述包級,提取所述包級的文本摘要,建立包級特征值庫,將所述包級展開為所述文件級,提取所述文件級的文本摘要,建立文件級特征值庫。
根據(jù)本發(fā)明的一個方面,所述函數(shù)級和所述文件級提取的文本摘要分別為所述函數(shù)級和所述文件級本身的MD5指紋值,所述類級、所述包級和所述項目級提取的文本摘分別是由所述類級、所述包級和所述項目級下層指紋構成的字符串生成的所述MD5指紋值。
根據(jù)本發(fā)明的一個方面,所述判斷所述文件級的屬性是否為代碼文件的方法為:
判斷所述文件級的屬性是否為所述代碼文件,若是,則提取所述代碼文件的文本摘要并通過哈希計算建立代碼文件級特征庫,若不是,則通過哈希值計算,建立非代碼文件哈希值庫。
根據(jù)本發(fā)明的一個方面,所述建立函數(shù)級特征值庫的方法為:
對所述函數(shù)級進行變換,得到中間表示,對所述代碼通過詞法層、語法層和語義層對所述代碼進行分析并提取特征值,建立所述函數(shù)級特征值庫。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京大學,未經(jīng)北京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210913259.X/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種基于目標檢測的路標識別方法
- 下一篇:一種板式太陽能海水蒸發(fā)器





