[發(fā)明專利]基于靜態(tài)胎記的軟件抄襲檢測方法有效
| 申請?zhí)枺?/td> | 201811092227.8 | 申請日: | 2018-09-19 |
| 公開(公告)號: | CN109241706B | 公開(公告)日: | 2021-04-30 |
| 發(fā)明(設(shè)計(jì))人: | 王曙燕;孫家澤;趙鵬飛 | 申請(專利權(quán))人: | 西安郵電大學(xué) |
| 主分類號: | G06F21/12 | 分類號: | G06F21/12;G06F21/16 |
| 代理公司: | 北京匯信合知識產(chǎn)權(quán)代理有限公司 11335 | 代理人: | 吳甘棠 |
| 地址: | 710061 陜西*** | 國省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 靜態(tài) 胎記 軟件 抄襲 檢測 方法 | ||
1.一種基于靜態(tài)胎記的軟件抄襲檢測方法,其特征在于包括以下步驟:
(1)由用戶指定源工程PA和PA中的源類A以及可疑工程PB和PB中的可疑類B,再選定迭代深度d{d≥0};
(2)靜態(tài)分析A,B編譯后得到的中間文件classA和classB,將A中所記錄的nA個(gè)方法的信息結(jié)構(gòu)化的存儲(chǔ)在中,同時(shí)將A中所有API調(diào)用的字面量存儲(chǔ)在中;將B中所記錄的nB個(gè)方法的信息結(jié)構(gòu)化的存儲(chǔ)在中,同時(shí)將B中所有API調(diào)用的字面量存儲(chǔ)在中;分別比較和和得到類在API調(diào)用方面的相似度simAPI和類在指令序列比較方面的相似度simins,比較步驟如下:
①.統(tǒng)計(jì)包含的類調(diào)用數(shù)目,記為m1,包含的類調(diào)用數(shù)目,記為m2,其中相同的類調(diào)用數(shù)目m1∩m2,和中所有不重復(fù)的類調(diào)用數(shù)目為m1∪m2,源類A與可疑類B在API調(diào)用方面的相似度為
②.對和中的每一個(gè)方法M實(shí)施以下步驟:
Ⅰ.遍歷M中包含m個(gè)有序指令ins1,ins2,...insm,記正在遍歷的指令為insj,若insj是一個(gè)調(diào)用其他方法的指令,且調(diào)用的方法是類所在工程P中存在的方法,則用該方法的指令序列替代insj; 當(dāng)ins1,ins2,...insm遍歷完畢后d=d-1;
Ⅱ.重復(fù)Ⅰ,直到d=0或M中任意一項(xiàng)的指令序列中都不包含指向工程P中存在的方法的指令時(shí),停止;
Ⅲ.將M中每一個(gè)指令剝離操作數(shù),生成M在迭代深度為d時(shí)的指令序列seq;
③.建立矩陣Matrix[nA][nB],其中Matrix[i][j]所存儲(chǔ)的值為源類A中第i個(gè)方法與可疑類B中第j個(gè)方法的相似度,比較兩個(gè)方法的相似度如下:
Ⅰ.記方法M1在迭代深度為d時(shí)剝離了操作數(shù)的指令序列為seq1,其長度為len1;記方法M2在迭代深度為d時(shí)剝離了操作數(shù)的指令序列為seq2,其長度為len2;用戶指定該次檢測的碎片閾值為threshold;
Ⅱ.構(gòu)建LCS比較矩陣LCS[len1][len2],其中LCSi,j記錄了seq1在i位置上的指令與seq2在j位置上的指令的比較情況; 若seqi≠seqj,則令LCSi,j=0;若seqi=seqj且i=0||j=0,則令LCSi,j=1;若seqi=seqj且i≠0j≠0,則令LCSi,j=LCSi-1,j-1+1;
Ⅲ.定義trace為LCSr,s,...,LCSi-1,j-1,LCSi,j,LCSi+1,j+1,...,LCSp,q,其中LCSr,s=1,并且LCSp+1,q+1=0||p=len1||q=len2; 找出LCS比較矩陣中所有的trace,遍歷所有trace,若該trace中最大元素值大于threshold,則將該最大元素值添加到集合pieces中;
Ⅳ.兩個(gè)方法的相似度計(jì)算公式為
④.對矩陣Matrix[nA][nB],記錄每一行最大值為則源類A與可疑類B在指令序列方面的相似度為
(3)計(jì)算源類A與可疑類B的相似度,相似度計(jì)算公式為其中f(x)為sigmod函數(shù),f(x)作用為將輸入映射到[0,1]區(qū)間內(nèi),α為相似度在API調(diào)用方面的權(quán)重,β為相似度在指令序列方面的權(quán)重,而bais為偏置,bais的作用為調(diào)整f(x)的凈輸入;
(4)最終根據(jù)步驟(3)中得到的源類A與可疑類B的相似度,判斷兩個(gè)類是否存在抄襲關(guān)系,若simA,B∈[0,ε],則判定兩類之間存在抄襲;若simA,B∈[1-ε,1],則判定兩類之間不存在抄襲;否則simA,B∈(ε,1-ε),則無法判定,其中ε為一個(gè)小于0.5的檢測閾值。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于西安郵電大學(xué),未經(jīng)西安郵電大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811092227.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程
- 復(fù)雜背景中實(shí)現(xiàn)靜態(tài)目標(biāo)檢測和識別的方法
- 一種設(shè)置靜態(tài)認(rèn)證信息的方法及裝置
- 一種基于物聯(lián)網(wǎng)技術(shù)的機(jī)房靜態(tài)資源快速定位的方法
- 一種動(dòng)態(tài)網(wǎng)頁靜態(tài)化的方法和裝置
- 瀏覽器靜態(tài)資源加載方法、瀏覽器程序及可讀存儲(chǔ)介質(zhì)
- 靜態(tài)資源更新方法、裝置、存儲(chǔ)介質(zhì)和計(jì)算機(jī)設(shè)備
- 一種圖像顯示方法及裝置
- 一種靜態(tài)方法修改非靜態(tài)對象的方法
- 一種靜態(tài)資源加載方法、裝置、設(shè)備及可讀存儲(chǔ)介質(zhì)
- 一種靜態(tài)資源獲取方法、裝置及其相關(guān)設(shè)備
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲(chǔ)介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動(dòng)態(tài)惡意軟件分析來擴(kuò)展惡意軟件的動(dòng)態(tài)檢測
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測驗(yàn)軟件的裝置與方法





