[發明專利]一種面向二進制程序的模塊化方法在審
| 申請號: | 202210508164.X | 申請日: | 2022-04-27 |
| 公開(公告)號: | CN115167916A | 公開(公告)日: | 2022-10-11 |
| 發明(設計)人: | 劉勝利;朱肖雅;蔡瑞杰;楊啟超;趙方方;郭世臣;郭茜茜 | 申請(專利權)人: | 中國人民解放軍戰略支援部隊信息工程大學 |
| 主分類號: | G06F8/75 | 分類號: | G06F8/75;G06F8/53;G06F8/41;G06K9/62 |
| 代理公司: | 鄭州明華專利代理事務所(普通合伙) 41162 | 代理人: | 葉朝輝 |
| 地址: | 450000 河*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 二進制 程序 模塊化 方法 | ||
1.一種面向二進制程序的模塊化方法,其特征在于:包括以下步驟:
步驟一、對二進制函數進行反匯編并提取函數依賴關系,構建函數依賴圖,圖中節點代表函數,邊代表函數之間的依賴關系;
步驟二、將函數依賴圖劃分為包含各個函數集合的模塊,包括以下步驟:
S1、相似鄰居移動:輸入節點集合V、函數邊依賴集合E以及相似度閾值w,將每一個節點看作一個獨立模塊,基于相似鄰居移動合并節點,并在相似鄰居移動過程中對于每個節點使用杰卡德距離計算該節點與其所有鄰居節點的相似度值SVij,得到該節點與所有鄰居節點的相似度值合集SVs,
式中:N(i)和N(j)分別代表節點i和節點j的鄰居;
從SVs中選出最大的SV;若最大SV值高于相似度閾值w,則將該節點移動到具有最大SV值的鄰居節點所在模塊;否則節點保留在自己原始的模塊中;輸出每個節點所在模塊communities;
S2、基于模塊度增益的局部移動:輸入函數節點集合V、函數依賴邊集合E以及此時節點所在模塊communities;
對于每一個函數節點,首先節點所在模塊初始化為最佳模塊并將模塊度增益初始化為0,計算并記錄將該節點移動到其所有鄰居節點所在模塊的模塊度增益,并選擇最大的模塊度增益以及相關的模塊;
如果最大的模塊度增益大于0,將該節點移動到相關模塊中,否則保留在原始模塊中;迭代執行,直到局部移動任何節點都不存在模塊度增益大于0時停止;然后輸出基于模塊度增益的局部移動后生成的每個節點所在模塊情況communities;
S3、模塊組合:將基于模塊度增益的局部移動后生成的各個模塊合并為一個新的節點,將模塊內部中各個函數之間的依賴關系合并為新節點的自環,構建成一個新的網絡,新網絡中的節點為基于模塊度增益的局部移動的模塊,新節點之間的依賴關系為新節點對應模塊與模塊之間的依賴關系。
2.根據權利要求1所述的面向二進制程序的模塊化方法,其特征在于:所述函數依賴關系包括函數調用依賴、數據引用依賴以及代碼局部依賴,其中函數調用依賴包括直接調用依賴和共引關系依賴。
3.根據權利要求2所述的面向二進制程序的模塊化方法,其特征在于:對于數據引用依賴,將字符串作為數據,為了得到每個函數引用的數據,遍歷函數的每一條指令,并判斷它是否交叉引用到.rodata段存放字符串的偏移地址,獲取所有這樣的偏移地址并將他們映射到該函數;對于每一個函數,將映射關系表達為:Φ:f→D,D=D1,...,Dm,其中Di表示函數f訪問的第i個字符串;遍歷完所有的函數之后,
如果函數A和函數B訪問相同的數據,則建立一條從函數A到函數B的邊,函數A和函數B之間的大量公共數據引用意味著它們更有可能屬于同一個模塊,數據引用依賴的邊權重等價于相同數據引用次數,
式中:是函數i和函數j的數據引用依賴權重;yd是相同數據引用次數;Ed是數據引用依賴邊集合。
4.根據權利要求2所述的面向二進制程序的模塊化方法,其特征在于:對于代碼局部性依賴,首先將所有的函數按照地址進行排序,然后在相鄰兩個函數之間構建一條權重為1的邊;將函數按地址排序得到集合為f1,f2,...,fn,構建的代碼局部性依賴邊權重為:
式中:是函數i和函數j的數據引用依賴權重。
5.根據權利要求2所述的面向二進制程序的模塊化方法,其特征在于:在提取所有的函數依賴關系后,在構建函數依賴圖時,考慮到不同的模塊之間可能存在邊,構建一個加權的函數依賴圖G=(V,E,W),V是二進制程序中的函數集合,E表示函數之間的依賴關系,權重為三種依賴關系的結合,
式中:是函數i和函數j的依賴權重總和;參數α,β,γ分別代表函數調用依賴、數據引用依賴以及代碼局部依賴的貢獻;α+β+γ=1。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍戰略支援部隊信息工程大學,未經中國人民解放軍戰略支援部隊信息工程大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210508164.X/1.html,轉載請聲明來源鉆瓜專利網。





