版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)軟件保護(hù)論文:用虛擬加密鎖實現(xiàn)共享軟件的版權(quán)保護(hù)摘要分析目前常見軟件版權(quán)保護(hù)技術(shù)的優(yōu)點和不足,提出了一種虛擬加密鎖的共享軟件版權(quán)保護(hù)方法,用動態(tài)鏈接庫DLL文件代替加密鎖,將軟件的關(guān)鍵功能模塊、基于用戶計算機(jī)指紋的注冊驗證模塊和反破解模塊封裝在動態(tài)鏈接庫文件中,從而模擬加密鎖達(dá)到保護(hù)共享軟件版權(quán)的目的。該方法已應(yīng)用于共享軟件的版權(quán)保護(hù)中。關(guān)鍵詞計算機(jī)指紋版權(quán)保護(hù)虛擬加密鎖動態(tài)鏈接庫反破解1常見的軟件版權(quán)保護(hù)技術(shù)因特網(wǎng)的飛速發(fā)展為共享軟件的快速發(fā)展提供了前所未有的機(jī)遇,同時,由于軟件是一類特殊商品,極易復(fù)制和網(wǎng)上傳播,造成盜版軟件泛濫,嚴(yán)重地?fù)p害了軟件開發(fā)商的利益。如何進(jìn)行軟件版權(quán)保護(hù),防
2、止非法用戶盜版,一直是軟件開發(fā)商不斷研究的課題。依據(jù)加密的原理和加密方式,目前軟件版權(quán)保護(hù)技術(shù)分為以下三大類:(1)軟加密它就是不依賴特定的硬件來實現(xiàn)對軟件加密保護(hù)的技術(shù)。常見的保護(hù)方式包括:序列號(注冊碼)保護(hù)方式、KeyFile保護(hù)方式、功能限制保護(hù)方式和時間限制保護(hù)方式等。它的最大優(yōu)勢在于加密成本低,便于在互聯(lián)網(wǎng)上進(jìn)行軟件的發(fā)布和銷售,是適合共享軟件的保護(hù)方式;它的缺點在于不能防止破解者通過動態(tài)調(diào)試或靜態(tài)分析技術(shù)找到軟件的關(guān)鍵指令,修改該指令破解軟件1。(2)硬加密它就是依賴特定的硬件,通過硬件和軟件相結(jié)合的方式來實現(xiàn)軟件加密保護(hù)的技術(shù)。常用的方法有磁盤加密、加密卡和加密鎖等。它的優(yōu)勢在
3、于利用硬件的不可復(fù)制性達(dá)到較高強(qiáng)度的加密保護(hù);其缺點是需要額外的硬件,成本高,而且也不利于網(wǎng)上發(fā)布軟件。(3)網(wǎng)絡(luò)加密它就是利用網(wǎng)絡(luò)技術(shù)對軟件進(jìn)行加密保護(hù)的技術(shù)。常見的方法有網(wǎng)絡(luò)驗證等。它的優(yōu)點是將軟件運(yùn)行的重要數(shù)據(jù)放在服務(wù)器上,只有通過聯(lián)網(wǎng)驗證用戶注冊信息后才能取得這些數(shù)據(jù)運(yùn)行軟件,它的加密強(qiáng)度較高,其缺點是需要建立專門的服務(wù)器網(wǎng)站,成本高1。通過以上介紹可以看出較為安全的共享軟件版權(quán)保護(hù)方式要同時具有以下四個特征:軟件的重要數(shù)據(jù)與軟件主體分離;軟件不可復(fù)制;軟件要有反修改、反跟蹤和反靜態(tài)分析等反破解功能2;便于在互聯(lián)網(wǎng)上發(fā)布和銷售軟件。根據(jù)這四個特征筆者提出一種基于虛擬加密鎖的共享軟件版權(quán)
4、保護(hù)方法。2虛擬加密鎖的理論基礎(chǔ)2.1軟件加密鎖3軟件加密鎖是為軟件開發(fā)商提供的一種智能型的軟件加密工具,它包括一個安裝在計算機(jī)并行口或USB口上的硬件,及一套適用于各種語言的接口軟件和工具軟件。它具有如下特點:加密鎖據(jù)有防破解功能,可對抗各種調(diào)試工具的跟蹤;一鎖一密碼或一種電路,軟硬件不可互換;提供各種語言的編程和工具軟件,方便開發(fā)人員在自己開發(fā)的程序中使用;允許軟件開發(fā)商將自己軟件中的一部分程序或算法寫進(jìn)鎖中,并在鎖中運(yùn)行,從而使開發(fā)商的軟件同加密硬件有機(jī)地結(jié)合在一起。用戶在使用軟件時,必須把加密鎖連接到計算機(jī)的并口或USB口上,軟件才能繼續(xù)運(yùn)行。如果沒有安裝加密鎖或安裝的不是該軟件的加密
5、鎖,則軟件不能運(yùn)行或功能不完整,從而達(dá)到保護(hù)軟件版權(quán)的目的。2. 2DLL動態(tài)鏈接庫DLL是一個可以被其它應(yīng)用程序共享的已編譯的代碼模塊,其中封裝了一些可以被共享的代碼和資源。W indows應(yīng)用程序可根據(jù)DLL中的指令打開、啟用、查詢、禁用和關(guān)閉驅(qū)動程序。DLL文件還可以方便地實現(xiàn)對硬件資源和內(nèi)存資源的訪問。它主要具有如下特點:DLL的開發(fā)與具體的編程語言及編譯器無關(guān),只要遵循其開發(fā)規(guī)范并安排正確的編程接口,無論使用何種語言編制的DLL都具有通用性;使用DLL不是將其庫代碼拷貝,而只在程序中記錄函數(shù)的入口點和接口,程序執(zhí)行時才能將代碼載入內(nèi)存。多個程序使用相同的DLL時,內(nèi)存只需要裝載一次,
6、可以高效經(jīng)濟(jì)地使用內(nèi)存;DLL是基于W indows的程序模塊,它不僅包含可執(zhí)行代碼,還可以包含數(shù)據(jù)和各種資源,擴(kuò)大了庫文件的使用范圍。3用虛擬加密鎖實現(xiàn)共享軟件版權(quán)保護(hù)的方法3.1虛擬加密鎖加密的原理4由上述DLL文件具有的功能和特點可知,對DLL文件進(jìn)行反破解處理就可以實現(xiàn)硬件加密鎖的主要功能,完成對軟件版權(quán)的保護(hù)。另外,與加密鎖的硬件價格相比,DLL文件的開發(fā)幾乎不需要投入成本。再者,由于DLL文件與軟件主體在同一個文件夾下,軟件主體執(zhí)行時無需訪問并行接口或USB接口,因而節(jié)約了計算機(jī)硬件開銷,運(yùn)行速度更快,可實現(xiàn)對軟件的保護(hù)?;谏鲜鲆蛩乜紤],我們在傳統(tǒng)的軟件保護(hù)技術(shù)的基礎(chǔ)上,推陳出新
7、,提出一種基于虛擬加密鎖的軟件版權(quán)保護(hù)方法。虛擬加密鎖是一種基于DLL文件的軟件保護(hù)技術(shù),它是軟加密技術(shù)的一種,DLL文件主要是通過模擬硬件加密鎖對軟件主體運(yùn)行的控制來仿真加密鎖的。將軟件中只有注冊用戶才能使用的關(guān)鍵功能模塊、注冊用戶的計算機(jī)指紋信息和基于用戶計算機(jī)指紋的注冊驗證模塊都封裝到DLL文件中,同時在DLL文件中加入文件完整性檢測、反調(diào)試和反靜態(tài)分析功能模塊來提高DLL文件的反破解性能。軟件運(yùn)行時,當(dāng)執(zhí)行到DLL文件中需要注冊才能使用的功能時,必須進(jìn)行DLL文件的完整性檢測、調(diào)試器的檢測,只有通過檢測、注冊驗證后才能執(zhí)行軟件的功能,否則退出軟件。由于DLL文件內(nèi)置了用戶計算機(jī)指紋信息
8、(具有不可復(fù)制性)和反破解模塊,因而DLL文件具有類似加密鎖的功能,可以取代加密鎖,達(dá)到對軟件版權(quán)保護(hù)的目的。其系統(tǒng)基本原理圖如圖1所示。3.2虛擬加密鎖實現(xiàn)的功能3. 2. 1封裝軟件中的關(guān)鍵功能使軟件試用版與正式版分離為滿足第1節(jié)所述特征,設(shè)計軟件時將軟件分成軟件主體和DLL文件兩部分。軟件主體就是軟件的試用版,在網(wǎng)上發(fā)布。將軟件的關(guān)鍵功能封裝在DLL文件(虛擬加密鎖)中(在實際開發(fā)軟件時,如果封裝的功能多導(dǎo)致DLL文件過大,可以只封裝每個功能模塊中的關(guān)鍵數(shù)據(jù)處理部分),如圖1所示,它只提供給注冊用戶,從而實現(xiàn)軟件試用版與正式版(即軟件主體+虛擬加密鎖)文件的分離,降低了破解者破解正式版的
9、幾率。3. 2. 2采集用戶計算機(jī)指紋信息并生成計算機(jī)ID5所謂計算機(jī)指紋是指與計算機(jī)硬件有關(guān)的不可復(fù)制的信息,這些信息通常包括硬盤物理序列號和主板序列號、CUP序列號等。不同的計算機(jī)有不同的計算機(jī)指紋,因而用戶計算機(jī)指紋可以起到唯一標(biāo)識計算機(jī)的作用,確保虛擬加密鎖文件具有不可復(fù)制性。將采集的用戶計算機(jī)指紋信息經(jīng)過Hash算法(如SHA、MD5等)處理生成用戶計算機(jī)ID。3. 2. 3注冊用戶的合法驗證為滿足第1節(jié)所述特征,將根據(jù)注冊用戶的計算機(jī)指紋信息生成的ID預(yù)置到虛擬加密鎖(DLL文件)中,保證了該虛擬加密鎖只能運(yùn)行在該注冊用戶的計算機(jī)上。當(dāng)用戶運(yùn)行虛擬加密鎖中的關(guān)鍵功能時,虛擬加密鎖采
10、集該用戶計算機(jī)指紋,經(jīng)過一定加密運(yùn)算生成計算機(jī)ID與預(yù)置的計算機(jī)ID比較,若兩者相等,說明該用戶是合法用戶,則正常運(yùn)行軟件功能;若不相等,說明該用戶是非法用戶,則限制該功能的運(yùn)行或退出軟件。3. 2. 4反破解6, 7如果軟件不能防止破解者的非法修改,其它保護(hù)措施做得再好,也很容易被破解。為滿足第1節(jié)所述特征,在對虛擬加密鎖文件進(jìn)行反調(diào)試、反靜態(tài)分析的基礎(chǔ)上增加反修改功能7。3. 2. 4. 1虛擬加密鎖的完整性校驗1對虛擬加密鎖文件進(jìn)行完整性校驗,可確保其不被非法修改。校驗的方法可采用API函數(shù)MapFileAndCheckSum進(jìn)行完整性校驗。/讀取虛擬加密鎖文件DllFile的原始的校驗
11、和HeaderSum并計算其校驗和CheckSumMapFileAndCheckSum(DllFile,&HeaderSum,&CheckSum);if(HeaderSum= CheckSum)/虛擬加密鎖文件DllFilename沒有被修改,執(zhí)行軟件功能else/虛擬加密鎖文件DllFilename被修改,中止軟件3. 2. 4. 2調(diào)試器檢測1為了防止破解者用調(diào)試工具(如OllyDbg等)對虛擬加密鎖程序文件進(jìn)行跟蹤,可用API函數(shù)IsDebuggerPresent來檢測1。if(IsDebuggerPresent()/當(dāng)前程序被調(diào)試,中止軟件Else3. 2. 4. 3反
12、靜態(tài)分析為了防止破解者通過W32Dasm、IDA Pro等反匯編分析工具進(jìn)行反匯編分析,可在虛擬加密鎖文件中增加大量花指令。另外,用虛擬機(jī)軟件VMProtect對虛擬加密鎖文件進(jìn)行處理,可以大大增強(qiáng)其抗靜態(tài)分析的性能1。3.3用戶注冊過程軟件試用版用戶試用滿意后,通過匯款或網(wǎng)上銀行轉(zhuǎn)賬等方式付款后,用戶將計算機(jī)ID(根據(jù)用戶計算機(jī)指紋經(jīng)加密生成的)通過電子郵件發(fā)送給軟件開發(fā)商,軟件開發(fā)商根據(jù)用戶計算機(jī)ID重新編譯程序生成虛擬加密鎖文件,再通過電子郵件發(fā)送給用戶,用戶接收后用該文件覆蓋軟件安裝文件夾下的同名文件,就可以使用軟件的全部功能。這樣就可以方便地利用互聯(lián)網(wǎng)完成軟件試用版的發(fā)布和正式版的銷
13、售,這滿足了第1節(jié)所述特征。4結(jié)束語在分析當(dāng)前常見的軟件版權(quán)保護(hù)技術(shù)的優(yōu)缺點的基礎(chǔ)上,提出了虛擬加密鎖的共享軟件版權(quán)保護(hù)方法,以DLL文件為載體實現(xiàn)了加密鎖的功能,它具有開發(fā)成本低(與硬件加密鎖比)、軟件版權(quán)保護(hù)性能強(qiáng)、便于網(wǎng)上發(fā)布和銷售共享軟件等優(yōu)點。本文提出的虛擬加密鎖已用于筆者開發(fā)的C/C+程序設(shè)計學(xué)習(xí)與實驗系統(tǒng)和Masm forW indows集成實驗環(huán)境共享軟件中,取得了良好的版權(quán)保護(hù)效果。參考文獻(xiàn) 1 段剛.加密與解密(第三版)M .北京:電子工業(yè)出版社, 2008:102-103, 121-126, 392-395, 321-323. 2 俞銀燕,湯幟.數(shù)字版權(quán)保護(hù)技術(shù)研究綜述J.計算機(jī)學(xué)報, 2005(12): 195
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全員A證考試能力提升試題打?。ㄖ攸c)附答案詳解
- 2025年唐山市公務(wù)員考試行測試卷歷年真題及參考答案詳解
- 熱力工程投資風(fēng)險管理方案
- 河道疏浚及水流調(diào)節(jié)方案
- 執(zhí)業(yè)藥師資格證之《西藥學(xué)專業(yè)二》考試彩蛋押題附參考答案詳解
- 安全員A證考試能力測試備考題附完整答案詳解(考點梳理)
- 安全員A證考試考試綜合練習(xí)含答案詳解【a卷】
- 2025年裁判員高分題庫及答案詳解(新)
- 2025銀行專項筆試題庫及答案
- 安全員A證考試考前沖刺分析附參考答案詳解【模擬題】
- 地坪漆施工方案范本
- 【《自適應(yīng)巡航系統(tǒng)ACC的SOTIF風(fēng)險的識別與評估分析案例》4100字】
- 阿壩州消防救援支隊2026年面向社會公開招聘政府專職消防員(69人)筆試備考試題及答案解析
- 2025寧波市甬北糧食收儲有限公司公開招聘工作人員2人筆試參考題庫及答案解析
- 供應(yīng)鏈年底總結(jié)與計劃
- 院區(qū)病房改造提升項目節(jié)能評估報告
- 2026年中考語文一輪復(fù)習(xí):閱讀理解萬能答題模板
- 2025年低壓電工理論考試1000題(附答案)
- 《人類行為與社會環(huán)境》課件
- GB∕T 39402-2020 面向人機(jī)協(xié)作的工業(yè)機(jī)器人設(shè)計規(guī)范
- 國家開放大學(xué)《理工英語1》邊學(xué)邊練參考答案
評論
0/150
提交評論