專利名稱:一種控制軟件授權(quán)使用時(shí)間的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件版權(quán)保護(hù)技術(shù)領(lǐng)域,尤其涉及一種控制軟件授權(quán) 使用時(shí)間特別是軟件授權(quán)使用的有效起止日期的方法。
背景技術(shù):
首先對本發(fā)明中涉及的部分技術(shù)術(shù)語作如下說明獨(dú)立實(shí)時(shí)時(shí)鐘是指擁有獨(dú)立的供電系統(tǒng),可不間斷的運(yùn)行,從 而給系統(tǒng)提供即時(shí)可靠的系統(tǒng)時(shí)間。硬件端用戶功能代碼是指從用戶軟件中提取出來轉(zhuǎn)換成硬件可 以識別的格式、放在硬件中、由硬件負(fù)責(zé)執(zhí)行的用戶功能代碼。硬件端授權(quán)判斷代碼是指運(yùn)行在硬件端,可對授權(quán)起止時(shí)間進(jìn) 行判斷操作的代碼,其主要功能為讀取硬件的實(shí)時(shí)時(shí)鐘,與預(yù)存在硬 件端的授權(quán)起止時(shí)間進(jìn)行比對從而判斷使用者是否擁有合法的軟件 使用授權(quán),并根據(jù)比對結(jié)果選擇是否繼續(xù)執(zhí)行已移植在硬件內(nèi)部的硬 件端用戶功能代碼。PC端可執(zhí)行代碼是指運(yùn)行在PC端、不包含被提取到硬件端 部分的用戶軟件代碼。代碼移植軟件保護(hù)技術(shù)的一種方式,是把軟件的一部分代碼從 軟件中提取出來,放到一個(gè)安全的硬件設(shè)備中,由硬件負(fù)責(zé)執(zhí)行。把 原來的調(diào)用這部分代碼的地方換成對硬件設(shè)備的調(diào)用。通常情況下, 被提取出來的代碼一般都是軟件的核心算法,所以缺少硬件就缺少了 核心代碼。雖然PC端可執(zhí)行代碼可以很容易拷貝,但硬件本身沒有 辦法被復(fù)制,硬件端用戶功能代碼也不能被讀出。所以該方法可以很 好的保護(hù)軟件,使之不被盜版和非法拷貝并使用。目前現(xiàn)有的對軟件授權(quán)使用時(shí)間的控制方法有如下幾種1. PC端直接讀取PC系統(tǒng)時(shí)間,與預(yù)存于PC端的授權(quán)起止時(shí) 間進(jìn)行比對,如果超出授權(quán)時(shí)間的起止范圍,則認(rèn)為軟件不再擁有使 用許可授權(quán)并禁止使用。2. 使用連接在計(jì)算機(jī)接口上的帶有獨(dú)立實(shí)時(shí)時(shí)鐘功能的硬件,由PC端發(fā)送命令讀取硬件實(shí)時(shí)時(shí)鐘的時(shí)間,與預(yù)存于PC端的授權(quán)起止時(shí)間進(jìn)行比對,如果超出授權(quán)時(shí)間的起止范圍,則認(rèn)為軟件不再 擁有使用許可授權(quán)并禁止使用。3. 使用連接在計(jì)算機(jī)接口上的帶有獨(dú)立實(shí)時(shí)時(shí)鐘功能的硬件, 由硬件端讀取實(shí)時(shí)時(shí)鐘,與預(yù)存于硬件端的授權(quán)起止時(shí)間進(jìn)行比對, 并將比對結(jié)果輸出給PC端,由PC端對輸出結(jié)果進(jìn)行判斷是否軟件 擁有使用許可授權(quán)。這三種方法可以獨(dú)立或者結(jié)合使用。但是在實(shí)際使用過程中,上 述控制方法均存在較為嚴(yán)重的可靠性問題。對于上述第一種控制方法,使用者可以通過篡改PC系統(tǒng)的時(shí)鐘, 獲得額外的軟件非法使用時(shí)間。對于上述第二種控制方法,可以避免使用者通過修改P C系統(tǒng)時(shí) 鐘獲得額外使用時(shí)間,但使用者仍可以通過修改軟件中預(yù)存的授權(quán)起 止時(shí)間,或者通過監(jiān)聽PC端讀取硬件的實(shí)時(shí)時(shí)鐘的通訊過程,并修 改通訊結(jié)果的方法,獲得額外的軟件非法使用時(shí)間。對于上述第三種控制方法,可以避免使用者通過修改PC系統(tǒng)時(shí) 鐘獲得額外使用時(shí)間,而且由于沒有預(yù)存授權(quán)起止時(shí)間在PC端,從 而也可以避免使用者通過修改軟件中預(yù)存的授權(quán)起止時(shí)間獲得額外 的軟件非法使用時(shí)間,但是使用者仍然可以通過監(jiān)聽并修改硬件端輸 出給PC端的比對結(jié)果從而達(dá)到獲得額外的軟件非法使用時(shí)間的目 的。發(fā)明內(nèi)容本發(fā)明的目的是解決上述幾種軟件使用時(shí)間控制方法中存在的可靠性問題,提供一種安全的針對軟件使用許可時(shí)間授權(quán)的控制方 法。本發(fā)明采用的技術(shù)方案是 一種利用獨(dú)立硬件裝置對軟件使用時(shí) 間進(jìn)行控制的方法,其中所述獨(dú)立硬件裝置包括獨(dú)立實(shí)時(shí)時(shí)鐘電路和 存儲器,該存儲器存儲著軟件授權(quán)判斷代碼、用戶功能代碼和授權(quán)起 止時(shí)間,所述軟件的可執(zhí)行代碼運(yùn)行于PC端,所述用戶功能代碼是 利用軟件移植技術(shù)從軟件中提取的代碼,PC端可執(zhí)行代碼正常執(zhí)行 時(shí)必須調(diào)用該用戶功能代碼,所述授權(quán)判斷代碼被執(zhí)行時(shí)自動(dòng)讀取實(shí) 時(shí)時(shí)鐘電路的當(dāng)前時(shí)間和授權(quán)起止時(shí)間,并對二者進(jìn)行對比判斷,判 斷方式是對比時(shí)鐘電路的當(dāng)前時(shí)間是否落在授權(quán)起止時(shí)間范圍內(nèi),并輸出相應(yīng)判斷結(jié)果;其中,上述用戶功能代碼被執(zhí)行前或執(zhí)行后輸出 執(zhí)行結(jié)果前,獨(dú)立硬件裝置先執(zhí)行授權(quán)判斷代碼獲得判斷結(jié)果或直接 讀取授權(quán)判斷代碼被獨(dú)立硬件裝置預(yù)先執(zhí)行、輸出并存儲在獨(dú)立硬件 裝置存儲器中的判斷結(jié)果來決定是否執(zhí)行用戶功能代碼和輸出執(zhí)行 結(jié)果給PC端可執(zhí)行代碼,若判斷結(jié)果為正常,則執(zhí)行用戶功能代碼 并輸出執(zhí)行結(jié)果給PC端可執(zhí)行代碼或直接輸出執(zhí)行結(jié)果給PC端可執(zhí) 行代碼,否則不執(zhí)行用戶功能代碼或執(zhí)行后不輸出執(zhí)行結(jié)果給PC端 可執(zhí)行軟件。其中,所述授權(quán)判斷代碼被獨(dú)立硬件裝置預(yù)先執(zhí)行的方式是在 獨(dú)立硬件裝置上電后自動(dòng)被執(zhí)行或者定期被執(zhí)行。。發(fā)明的有益效果本發(fā)明的方法既不依賴于PC系統(tǒng)的時(shí)鐘,也 不需要通過軟件來比對獨(dú)立時(shí)鐘硬件的時(shí)間,更沒有硬件端可執(zhí)行代 碼對授權(quán)時(shí)間控制的結(jié)果在PC端的輸出,而是結(jié)合代碼移植技術(shù), 完全在硬件內(nèi)部完成對軟件使用許可時(shí)間的控制,使用者無法通過上 述的手段來獲得額外的軟件使用時(shí)間,從而有效地控制了軟件使用許 可時(shí)間,保證了軟件版權(quán)安全。
圖l、圖2、圖3為本發(fā)明方法的流程圖;具體實(shí)施方式
以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。 本發(fā)明中的獨(dú)立時(shí)鐘功能硬件設(shè)備提供讀取實(shí)時(shí)時(shí)鐘接口并支 持代碼移植技術(shù),用于軟件保護(hù)或身份認(rèn)證。例如,精銳系列時(shí)鐘鎖,釆用智能卡芯片。時(shí)鐘芯片則由于讀取時(shí)鐘接口所支持的通信協(xié)議實(shí) 施例的不同可選擇不同的芯片。如圖1所示,在軟件發(fā)行之前,為了保護(hù)版權(quán),有效控制軟件的 授權(quán)使用時(shí)間,首先需要開發(fā)硬件端可執(zhí)行代碼;然后將編譯好的硬 件端可執(zhí)行代碼程序下載到時(shí)鐘硬件;軟件運(yùn)行時(shí),首先執(zhí)行PC端 可執(zhí)行代碼,然后在硬件端進(jìn)行授權(quán)起止時(shí)間的判斷操作,并根據(jù)判 斷操作的結(jié)果來選擇執(zhí)行硬件端可執(zhí)行代碼;硬件端可執(zhí)行代碼執(zhí)行 結(jié)東后,PC端可執(zhí)行代碼根據(jù)硬件輸出標(biāo)識確定軟件執(zhí)行結(jié)果是否 正確,從而判定使用者是否擁有合法的使用授權(quán)。下面參考圖2,結(jié)合具體實(shí)施例,對本發(fā)明做進(jìn)一步闡述。以下 兩個(gè)實(shí)施例中的硬件端用戶功能代碼均為對輸入數(shù)據(jù)進(jìn)行冒泡排序 操作,此處"對輸入數(shù)據(jù)進(jìn)行冒泡排序操作"的功能僅為闡述實(shí)施例 而用,實(shí)際應(yīng)用過程中可根據(jù)加密方案任意選擇硬件端用戶功能代碼 的功能應(yīng)用。 實(shí)施例一在本實(shí)施例中釆用精銳IV時(shí)鐘鎖作為獨(dú)立實(shí)時(shí)時(shí)鐘硬件。實(shí)施步 驟如下1、在軟件發(fā)布之前,首先為該軟件開發(fā)硬件端授權(quán)判斷代碼和 硬件端用戶功能代碼,功能包括a) 硬件端授權(quán)判斷代碼判斷使用者是否擁有合法的軟件授權(quán);b) 硬件端用戶功能代碼對輸入數(shù)據(jù)進(jìn)行冒泡排序。將編譯好的代碼程序移植到精銳IV時(shí)鐘鎖內(nèi)部。 2、軟件發(fā)行后,用戶運(yùn)行軟件時(shí),首先執(zhí)行PC端可執(zhí)行代碼, 然后將欲進(jìn)行排序的數(shù)據(jù)傳入至硬件端,并開始執(zhí)行硬件端授權(quán)判斷代碼,此過程中c) 通過調(diào)用讀取實(shí)時(shí)時(shí)鐘接口讀取硬件實(shí)時(shí)時(shí)鐘;d) 將讀取的實(shí)時(shí)時(shí)鐘與預(yù)存在硬件中的授權(quán)起止時(shí)間進(jìn)行比對 從而判斷使用者是否擁有合法的軟件授權(quán)。。e) 如果使用者擁有合法授權(quán),則繼續(xù)執(zhí)行已移植在硬件內(nèi)部的 硬件端用戶功能代碼,即對輸入數(shù)據(jù)進(jìn)行冒泡排序操作;反之,如果 使用者不擁有合法授權(quán),則不執(zhí)行硬件端用戶功能代碼,程序終止執(zhí) 行,并將錯(cuò)誤標(biāo)識輸出至PC端。PC端可執(zhí)行代碼可根據(jù)硬件輸出標(biāo)識來確定軟件執(zhí)行結(jié)果是否 正確。在本實(shí)施例一中,使用硬件提供的獨(dú)立時(shí)鐘功能,開發(fā)硬件端授 權(quán)判斷代碼,將軟件授權(quán)使用時(shí)間的控制過程完全放置于硬件內(nèi)部進(jìn) 行,并結(jié)合代碼移植技術(shù),有效地控制了軟件使用許可時(shí)間,保證了 軟件版權(quán)安全。 實(shí)施例二在本實(shí)施例中,采用精銳III時(shí)鐘鎖作為獨(dú)立實(shí)時(shí)時(shí)鐘硬件,該硬 件具有固化的授權(quán)控制功能,此功能可自動(dòng)獲取硬件實(shí)時(shí)時(shí)鐘,并與 預(yù)設(shè)的軟件授權(quán)信息進(jìn)行比較判斷控制。實(shí)施步驟如下實(shí)施步驟1、 利用硬件提供的授權(quán)控制功能接口,在硬件端設(shè)置軟件授權(quán)信息。2、 開發(fā)硬件端用戶功能代碼。代碼功能為,對輸入數(shù)據(jù)進(jìn)行冒泡排序,并將編譯好的代碼程序移植到精銳m時(shí)鐘鎖內(nèi)部。3、 軟件運(yùn)行時(shí),首先執(zhí)行PC端可執(zhí)行代碼,然后將欲進(jìn)行排序的數(shù)據(jù)傳入至硬件端,此時(shí)a) 硬件首先會(huì)通過固化的授權(quán)控制功能自動(dòng)判斷處理預(yù)先設(shè)置 在硬件端的軟件授權(quán)信息,判斷使用者是否擁有合法的軟件授權(quán)。b) 如果使用者擁有合法授權(quán),則繼續(xù)執(zhí)行已移植在硬件內(nèi)部的 硬件端用戶功能代碼,即對輸入數(shù)據(jù)進(jìn)行冒泡排序搡作;反之,如果 使用者不擁有合法授權(quán),則不執(zhí)行硬件端用戶功能代碼,程序終止執(zhí) 行,并將錯(cuò)誤標(biāo)識輸出至PC端。PC端可執(zhí)行代碼可根據(jù)硬件輸出標(biāo)識來確定軟件執(zhí)行結(jié)果是否 正確。與實(shí)施例 一相比,本實(shí)施例二同樣是將軟件授權(quán)使用時(shí)間的控制 過程完全放置于硬件內(nèi)部進(jìn)行,并結(jié)合代碼移植技術(shù),有效地控制軟 件使用許可時(shí)間。所不同的是,相對于實(shí)施例一所使用的硬件,本實(shí) 施例使用的硬件具有固化在硬件內(nèi)部的授權(quán)控制功能,軟件的授權(quán)信 息可以利用該功能接口預(yù)先設(shè)置在硬件中,在程序執(zhí)行時(shí),固化的授 權(quán)控制功能會(huì)自動(dòng)對預(yù)設(shè)的授權(quán)信息進(jìn)行判斷處理,從而在保證軟件 版權(quán)安全的同時(shí),提高了易用性。雖然本發(fā)明是具體結(jié)合兩個(gè)優(yōu)選實(shí)施例示出和說明的,但熟悉該 技術(shù)領(lǐng)域的人員可以理解,其中無論在形式上還是在細(xì)節(jié)上都可以作 出各種改變,這并不背離本發(fā)明的精神實(shí)質(zhì)和專利保護(hù)范圍。
權(quán)利要求
1. 一種利用獨(dú)立硬件裝置對軟件使用時(shí)間進(jìn)行控制的方法,其中所述獨(dú)立硬件裝置包括獨(dú)立實(shí)時(shí)時(shí)鐘電路和存儲器,該存儲器存儲著軟件授權(quán)判斷代碼、用戶功能代碼和授權(quán)起止時(shí)間,所述軟件的可執(zhí)行代碼運(yùn)行于PC端,所述用戶功能代碼是利用軟件移植技術(shù)從軟件中提取的代碼,PC端可執(zhí)行代碼正常執(zhí)行時(shí)必須調(diào)用該用戶功能代碼,所述授權(quán)判斷代碼被執(zhí)行時(shí)自動(dòng)讀取實(shí)時(shí)時(shí)鐘電路的當(dāng)前時(shí)間和授權(quán)起止時(shí)間,并對二者進(jìn)行對比判斷,判斷方式是對比時(shí)鐘電路的當(dāng)前時(shí)間是否落在授權(quán)起止時(shí)間范圍內(nèi),并輸出相應(yīng)判斷結(jié)果,其特征在于用戶功能代碼被執(zhí)行前或執(zhí)行后輸出執(zhí)行結(jié)果前,獨(dú)立硬件裝置先執(zhí)行授權(quán)判斷代碼獲得判斷結(jié)果或直接讀取授權(quán)判斷代碼被獨(dú)立硬件裝置預(yù)先執(zhí)行、輸出并存儲在獨(dú)立硬件裝置存儲器中的判斷結(jié)果來決定是否執(zhí)行用戶功能代碼和輸出執(zhí)行結(jié)果給PC端可執(zhí)行代碼,若判斷結(jié)果為正常,則執(zhí)行用戶功能代碼并輸出執(zhí)行結(jié)果給PC端可執(zhí)行代碼或直接輸出執(zhí)行結(jié)果給PC端可執(zhí)行代碼,否則不執(zhí)行用戶功能代碼或執(zhí)行后不輸出執(zhí)行結(jié)果給PC端可執(zhí)行軟件。
2、根據(jù)權(quán)利要求l所述的方法,其特征在于所述授權(quán)判斷代碼被 獨(dú)立硬件裝置預(yù)先執(zhí)行的方式是在獨(dú)立硬件裝置上電后自動(dòng)被執(zhí)行 或者定期被執(zhí)行。
全文摘要
本發(fā)明涉及軟件版權(quán)保護(hù)技術(shù)領(lǐng)域,本發(fā)明提供的控制軟件授權(quán)使用時(shí)間的方法由硬件提供讀取實(shí)時(shí)時(shí)鐘接口,硬件端可執(zhí)行代碼讀取實(shí)時(shí)時(shí)鐘,并與存放在硬件中的授權(quán)起止時(shí)間進(jìn)行比對,比對結(jié)果并不輸出到PC端,而是直接在硬件內(nèi)傳輸給已移植在硬件內(nèi)部的軟件功能代碼,由此部分代碼對其進(jìn)行判斷操作,確定使用者是否擁有合法的軟件使用授權(quán)。本發(fā)明的方法結(jié)合代碼移植技術(shù),完全在硬件內(nèi)部完成對軟件使用許可時(shí)間的控制,使用者無法通過修改PC系統(tǒng)時(shí)鐘或軟件預(yù)存授權(quán)使用時(shí)間等手段來獲得額外的軟件使用時(shí)間,從而有效地控制了軟件使用許可時(shí)間,保證了軟件版權(quán)安全。
文檔編號G06F21/22GK101241531SQ200710119668
公開日2008年8月13日 申請日期2007年7月27日 優(yōu)先權(quán)日2007年7月27日
發(fā)明者念龍龍 申請人:北京深思洛克數(shù)據(jù)保護(hù)中心