《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 函數級別的復用開源代碼檢測方法
函數級別的復用開源代碼檢測方法
信息技術與網絡安全
張德浩1,2,徐 云1,2
(1.中國科學技術大學 計算機科學與技術學院,安徽 合肥230027; 2.中國科學技術大學 國家高性能計算中心,安徽 合肥230026)
摘要: 軟件開發中對開源代碼的復用會帶來開源代碼漏洞和違反開源許可等問題。傳統復用代碼檢測方法常常檢出較多偶然克隆代碼,影響了復用代碼的檢測準確性。為此,提出了一種基于復用度量指標的函數級別復用開源代碼檢測方法。該方法對被測代碼和開源代碼庫,先使用克隆檢測工具獲取克隆函數,然后使用依據克隆代碼行和共用標識符在開源代碼庫中的出現頻率的復用度量指標,判定每對克隆函數是否為復用。在公開有標注數據集和真實數據集上的實驗結果均表明所提方法優于基于逆文檔頻率的方法。
中圖分類號: TP311.52
文獻標識碼: A
DOI: 10.19358/j.issn.2096-5133.2021.06.004
引用格式: 張德浩,徐云. 函數級別的復用開源代碼檢測方法[J].信息技術與網絡安全,2021,40(6):22-27,49.
A method for function-level open-source code reuse detection
Zhang Dehao1,2,Xu Yun1,2
(1.School of Computer Science and Technology,University of Science and Technology of China,Hefei 230027,China; 2.National High Performance Computing Center,University of Science and Technology of China,Hefei 230026,China)
Abstract: Open-source code reuse in software development may cause problems such as code vulnerabilities and license violations. Existing code reuse detection methods often report a large amount of accidentally cloned code, which hampers the accuracy of reuse detection. To this end, a method for function-level open-source code reuse detection based on a novel metric is proposed. Cloned functions between developed code and an open-source code repository are firstly detected using a clone detection tool. A metric based on frequencies in the repository of cloned lines and shared identifiers between two functions is calculated to determine whether cloned functions are reused ones. The experimental results on a publicly available labeled dataset and on real-world code repositories show that the proposed method performs better than the method based on inverse document frequency.
Key words : code reuse;open-source software;code clone;accidental clone;code metric

0 引言

隨著軟件規模的日益增長和開源生態的發展,復用開源代碼成為節省軟件開發時間成本和人力成本的有效手段[1]。然而,復用開源代碼存在引入開源漏洞和違反開源許可等問題。例如,基于Android的移動操作系統CyanogenMod使用含有漏洞的JDK 1.5示例代碼解析證書,導致系統易于遭受中間人攻擊[2]。又如,Oracle查出Google在其Android項目中復用了來自OracleJDK的rangeCheck函數源碼和若干文件的反編譯源碼,為此雙方展開長達數年的訴訟[3]。因此,有必要檢測開發軟件中函數級別的復用開源代碼。

由于復用代碼之間本身的相似性,使用代碼克隆檢測工具可以檢測到復用代碼。與此同時,現有的克隆檢測工具檢出的克隆代碼中,還常常包含大量由于偶然原因而相似的代碼,稱為偶然克隆[4-5],并非復用代碼。由于一些高度相似甚至相同的常見函數可能是偶然克隆(例如Java中的hashCode、equals等函數),而一些經過修改的復用代碼與被復用的原始代碼不完全相同,因此在代碼克隆檢測之后需要一種更為精準的方法檢測復用代碼,以減少偶然克隆代碼的影響。據了解,關于復用代碼檢測的現有研究極少考慮到偶然克隆代碼的影響,而關于偶然克隆的現有研究大多為實證研究[4-6],目前尚未應用到復用代碼檢測上。



本文詳細內容請下載:http://m.rjjo.cn/resource/share/2000003595




作者信息:

張德浩1,2,徐  云1,2

(1.中國科學技術大學 計算機科學與技術學院,安徽 合肥230027;

2.中國科學技術大學 國家高性能計算中心,安徽 合肥230026)


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 本道久久综合88全国最大色 | 一级特黄特黄的大片免费 | 亚洲加勒比久久88色综合一区 | 在线精品国产三级 | 美女国产在线观看免费观看 | 999成人网 | 亚洲a级 | 俄罗斯aa毛片一级 | 2022国产精品网站在线播放 | 午夜限制r级噜噜片一区二区 | 手机看片99| 欧美—级v免费大片 | 国产成人lu在线视频 | 国产区最新 | 成人国产精品免费视频 | 亚洲国产成人在线 | 精品视频在线一区 | 91香蕉网| 免费观看成人www精品视频在线 | 成年男女拍拍拍免费视频 | 三级视频在线播放 | 欧美在线黄色 | 欧美成人午夜不卡在线视频 | 国产亚洲欧美成人久久片 | 日本不卡高清免费 | 亚洲综合精品一二三区在线 | 亚洲第一区在线 | 国产成年女一区二区三区 | 日本一区二区不卡视频 | 久久亚洲精品视频 | 美女视频黄a全部免费专区一 | 67194成人在线观看 | 亚洲精彩视频在线观看 | 毛片1毛片2毛片3毛片4 | 亚欧色视频在线观看免费 | 国产免费自拍 | 精品国产午夜肉伦伦影院 | 国产激爽大片在线播放 | 波多野结衣免费免费视频一区 | 一区二区不卡在线 | 久久无码av三级 |