[發明專利]基于靜態胎記的軟件抄襲檢測方法有效
| 申請號: | 201811092227.8 | 申請日: | 2018-09-19 |
| 公開(公告)號: | CN109241706B | 公開(公告)日: | 2021-04-30 |
| 發明(設計)人: | 王曙燕;孫家澤;趙鵬飛 | 申請(專利權)人: | 西安郵電大學 |
| 主分類號: | G06F21/12 | 分類號: | G06F21/12;G06F21/16 |
| 代理公司: | 北京匯信合知識產權代理有限公司 11335 | 代理人: | 吳甘棠 |
| 地址: | 710061 陜西*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 靜態 胎記 軟件 抄襲 檢測 方法 | ||
基于靜態胎記的軟件抄襲檢測方法,針對原來抄襲檢測方法抗迷惑性和可信性較低而提出的,首先選定源程序和可疑程序,并確定迭代深度;對源程序和可疑程序進行分析得到元數據,從元數據中提取API調用信息和方法的指令執行序列,以API調用信息和方法的指令序列作為輸入產生靜態程序胎記,通過對兩個程序的程序胎記對比,得到兩個程序胎記之間的相似度,通過對比相似度最終給出是否抄襲的結論。本發明在指令序列的對比上沒有采用傳統的k?gram算法,而是采用LCS算法,并且在軟件胎記的生成上綜合了API調用和指令序列兩個方面的因素。最終得到的軟件胎記在保證可信性的前提下抗迷惑性有顯著提高。
技術領域
本發明涉及程序特征發現以及軟件版權保護領域,對兩個不同開發者發布的程序通過提取其靜態胎記進行對比計算其發布程序之間相似度大小,以判斷兩程序之間是否存在抄襲現象,是一種軟件抄襲檢測的方法;
背景技術
伴隨著計算機技術以及計算機網絡的迅猛發展,軟件已經成為我們日常生活中不可或缺的一部分,并且為人們的生活帶來了極大的便利以及數以億萬記的經濟效益;然而軟件作為一種數字產品在有著傳輸便利性的同時也為其版權保護帶來了相當的難度,許多別有用心的人可以輕易地在網絡上獲得目標軟件并且通過一些技術手段來將其破解并且以低廉的價格再發行出去,為軟件的開發者帶來重大損失;
在這種現狀之下,許多相關學者以及工作人員已經在做有關軟件保護的研究,思路大致可以說從軟件和硬件兩方面來對程序進行加密和保護;若從硬件方面來進行保護,主流有三種手段,一是將程序寫入可攜帶設備,如光盤或加密狗等等,由人對硬件進行保管;二是將程序綁定于CPU之上,一個CPU唯一對應于一個程序,這種方法對于CPU的制造有一定的要求;三是在CPU中增加一個解密單元,對于要執行的程序預先進行加密,只有在執行到程序時再由解密單元進行解密來運行;基于硬件的程序保護大多需要購買專門的硬件,將程序與硬件配合才可以正確執行;若從軟件方面進行保護,主流大致有代碼加殼,代碼混淆,軟件水印,軟件胎記等技術;
而靜態軟件胎記提取技術與其他技術相比較之下主要有以下兩點優勢,第一,其技術主要是對源碼或中間碼進行分析而無需額外插入任何代碼,減少人為插入代碼導致程序被惡意分析的可能性;第二,與同類的動態提取軟件胎記技術相比較之下,這種方法可以更全面的覆蓋軟件的全部執行過程,而動態執行通常只能覆蓋軟件的一部分執行路徑,增強了胎記的可信度,并且若軟件需要頻繁交互,提取動態胎記所花費的時間與用戶體驗代價要比靜態胎記大得多;這兩方面優勢保證了靜態軟件胎記技術在盜版檢測,代碼抄襲等方面的實用性;
但目前來說靜態軟件胎記的提取主要有以下難點,第一,大部分的靜態軟件胎記在面對代碼迷惑時表現的非常一般,有的甚至不具備抗迷惑能力;第二,在可以程序的獲取上,基本只能拿到其二進制代碼或中間代碼而無法拿到源代碼,這樣許多依賴源代碼才能夠使用的胎記提取,如基于關鍵詞的胎記提取,就無法使用;
針對以上情況,需要找到一種更好的軟件胎記提取方法,這種方法生成的胎記在具有可信性的同時應兼具有一定的抗迷惑性,不限制于某特定平臺或語言,且可以處理多種形式的文件;
發明內容
本發明要解決的問題是:提出一種新的靜態軟件胎記提取辦法,以克服現有軟件胎記的抗迷惑性弱,檢測結果不準確的缺陷;
本發明的目的通過以下技術手段實現:
基于靜態胎記的軟件抄襲檢測方法,包括以下步驟:
步驟一、由用戶指定源工程PA和PA中的源類A以及可疑工程PB和PB中的可疑類B,再選定迭代深度d{d≥0};
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安郵電大學,未經西安郵電大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811092227.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種軟件授權方法及系統
- 下一篇:應用程序的混淆方法、裝置和服務器





