System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及二進制代碼文件同源性分析,特別是涉及一種二進制代碼文件的同源性分析方法、裝置和計算機設備。
技術介紹
1、二進制代碼文件同源性分析(binary?code?similarity?analysis,bcsa)是一種用于比較和分析不同二進制文件間相似性的重要技術。該技術通過檢測和比對二進制代碼片段,識別出源自相同或相似源代碼的文件或代碼片段,以此來判斷它們之間的同源關系。這種分析不僅涉及到字節(jié)級別的比對,還包括指令級別的語義分析,以及結構和功能級別的比較。尤其是涉及程序漏洞分析、以及安全檢測領域,通過識別已知漏洞在不同二進制文件中的存在,可以幫助安全研究人員快速定位潛在的安全隱患,提高漏洞修復的效率,因此如何提升二進制代碼文件同源性分析,是當前的研究重點。
2、現有靜態(tài)分析技術通過對二進制文件的反匯編或反編譯,提取其中的控制流圖、數據流圖等特征,并通過圖匹配算法進行比較,從而給分析二進制代碼文件的同源性信息,但是在面對高度混淆或優(yōu)化的代碼時,該技術易受編譯器等多種因素影響,使得對二進制代碼文件的匹配誤報率高、時效低,從而導致對高度混淆的二進制代碼文件的同源性分析精準度較低。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種二進制代碼文件的同源性分析方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品。
2、第一方面,本申請?zhí)峁┝艘环N二進制代碼文件的同源性分析方法,包括:
3、通過安全監(jiān)測程序,獲取安全檢測得到的各二進制代碼文
4、基于各所述二進制代碼文件的函數調用圖,通過混合搜索策略,識別各所述二進制代碼文件之間的同構子圖,并對每個同構子圖中的各自寫函數節(jié)點,進行符號程序切片處理,得到每個同構子圖的各自寫函數節(jié)點對應的符號程序切片代碼;
5、針對每個同構子圖,對所述同構子圖對應的各符號程序切片代碼進行轉義處理,得到所述同構子圖對應的各數學語義信息,并對各所述數學語義信息進行相似度計算,得到所述同構子圖對應的各二進制代碼文件之間的代碼相似度值;
6、將大于相似度閾值的代碼相似度值對應的各二進制代碼文件,作為同源二進制代碼文件。
7、可選的,所述識別每個二進制代碼文件對應的函數調用圖,包括:
8、針對每個二進制代碼文件,通過中間文件調整策略,將每個二進制代碼文件,轉化為各中間表示文件,并針對每個中間表示文件,識別所述中間表示文件中的各二進制代碼對應的函數類型;
9、按照每個二進制代碼對應的函數類型,將各所述二進制代碼劃分為各所述函數類型的二進制代碼組,并基于各所述函數類型的二進制代碼組,通過函數調用圖構建策略,構建所述中間表示文件的函數調用圖,得到所述中間表示文件對應的二進制代碼文件的函數調用圖。
10、可選的,所述基于各所述二進制代碼文件的函數調用圖,通過混合搜索策略,識別各所述二進制代碼文件之間的同構子圖,包括:
11、針對每個二進制代碼文件,在所述二進制代碼文件的函數調用圖,隨機篩選起始節(jié)點,并基于所述起始節(jié)點,在每個其他二進制代碼文件的其他函數調用圖中,查詢所述起始節(jié)點對應的各候選節(jié)點;
12、基于所述起始節(jié)點、以及各所述候選節(jié)點,通過同構子圖搜索策略,查詢與所述函數調用圖存在同構子圖的各目標其他函數調用圖,并將所述函數調用圖、與各所述目標其他函數調用圖之間的同構子圖,作為所述函數調用圖所屬的二進制代碼文件,與各所述目標其他函數調用圖所屬的其他二進制代碼文件之間的同構子圖。
13、可選的,所述對每個同構子圖中的各自寫函數節(jié)點,進行符號程序切片處理,得到每個同構子圖的各自寫函數節(jié)點對應的符號程序切片代碼,包括:
14、針對每個同構子圖,識別所述同構子圖中的自寫函數類型的自寫函數節(jié)點,并識別各所述自寫函數節(jié)點對應的節(jié)點代碼、以及各所述自寫函數節(jié)點對應的符號參數;
15、基于各所述自寫函數節(jié)點對應的符號參數,通過符號切片算法,對各所述自寫函數節(jié)點對應的節(jié)點代碼進行符號切片處理,得到各所述自寫函數節(jié)點對應的符號程序切片代碼。
16、可選的,所述對所述同構子圖對應的各符號程序切片代碼進行轉義處理,得到所述同構子圖對應的各數學語義信息,包括:
17、識別各所述符號程序切片代碼的內存堆地址語義指令;
18、通過語義等價識別算法,分別對每個符號程序切片代碼的內存堆地址語義指令進行指令格式轉換處理,得到每個符號程序切片代碼對應的數學表達式語言;
19、將各所述符號程序切片代碼對應的數學表達式語言,作為所述同構子圖對應的各數學語義信息。
20、可選的,所述對各所述數學語義信息進行相似度計算,得到所述同構子圖對應的各二進制代碼文件之間的代碼相似度值,包括:
21、基于所述同構子圖對應的兩個二進制代碼文件之間的對應自寫函數節(jié)點所的數學語義信息,分別構建所述兩個二進制代碼文件之間的對應函數集合;
22、通過語義相似度計算算法,分別對所述對應函數集合中的各對應自寫函數節(jié)點所的數學語義信息進行語義相似度計算處理,得到各所述對應自寫函數節(jié)點之間的語義相似值;
23、基于各所述對應自寫函數節(jié)點之間的語義相似值,通過程序語義相似度算法,計算所述兩個二進制代碼文件之間的代碼相似度值。
24、第二方面,本申請還提供了一種二進制代碼文件的同源性分析裝置,包括:
25、獲取模塊,用于通過安全監(jiān)測程序,獲取安全檢測得到的各二進制代碼文件,并識別每個二進制代碼文件對應的函數調用圖;
26、識別模塊,用于基于各所述二進制代碼文件的函數調用圖,通過混合搜索策略,識別各所述二進制代碼文件之間的同構子圖,并對每個同構子圖中的各自寫函數節(jié)點,進行符號程序切片處理,得到每個同構子圖的各自寫函數節(jié)點對應的符號程序切片代碼;
27、計算模塊,用于針對每個同構子圖,對所述同構子圖對應的各符號程序切片代碼進行轉義處理,得到所述同構子圖對應的各數學語義信息,并對各所述數學語義信息進行相似度計算,得到所述同構子圖對應的各二進制代碼文件之間的代碼相似度值;
28、確定模塊,用于將大于相似度閾值的代碼相似度值對應的各二進制代碼文件,作為同源二進制代碼文件。
29、可選的,所述獲取模塊,具體用于:
30、針對每個二進制代碼文件,通過中間文件調整策略,將每個二進制代碼文件,轉化為各中間表示文件,并針對每個中間表示文件,識別所述中間表示文件中的各二進制代碼對應的函數類型;
31、按照每個二進制代碼對應的函數類型,將各所述二進制代碼劃分為各所述函數類型的二進制代碼組,并基于各所述函數類型的二進制代碼組,通過函數調用圖構建策略,構建所述中間表示文件的函數調用圖,得到所述中間表示文件對應的二進制代碼文件的函數調用圖。
32、可選的,所述識別模塊,具本文檔來自技高網...
【技術保護點】
1.一種二進制代碼文件的同源性分析方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述識別每個二進制代碼文件對應的函數調用圖,包括:
3.根據權利要求2所述的方法,其特征在于,所述基于各所述二進制代碼文件的函數調用圖,通過混合搜索策略,識別各所述二進制代碼文件之間的同構子圖,包括:
4.根據權利要求1所述的方法,其特征在于,所述對每個同構子圖中的各自寫函數節(jié)點,進行符號程序切片處理,得到每個同構子圖的各自寫函數節(jié)點對應的符號程序切片代碼,包括:
5.根據權利要求1所述的方法,其特征在于,所述對所述同構子圖對應的各符號程序切片代碼進行轉義處理,得到所述同構子圖對應的各數學語義信息,包括:
6.根據權利要求1所述的方法,其特征在于,所述對各所述數學語義信息進行相似度計算,得到所述同構子圖對應的各二進制代碼文件之間的代碼相似度值,包括:
7.一種二進制代碼文件的同源性分析裝置,其特征在于,所述裝置包括:
8.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現權利要求1至6中任一項所述的方法的步驟。
10.一種計算機程序產品,包括計算機程序,其特征在于,該計算機程序被處理器執(zhí)行時實現權利要求1至6中任一項所述的方法的步驟。
...【技術特征摘要】
1.一種二進制代碼文件的同源性分析方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述識別每個二進制代碼文件對應的函數調用圖,包括:
3.根據權利要求2所述的方法,其特征在于,所述基于各所述二進制代碼文件的函數調用圖,通過混合搜索策略,識別各所述二進制代碼文件之間的同構子圖,包括:
4.根據權利要求1所述的方法,其特征在于,所述對每個同構子圖中的各自寫函數節(jié)點,進行符號程序切片處理,得到每個同構子圖的各自寫函數節(jié)點對應的符號程序切片代碼,包括:
5.根據權利要求1所述的方法,其特征在于,所述對所述同構子圖對應的各符號程序切片代碼進行轉義處理,得到所述同構子圖對應的各數學語義信息,包括:
...
【專利技術屬性】
技術研發(fā)人員:王炎,茍孟洛,李擎宇,楊卉年,王浩辰,
申請(專利權)人:天翼云科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。