国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件保護(hù)方法研究

2009-07-29 07:11馬振飛

馬振飛

摘要:隨著計(jì)算機(jī)的廣泛應(yīng)用和網(wǎng)絡(luò)的日益普及,計(jì)算機(jī)軟件被盜的現(xiàn)象也越來(lái)越多,而且呈現(xiàn)出日漸猖獗之勢(shì)。本文從軟件保護(hù)的現(xiàn)狀及軟件保護(hù)的現(xiàn)實(shí)意義入手,通過(guò)對(duì)軟件保護(hù)技術(shù)的各種方法分析,并且針對(duì)各種保護(hù)方法進(jìn)行比較、權(quán)衡、及算法研究,提出了一套較為完整的軟件保護(hù)方案。

關(guān)鍵詞:軟件保護(hù);技術(shù)保護(hù);保護(hù)方案

1 引言

隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展以及軟件技術(shù)的快速成長(zhǎng),計(jì)算機(jī)軟件技術(shù)不僅對(duì)國(guó)民經(jīng)濟(jì)建設(shè)、信息安全起著重要作用,而且還是提高科技創(chuàng)新能力,增強(qiáng)技術(shù)競(jìng)爭(zhēng)實(shí)力的重要組成部分。由于軟件的復(fù)制、拷貝是件很容易的事,所以導(dǎo)致非法復(fù)制、盜版軟件之風(fēng)的泛濫。在這種形勢(shì)下,為了防止軟件的非法復(fù)制、盜版,保護(hù)軟件開(kāi)發(fā)商的利益,研制者和銷(xiāo)售商對(duì)自己的軟件進(jìn)行技術(shù)保護(hù)和數(shù)據(jù)加密,以此來(lái)保護(hù)計(jì)算機(jī)軟件著作權(quán)人的權(quán)益,鼓勵(lì)計(jì)算機(jī)軟件的開(kāi)發(fā)與應(yīng)用,促進(jìn)軟件產(chǎn)業(yè)和國(guó)民經(jīng)濟(jì)信息化的發(fā)展。

2 軟件保護(hù)技術(shù)

從技術(shù)上采取一定的防范措施非常重要,在一定范圍內(nèi)可以防范軟件的非法復(fù)制。下面介紹一下當(dāng)前常見(jiàn)的一些軟件保護(hù)技術(shù):

2.1 時(shí)間限制保護(hù)技術(shù)

在使用軟件時(shí)采用時(shí)間進(jìn)行限制,如使用期30天,當(dāng)過(guò)了共享軟件的使用期后,就不予運(yùn)行,只有向軟件作者付費(fèi)注冊(cè)后才能得到一個(gè)無(wú)時(shí)間限制的注冊(cè)版本。這種保護(hù)方式的程序很多,它們?cè)诎惭b時(shí),在系統(tǒng)某處做上標(biāo)記,比如將系統(tǒng)的安裝時(shí)間存放在一個(gè)文件中,每次運(yùn)行都用系統(tǒng)的當(dāng)前時(shí)間和安裝時(shí)間作比較,判斷用戶(hù)還能否正常使用。

2.2 序列號(hào)保護(hù)技術(shù)

當(dāng)用戶(hù)從網(wǎng)上下載某個(gè)共享軟件后,如果過(guò)了軟件的使用期,必須經(jīng)過(guò)注冊(cè)才能繼續(xù)使用。注冊(cè)過(guò)程一般是把用戶(hù)的私人信息告訴給軟件公司,軟件公司會(huì)根據(jù)用戶(hù)的信息利用預(yù)先寫(xiě)好的注冊(cè)碼程序計(jì)算出一個(gè)序列號(hào),用戶(hù)使用序列號(hào)按照必要的步驟在軟件中輸入注冊(cè)信息和序列號(hào),在經(jīng)過(guò)軟件對(duì)其合法性驗(yàn)證通過(guò)后,軟件就會(huì)取消本身的各種限制,而成為正式版本。

2.3 注冊(cè)文件保護(hù)技術(shù)

注冊(cè)文件保護(hù)技術(shù)是利用文件來(lái)注冊(cè)軟件的保護(hù)方式。注冊(cè)文件一般文件比較小,可以是純文本文件,也可以是包含不可顯示字符的二進(jìn)制文件,其內(nèi)容是加密過(guò)或未加密的數(shù)據(jù),其中可能有用戶(hù)名、注冊(cè)碼等信息。文件格式則由軟件作者自己定義,試用版軟件沒(méi)有注冊(cè)文件,當(dāng)用戶(hù)向作者負(fù)費(fèi)注冊(cè)后,會(huì)收到作者寄來(lái)的注冊(cè)文件,其中可能包含用戶(hù)的個(gè)人信息。用戶(hù)只要將這些文件放入指定的目錄,就可以讓軟件成為正式版。

