[發(fā)明專利]一種基于函數(shù)調用關系圖的代碼同源性分析方法有效
| 申請?zhí)枺?/td> | 201811212440.8 | 申請日: | 2018-10-18 |
| 公開(公告)號: | CN109542508B | 公開(公告)日: | 2020-12-29 |
| 發(fā)明(設計)人: | 付才;張哲暢;胡啟宬;韓蘭勝;劉銘;崔永泉;駱婷;湯學明 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F8/74 | 分類號: | G06F8/74 |
| 代理公司: | 華中科技大學專利中心 42201 | 代理人: | 李智;曹葆青 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 函數(shù) 調用 關系 代碼 同源性 分析 方法 | ||
1.一種基于函數(shù)調用關系圖的代碼同源性分析方法,其特征在于,該方法包括以下步驟:
S1.基于代碼的函數(shù)調用關系圖,生成函數(shù)調用關系圖的母圖;
S2.計算函數(shù)調用關系圖與母圖之間的相對編輯距離;
S3.計算函數(shù)調用關系圖對應矩陣的半方差值;
S4.計算函數(shù)調用關系圖的度分布有序值;
S5.基于相對編輯距離、半方差值、度分布有序值三者的中至少一個,分析代碼同源性;
所述計算函數(shù)調用關系圖與母圖之間的相對編輯距離包括以下步驟:
S201.編輯距離DE初始為0;
S202.從函數(shù)調用關系圖的頂層開始,依次檢查每個層次所有節(jié)點的子節(jié)點,當前檢查層次記為l,每檢查到函數(shù)調用關系圖中的一個l層節(jié)點的子節(jié)點對應到母圖中的層數(shù)不是l+1層,則編輯距離DE增加1;
S203.按照層次遍歷所有節(jié)點,得到編輯距離DE;
S204.基于編輯距離DE,按照下列公式計算相對編輯距離DRE;
式中,n為函數(shù)的總個數(shù);
基于相對編輯距離分析代碼同源性的方式如下:相對編輯距離越小,函數(shù)調用關系圖與母圖的相似性越高,程序的層次性越好,從代碼的邏輯角度認為它更清晰;反之,函數(shù)調用關系圖與母圖之間的相似性越低,那么函數(shù)調用的層次性越差,從代碼的邏輯角度認為它更混亂;
基于半方差值分析代碼同源性的方式如下:
當函數(shù)總數(shù)n在1×101~1×102的時候,若半方差值γ5×10-3,認為屬于廣度優(yōu)先編寫者;若半方差值γ7.5×10-3,認為屬于深度優(yōu)先編寫者;
當函數(shù)總數(shù)n在5×102~2.5×103的時候,若半方差值γ5×10-4,認為屬于廣度優(yōu)先編寫者,若半方差值γ7.5×10-4,認為屬于深度優(yōu)先編寫者。
2.如權利要求1所述的代碼同源性分析方法,其特征在于,所述基于代碼的函數(shù)調用關系圖,生成函數(shù)調用關系圖的母圖為:
按廣度優(yōu)先遍歷函數(shù)調用關系圖,在遍歷過程中對圖進行操作,即第一次尋到某函數(shù)時標記該函數(shù)所在層數(shù),即可得到母圖。
3.如權利要求1所述的代碼同源性分析方法,其特征在于,所述計算函數(shù)調用關系圖對應矩陣的半方差值包括以下步驟:
S301.基于函數(shù)調用關系圖,生成函數(shù)調用矩陣Xn×n;
S302.計算函數(shù)調用矩陣的半方差值γ;
式中,h為每一步計算的距離值,取值范圍為N(h)為抽樣間隔等于h時的點對數(shù),n為函數(shù)的總個數(shù),Xi,j為函數(shù)調用矩陣Xn×n第i行第j列矩陣元素。
4.如權利要求3所述的代碼同源性分析方法,其特征在于,所述基于函數(shù)調用關系圖,生成函數(shù)調用矩陣Xn×n,具體如下:
(1)按照代碼的編寫順序的先后,將函數(shù)升序地定義為函數(shù)調用矩陣的列名、行名;
(2)根據(jù)函數(shù)調用關系圖,判斷第i行對應的函數(shù)是否調用了第j列對應的函數(shù),若是,則矩陣元素Xi,j為1;否則,矩陣元素Xi,j為0。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經(jīng)華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201811212440.8/1.html,轉載請聲明來源鉆瓜專利網(wǎng)。





