基于改進(jìn)編輯距離和LCS的同源性檢測(cè)技術(shù)
發(fā)布時(shí)間:2021-06-21 08:42
傳統(tǒng)基于Token的同源性檢測(cè)算法存在代碼變體結(jié)構(gòu)化信息定位困難、模塊提取、識(shí)別能力差、同源性度量精度低的問(wèn)題.為此,提出了一種基于改進(jìn)編輯距離和LCS(longest common sequence)的結(jié)構(gòu)化識(shí)別同源性檢測(cè)技術(shù).在編輯距離(edit distance)計(jì)算中,引入交換算子,提高模塊內(nèi)部同源性度量精度.在LCS算法中,引入相似模塊度量的最小尺寸監(jiān)測(cè)機(jī)制和代碼行間最大動(dòng)態(tài)相關(guān)性度量,提供代碼結(jié)構(gòu)邊界劃分、模塊行關(guān)聯(lián)、代碼有效結(jié)構(gòu)化信息抽取的能力.實(shí)驗(yàn)證明,該方法是一種有效的基于結(jié)構(gòu)化信息的同源性檢測(cè)技術(shù),其隨機(jī)抽樣檢測(cè)結(jié)果的準(zhǔn)確率、召回率及F值均有較優(yōu)表現(xiàn),且穩(wěn)定性較好.
【文章來(lái)源】:北京理工大學(xué)學(xué)報(bào). 2017,37(02)北大核心EICSCD
【文章頁(yè)數(shù)】:7 頁(yè)
【部分圖文】:
圖1基于Token的源代碼級(jí)同源性檢測(cè)的處理流程Fig.1FlowchartofToken-basedsource-levelhomologydetection代碼行摘要值計(jì)算模型及確保摘要值的唯一性是實(shí)
-win32,運(yùn)用Java語(yǔ)言實(shí)現(xiàn).目前,該同源性檢測(cè)軟件可以針對(duì)多種程序語(yǔ)言進(jìn)行檢測(cè),主要支持C、C++、C#、java等語(yǔ)言.采用多線程并發(fā)批量檢測(cè)模式,支持一對(duì)多、多對(duì)一、多對(duì)多檢測(cè).軟件具有格式化輸出功能,支持word2003模板的報(bào)告導(dǎo)出功能,將檢測(cè)結(jié)果格式化為非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ).作為有效性驗(yàn)證實(shí)驗(yàn),軟件參數(shù)設(shè)置為rdef=3,Wi=4,Wj=3.實(shí)驗(yàn)對(duì)象包括java、C、C++、C#語(yǔ)言代碼,軟件界面如圖4所示.圖4本文算法檢測(cè)結(jié)果Fig.4Resultsofthispaperalgorithm本文引用了開(kāi)源軟件snort2.9.6.0中的snort.c源文件,filezilla-3.0.0中的directorycache.cpp源文件,hadoop-0.21.0中的hdfs_test.c源文件,tomcat-8.0.3的WsWebSocketContainer.java源文件,Npgsql-2.1.1中的LinqBridge-1.3.cs源文件作為同源性檢測(cè)的基準(zhǔn)文件.在指定結(jié)構(gòu)化模塊范圍內(nèi),隨機(jī)選擇變種位置,并基于C語(yǔ)言腳本產(chǎn)生3種場(chǎng)景的代碼變種,形成檢測(cè)樣本對(duì).實(shí)驗(yàn)中,共計(jì)產(chǎn)生了50個(gè)樣本對(duì),并自動(dòng)記錄各樣本的變種位置.由于CCFinder[12]是基于Token的源代碼級(jí)同源性檢測(cè)的典型應(yīng)用工具,在業(yè)內(nèi)的認(rèn)知度也較高,因此采用此工具作為實(shí)驗(yàn)比對(duì)對(duì)象.實(shí)驗(yàn)通過(guò)172北京理工大學(xué)學(xué)報(bào)第37卷
DRNRM×100%,(10)式中:R為召回率;NDR為正確檢測(cè)出的變種模塊的行數(shù);NRM為實(shí)際變種模塊的行數(shù).準(zhǔn)確率為P=NDRNDM×100%,(11)式中:P為準(zhǔn)確率;NDM為檢測(cè)出的變種模塊的行數(shù).此外,作為召回率和準(zhǔn)確率的調(diào)和平均值,F值定義為F=2RPR+P.(12)分別對(duì)50對(duì)樣本進(jìn)行了同源性檢測(cè),并記錄了檢測(cè)結(jié)果的召回率、準(zhǔn)確率以及F值,分別如圖5、圖6、圖7所示.圖5召回率情況Fig.5Caseofrecall圖6準(zhǔn)確率情況Fig.6Caseofprecision從實(shí)驗(yàn)結(jié)果可以看出,本文算法具有較高的有效性和穩(wěn)定性.表1給出了50次實(shí)驗(yàn)的統(tǒng)計(jì)結(jié)果,本文算法的召回率、正確率和F值的均值分別為92.83%、90.55%和0.89,均高于CCFinder的33.84%、30.97%和0.32,說(shuō)明算法具有較高的有圖7F值情況Fig.7CaseofFvalues效性.本文算法召回率、正確率和F值的方差分別為7.51%、4.04%和8.97×10-4,分別小于CCFinder的19.86%、59.97%和2.00×10-3,說(shuō)明算法具有較好的穩(wěn)定性.本文算法召回率、正確率和F值的最大值分別為97.36%、94.24%和0.97,最小值分別為88.64%、86.68%和0.85,處于較高水平.同時(shí),整體上看,本文算法召回率要略高于正確率,說(shuō)明算法本身產(chǎn)生的誤檢率要略高于漏檢率,但相差
本文編號(hào):3240362
【文章來(lái)源】:北京理工大學(xué)學(xué)報(bào). 2017,37(02)北大核心EICSCD
【文章頁(yè)數(shù)】:7 頁(yè)
【部分圖文】:
圖1基于Token的源代碼級(jí)同源性檢測(cè)的處理流程Fig.1FlowchartofToken-basedsource-levelhomologydetection代碼行摘要值計(jì)算模型及確保摘要值的唯一性是實(shí)
-win32,運(yùn)用Java語(yǔ)言實(shí)現(xiàn).目前,該同源性檢測(cè)軟件可以針對(duì)多種程序語(yǔ)言進(jìn)行檢測(cè),主要支持C、C++、C#、java等語(yǔ)言.采用多線程并發(fā)批量檢測(cè)模式,支持一對(duì)多、多對(duì)一、多對(duì)多檢測(cè).軟件具有格式化輸出功能,支持word2003模板的報(bào)告導(dǎo)出功能,將檢測(cè)結(jié)果格式化為非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ).作為有效性驗(yàn)證實(shí)驗(yàn),軟件參數(shù)設(shè)置為rdef=3,Wi=4,Wj=3.實(shí)驗(yàn)對(duì)象包括java、C、C++、C#語(yǔ)言代碼,軟件界面如圖4所示.圖4本文算法檢測(cè)結(jié)果Fig.4Resultsofthispaperalgorithm本文引用了開(kāi)源軟件snort2.9.6.0中的snort.c源文件,filezilla-3.0.0中的directorycache.cpp源文件,hadoop-0.21.0中的hdfs_test.c源文件,tomcat-8.0.3的WsWebSocketContainer.java源文件,Npgsql-2.1.1中的LinqBridge-1.3.cs源文件作為同源性檢測(cè)的基準(zhǔn)文件.在指定結(jié)構(gòu)化模塊范圍內(nèi),隨機(jī)選擇變種位置,并基于C語(yǔ)言腳本產(chǎn)生3種場(chǎng)景的代碼變種,形成檢測(cè)樣本對(duì).實(shí)驗(yàn)中,共計(jì)產(chǎn)生了50個(gè)樣本對(duì),并自動(dòng)記錄各樣本的變種位置.由于CCFinder[12]是基于Token的源代碼級(jí)同源性檢測(cè)的典型應(yīng)用工具,在業(yè)內(nèi)的認(rèn)知度也較高,因此采用此工具作為實(shí)驗(yàn)比對(duì)對(duì)象.實(shí)驗(yàn)通過(guò)172北京理工大學(xué)學(xué)報(bào)第37卷
DRNRM×100%,(10)式中:R為召回率;NDR為正確檢測(cè)出的變種模塊的行數(shù);NRM為實(shí)際變種模塊的行數(shù).準(zhǔn)確率為P=NDRNDM×100%,(11)式中:P為準(zhǔn)確率;NDM為檢測(cè)出的變種模塊的行數(shù).此外,作為召回率和準(zhǔn)確率的調(diào)和平均值,F值定義為F=2RPR+P.(12)分別對(duì)50對(duì)樣本進(jìn)行了同源性檢測(cè),并記錄了檢測(cè)結(jié)果的召回率、準(zhǔn)確率以及F值,分別如圖5、圖6、圖7所示.圖5召回率情況Fig.5Caseofrecall圖6準(zhǔn)確率情況Fig.6Caseofprecision從實(shí)驗(yàn)結(jié)果可以看出,本文算法具有較高的有效性和穩(wěn)定性.表1給出了50次實(shí)驗(yàn)的統(tǒng)計(jì)結(jié)果,本文算法的召回率、正確率和F值的均值分別為92.83%、90.55%和0.89,均高于CCFinder的33.84%、30.97%和0.32,說(shuō)明算法具有較高的有圖7F值情況Fig.7CaseofFvalues效性.本文算法召回率、正確率和F值的方差分別為7.51%、4.04%和8.97×10-4,分別小于CCFinder的19.86%、59.97%和2.00×10-3,說(shuō)明算法具有較好的穩(wěn)定性.本文算法召回率、正確率和F值的最大值分別為97.36%、94.24%和0.97,最小值分別為88.64%、86.68%和0.85,處于較高水平.同時(shí),整體上看,本文算法召回率要略高于正確率,說(shuō)明算法本身產(chǎn)生的誤檢率要略高于漏檢率,但相差
本文編號(hào):3240362
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3240362.html
最近更新
教材專著