2.4 光盤(pán)保護(hù)技術(shù)

一些采用光盤(pán)形式發(fā)行的應(yīng)用軟件和游戲在使用時(shí)需要檢查光盤(pán)是否插在光驅(qū)中,如果沒(méi)有,則拒絕運(yùn)行。這是為了防止用戶(hù)將軟件或游戲的一份正版拷貝安裝到多臺(tái)機(jī)器上并同時(shí)使用。程序在啟動(dòng)時(shí)判斷光驅(qū)中的光盤(pán)上是否存在特定的文件,如果不存在則認(rèn)為用戶(hù)沒(méi)有正版光盤(pán),拒絕運(yùn)行。在程序運(yùn)行的過(guò)程當(dāng)中一般不再檢查光盤(pán)的存在與否。

2.5 反跟蹤保護(hù)技術(shù)

好的軟件保護(hù)都要和反跟蹤技術(shù)結(jié)合在一起。如果沒(méi)有反跟蹤技術(shù),軟件等于直接裸露在解密者面前。這里說(shuō)的反跟蹤,指的是反動(dòng)態(tài)跟蹤。即防止解密者用SoftICE之類(lèi)的調(diào)試器動(dòng)態(tài)跟蹤,從而進(jìn)行分析軟件。這種技術(shù)一般是檢測(cè)這些特定的調(diào)試器是否駐留內(nèi)存,如果駐留內(nèi)存,就認(rèn)為被跟蹤,拒絕執(zhí)行,或進(jìn)行一些懲罰性措施。

2.6 反-反匯編保護(hù)技術(shù)

可針對(duì)專(zhuān)門(mén)的反匯編軟件設(shè)計(jì)的陷阱,讓反匯編器陷入死循環(huán),但這種方法沒(méi)有通用性。具體方法是:在程序中加入一些無(wú)用的字節(jié)來(lái)干擾反匯編軟件的判斷,使得它錯(cuò)誤地確定指令的起始位置,也就達(dá)到了干擾反匯編器工作的目的。

2.7 加殼保護(hù)技術(shù)

殼是計(jì)算機(jī)軟件中一段專(zhuān)門(mén)負(fù)責(zé)保護(hù)軟件不被非法修改或反編譯的程序,它先于軟件原程序運(yùn)行并拿到控制權(quán),進(jìn)行一定處理后再將控制權(quán)轉(zhuǎn)交給原程序,實(shí)現(xiàn)保護(hù)軟件的任務(wù)。加殼后的程序能夠有效防范靜態(tài)分析和增加動(dòng)態(tài)分析的難度。

2.8 加密狗保護(hù)技術(shù)

加密狗是一個(gè)安裝在并口、串口、U口等接口上的硬件設(shè)備,并帶有一套驅(qū)動(dòng)軟件和工具包。當(dāng)被加密狗保護(hù)的軟件運(yùn)行時(shí),程序會(huì)搜索是否有安插在計(jì)算機(jī)上的硬件,并對(duì)其發(fā)出一系列操作指令,正確的響應(yīng)才能使軟件繼續(xù)運(yùn)行,從而達(dá)到保護(hù)軟件,防止盜版的目的。

3 軟件保護(hù)技術(shù)的應(yīng)用

3.1 當(dāng)前保護(hù)技術(shù)的局限

軟加密技術(shù)是相對(duì)成熟的技術(shù),它的最大優(yōu)勢(shì)在于加密成本低。無(wú)論哪種軟加密方法都是對(duì)正常的軟件者進(jìn)行人為地制造障礙,雖然不會(huì)影響到軟件的性能,但有可能給軟件引入許多未知的錯(cuò)誤。與純軟件的加密方法相比,硬件加密有著不可比擬的優(yōu)勢(shì),因?yàn)閷?duì)盜版者而言,硬加密會(huì)比軟件加密要難以對(duì)付,但是硬件加密成本會(huì)比較高。

3.2 軟件保護(hù)技術(shù)的應(yīng)用

前面介紹了當(dāng)前常見(jiàn)的一些軟件保護(hù)技術(shù),其中有些技術(shù)非常好好,如序列號(hào)技術(shù),幾乎所有的軟件都使用了這種技術(shù)。但是,無(wú)論那種技術(shù)都是軟件和硬件進(jìn)行分離的處理的,不能徹底的保護(hù)好軟件。

