摘 要:計算機應(yīng)用軟件的做為智力產(chǎn)品也應(yīng)該受到知識產(chǎn)權(quán)的保護,目前軟件產(chǎn)品的保護主要通過注冊碼和加密的方式進(jìn)行,本文分析了注冊碼和加密法保護軟件的原理及優(yōu)缺點,并介紹了破解軟件常用的方法,最后呼吁使用正版軟件,抵制盜版。
關(guān)鍵詞: 計算機應(yīng)用軟件;加密;注冊碼;破解;暴力破解;注冊機
中圖分類號:TP309.7 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-7712 (2014) 06-0000-02
計算機應(yīng)用軟件,和普通的商品一樣,并不能任意傳播,必須在許可的前提下才能使用和轉(zhuǎn)讓。《中華人民共和國著作權(quán)法》對軟件產(chǎn)品的所有權(quán)有明確規(guī)定,由此衍生的《計算機軟件保護條例》對軟件著作權(quán)、軟件著作權(quán)的許可使用和轉(zhuǎn)讓、法律責(zé)任等都有詳細(xì)說明。目前,出于對計算機軟件的知識產(chǎn)權(quán)的保護,多數(shù)應(yīng)用軟件在開發(fā)的時候都加入了保護措施,比如注冊碼,激活碼,加密等多種方式。
但是由于商業(yè)利潤驅(qū)使及計算機應(yīng)用軟件產(chǎn)品的獨特性,軟件產(chǎn)品在使用過程中,使得它比其它的商品更容易復(fù)制和傳播。雖然很多軟件產(chǎn)品進(jìn)了加密等一系列的保護措施,但從理論上來講,任何加密的方式都是可逆的,都是可以進(jìn)行破解的,更何況,軟件產(chǎn)品的破解并不一定要加密的逆運算。
目前計算機軟件的保護方法無外乎下面幾種方式:第一種方式就是能過注冊碼,激活碼保護。這是目前比較常用的一種軟件產(chǎn)品的保護方式。這種保護方式主要是限制軟件產(chǎn)品的非法傳播,從理論上來講只有獲得了軟件產(chǎn)品提供的機器碼才能夠應(yīng)用。其主要工作原理是一機一碼,在不同的機器上安裝和使用軟件就要用不同的機器碼,這就要利用到不同的機器具有不同的硬件編號。計算機是由一些硬件組合而成的,有些硬件產(chǎn)品在出廠的時候,按照國際統(tǒng)一規(guī)定擁有一個獨一無二的編號,計算機應(yīng)用軟件的注冊碼就是利用硬盤的卷標(biāo)或CPU的序列號這些獨一無二的編號進(jìn)行加密的。一般就是通過函數(shù)取得硬盤卷標(biāo)號和CPU的序列號,再經(jīng)過運算生成一個序列號,這個序列號就是所謂的機器碼。當(dāng)在一臺新的機器上安裝使用的時候,軟件會根據(jù)計算機硬件產(chǎn)品生成一個機器碼,這個時候需要輸入這個機器碼對應(yīng)的注冊碼才能使用,這個注冊碼就需要向軟件的開發(fā)者或者產(chǎn)品所有人索取,而開發(fā)者只要對這個機器碼進(jìn)行運算就可得到其對應(yīng)的注冊碼。
從這種加密方式可以看出來,其主要是利用了硬件編號的唯一性及不同計算機硬件的不重復(fù)性,從理論上來講是沒有辦法替換注冊碼的,但是問題就出在硬件編號的獲取上,硬件編號只是通過簡單的兩個函數(shù)就可以得到,這本身就是不太安全的,因為破解者也可以很容易獲得硬件編號。如果想讓這種方式更加安全,則需要在機器碼到注冊碼生成的算法上做文章,這就又回到了最初的原點,軟件產(chǎn)品的安全性取決于加密算法的復(fù)雜性,而任何一種加密算法從理論上來講都是可以破解的這樣一種死循環(huán)。
軟件產(chǎn)品的第二種保護方式就是加密,加密也有兩種方式,一種是軟加密,所謂軟加密就是僅依靠算法和軟件產(chǎn)品的依賴性進(jìn)行加密,不需要借助其它硬件產(chǎn)品。這是目前軟件這個行業(yè)中比較流行的產(chǎn)品保護方式,這種方式從理論上來講存在破解的可能性,但是真正破解起來也是比較難,另外由于其不需要硬件輔助,所以其加密成本變低,微軟的windows操作系統(tǒng)的加密就是通過這種方式來進(jìn)行的。這種加密方法主要有鑰匙盤法,計算機硬件校驗法,純密碼法等多種方法。
這種加密往往并不是直接對軟件產(chǎn)品進(jìn)行一次性封裝加密,而是通過外殼加密法,利用堆棧平衡原理,軟件產(chǎn)品的接口處使其跳轉(zhuǎn)到加密的外殼處執(zhí)行解密程序,這樣每一次使用此產(chǎn)品都要進(jìn)行一次解密,而不是解密一次可以永久使用。在執(zhí)行完外殼的解密程序后,軟件跳回原程序的OEP繼續(xù)執(zhí)行,從而完成解密過程。目前比較安全的這種軟加密方式是采用動態(tài)解密外殼,IAT,SMC加密技術(shù)等,軟件產(chǎn)品在運行過程中動態(tài)加密,在執(zhí)行過程中進(jìn)行動態(tài)解密,執(zhí)行完畢后馬上刪除,并對對IAT加密,當(dāng)需要調(diào)用API時用解密算法算出API的實際地址來調(diào)用,來加強解密難度。有些軟件產(chǎn)品,為了加大破解難度,進(jìn)行多次外殼加密,殼外有殼,增加破解難度。
計算機應(yīng)用軟件加密的第二種方式是硬加密,硬加密和軟加密是相對應(yīng)的,顧名思義,這種加密方式主要是依靠硬件來輔助應(yīng)用軟件的加密,這里的硬件就是通常我們說的加密鎖或加密狗。這種加密方式加密強度比較大,難以破解,主要應(yīng)用在相對高檔軟件的知識產(chǎn)權(quán)的保護,但是由于其必須要有硬件的參與保護,所以增加了加密成本,并且一般不合適大規(guī)模的推廣使用。加密狗內(nèi)部含有加密的算法軟件,現(xiàn)在比較新的加密狗內(nèi)部還有一個單片機,算法寫入單片機就不能夠再被讀出,從原理上保證了加密狗不能夠被復(fù)制,由于加密算法不能夠被讀出,所以算法是不可預(yù)知的,當(dāng)然也就不能夠進(jìn)行逆運算。
因為加密狗中的加密算法是不可進(jìn)行逆運算的,所以這種軟件的破解和軟加密的破解是完全不同的兩種方式。如果想要依靠破解加密狗當(dāng)中單片機的軟件來破解此應(yīng)用軟件的話,幾乎是不可能的事。
計算機硬軟件還有一種保護方式,就是利用第三方軟件進(jìn)行保護,這種保護的方式并不常見,一般用于低檔軟件和應(yīng)用程序的加密,這種軟件的破解相對比較容易,基本上使用暴力破解法很快就可以得到結(jié)果,第三方程序比如壓縮軟件,加殼程序,還有第三方加密軟件等。
由于計算機軟件存在使用權(quán)限的問題,有部分應(yīng)用軟件在使用的時候需要交納一定費用才能夠獲得使用權(quán),于是便產(chǎn)生了軟件破解這樣一個行為。從理論上來講軟件的過程是可以進(jìn)行你逆匯編的,但真正的軟件破解卻很少有人對軟件進(jìn)行逆編寫,因為這個過程工作量太大,這樣的過程比重新編寫一個新的軟件工作量還要大。那么常用的計算機應(yīng)用軟件的破解都有哪些方式呢?
最常用的是暴力破解。這種破解方式就是猜測軟件所有的密碼組合的可能性,利用軟件對鍵盤上的所有鍵的組合,進(jìn)行掃描測試,直到試出正確的密碼為止。這種方法雖然看起來很麻煩,但實際上很有效,以目前的計算機的配置來講,一個四位純數(shù)字的密碼,完全可以在幾分鐘之內(nèi)解決問題。所以對于軟件設(shè)置密碼的復(fù)雜性至關(guān)重要,盡量不要使用一些垃圾密碼,比如純數(shù)字的密碼,用戶名和密碼一樣,生日做密碼,姓名拼音做密碼等等。設(shè)置軟件密碼的時候要盡量復(fù)雜,最好是大小寫字母加上特殊符號,這樣的話給暴力破解就帶來了相當(dāng)大的困難,一個好的復(fù)雜的密碼,完全可以使暴力破解只存在理論上的可能性。
第二種比較常見的破解方法就是算法注冊機,所謂注冊機就是可以生成自動注冊碼的程序。這種方法的前提就是要了解軟件注冊碼生成的算法,這種破解方法一般用在一機一碼的軟件們破解中。
軟件破解比較高級的方法就是利用內(nèi)存破解。計算機所有的數(shù)據(jù)在運行時都要將數(shù)據(jù)調(diào)入到內(nèi)存當(dāng)中,注冊碼的識別也不例外。所以我們只要能夠從內(nèi)存中讀取到真正的注冊碼就可以破解這個軟件,所以這種方法的核心問題就是要了解真正注冊碼的物理內(nèi)存位置,而不需要去了解軟件注冊碼的算法。只要加載內(nèi)存注冊機,通過它來獲取內(nèi)存當(dāng)中真正的注冊碼,或者直接跳過注冊碼的認(rèn)證,達(dá)到軟件破解的目的。
還有一種比較常見的破解方式就是補丁文件,所謂補丁文件對原文件的部分原程序進(jìn)行修改、封裝,重新生成一個新的文件,這個文件可以跳過或修改源程序的驗證或軟件的時間限制。
從知識產(chǎn)權(quán)保護的角度上講,我們不希望任何軟件在不被允許的情況下使用。破解軟件是對產(chǎn)品所有人的不尊重,也是不道德的行為,我們也呼吁所有人使用正版軟件。好的加密效果在于讓盜版者在破解被保護的軟件時,付出巨大的代價,耗費極大的時間精力,最終被迫放棄攻擊。
參考文獻(xiàn):
[1]高曉.論軟件的破解與保護策略[J].長春工程學(xué)院學(xué)報(自然科學(xué)版),2013.
[2]呂楊,李超.逆向工程之軟件破解與注冊機編寫[J].計算機安全,2011(01).
[3]黃玉波.軟件防破解實用方法分析與實現(xiàn)[J].計算機與現(xiàn)代化,2008(12).
[4]徐海銀,董九山,李丹.一種改進(jìn)的軟件加密自檢測防篡改技術(shù)[J].信息安全與通信保密,2007(03).
[5]于淼,孫強.對加殼技術(shù)的改進(jìn):超粒度混雜技術(shù)[J].計算機應(yīng)用,2004(08).
[作者簡介]馬博琴(1979-),女,山西永濟人,納愛斯正定有限公司,本科。