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