針對(duì)前面所述的一些問(wèn)題,通過(guò)各方面比較、權(quán)衡、及算法研究,完整的保護(hù)流程應(yīng)該是:首先軟件程序必須有限制,至少要求要注冊(cè)才能使用完整功能,做到程序運(yùn)行必須和用戶(hù)機(jī)器硬件掛鉤的注冊(cè)碼來(lái)解開(kāi)關(guān)鍵的功能,然后為了防備被解密者用各類(lèi)工具得到程序關(guān)鍵點(diǎn)和關(guān)鍵信息,必須采用反跟蹤,反調(diào)試和反匯編?kù)o態(tài)分析。當(dāng)然,最好還要給程序穿上一件外套,將程序包裹起來(lái),即采用專(zhuān)門(mén)的加殼軟件或者加密鎖產(chǎn)品等將自己的程序處理后提高防范能力,大大提高破解的門(mén)檻。

還有,要考慮如何有效保證自己的程序只提供給正式用戶(hù)使用,而非正式用戶(hù)在正常途徑下即使有了正式軟件業(yè)也不能正常使用。這個(gè)問(wèn)題現(xiàn)在通常采用"一機(jī)一碼"的注冊(cè)碼許可方式來(lái)解決。大致原理就是將程序的關(guān)鍵功能用注冊(cè)碼方式保護(hù)起來(lái),正式用戶(hù)在輸入對(duì)應(yīng)自己的注冊(cè)碼的硬件信息的注冊(cè)碼后才能正常使用所有功能,非正式用戶(hù)沒(méi)有對(duì)應(yīng)自己的硬件信息的注冊(cè)碼而無(wú)法使用注冊(cè)碼保護(hù)起來(lái)的關(guān)鍵功能。要實(shí)現(xiàn)這個(gè)功能,關(guān)鍵是獲取一個(gè)準(zhǔn)確的硬件信息,而這個(gè)硬件信息最好與操作系統(tǒng)無(wú)關(guān),這樣就算用戶(hù)的系統(tǒng)出問(wèn)題而重新安裝后也不變化,既能方便用戶(hù)的使用,也能方便作者可管理注冊(cè)碼的發(fā)放。

為了提高反解密的對(duì)抗能力,通常還可以在程序代碼中加入反跟蹤、反調(diào)試和反匯編?kù)o態(tài)分析的程序,也可以采取動(dòng)態(tài)生成調(diào)用程序的入口地址等技術(shù)。最后再利用軟件殼來(lái)對(duì)程序進(jìn)行處理,這樣,解密者要想破解程序,先面臨的是殼程序,只有解決到殼程序以后才能對(duì)程序進(jìn)行破解。這樣就可以很輕易的將程序防護(hù)性能強(qiáng)度提升一個(gè)層次。

6 結(jié)論

通過(guò)對(duì)當(dāng)前常見(jiàn)的一些軟件保護(hù)技術(shù),如序列號(hào)保護(hù)技術(shù)、反跟蹤保護(hù)技術(shù)、反-反匯編保護(hù)技術(shù)、加殼保護(hù)技術(shù)、加密狗保護(hù)技術(shù)等進(jìn)行分析,得出各種技術(shù)的實(shí)現(xiàn)原理以及優(yōu)缺點(diǎn),提出了一套技術(shù)上較為完整的保護(hù)流程。但是,軟件保護(hù)只靠技術(shù)進(jìn)行保護(hù)還是不夠的,還需要相關(guān)的法律法規(guī)進(jìn)行管理,如版權(quán)法、專(zhuān)利法、合同法、商標(biāo)法等各種法律保護(hù),只有從法律、技術(shù)兩方面結(jié)合起來(lái)才能更加有效的保護(hù)好軟件的合法權(quán)利。

參考文獻(xiàn)

[1] 段鋼.加密與解密[M].電子工業(yè)出版社:2003.

[2] 看雪學(xué)院.軟件加密技術(shù)內(nèi)幕[M].電子工業(yè)出版社:2004.

[3] 武新華. 加密解密全方位學(xué)習(xí)[M].中國(guó)鐵道出版社:2006.

[4] 譚貌、陳義、涂杰.軟件版權(quán)保護(hù)技術(shù)的研究與分析[J].計(jì)算機(jī)應(yīng)用與軟件:2007.

[5] 郭勇、孔寶根. 軟件保護(hù)及破解策略[J].航空維修與工程:2004.