亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種控制軟件保護(hù)裝置中可執(zhí)行文件執(zhí)行的方法

文檔序號(hào):6440651閱讀:204來源:國知局
專利名稱:一種控制軟件保護(hù)裝置中可執(zhí)行文件執(zhí)行的方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)安全領(lǐng)域,特別涉及一種控制軟件保護(hù)裝置中可執(zhí)行文件執(zhí)行的方法。
背景技術(shù)
軟件作為一種特殊的產(chǎn)品,由于其純數(shù)字化的特征,從問世起就一直遭受盜版的困擾。盜版的存在不僅給軟件開發(fā)者造成了巨大的損失,也極大阻礙了整個(gè)軟件行業(yè)的發(fā)展。因此,幾乎所有的軟件都采取了相應(yīng)的技術(shù)措施來避免軟件遭受破解和盜版,其中最為有效的就是基于硬件的軟件保護(hù)裝置。軟件保護(hù)裝置是一種通過計(jì)算機(jī)硬件接口(諸如串口、并口、USB接口等多種接口)連接到計(jì)算機(jī)主機(jī)上的硬件設(shè)備。該設(shè)備內(nèi)部具有非易失性存儲(chǔ)空間可供讀寫,通常還具有單片機(jī)或者微處理控制芯片等計(jì)算處理單元。軟件開發(fā)者可以通過接口函數(shù)和軟件保護(hù)裝置進(jìn)行數(shù)據(jù)交換(即對(duì)軟件保護(hù)裝置進(jìn)行讀寫),來檢查軟件保護(hù)裝置是否插在接口上;或者直接用軟件保護(hù)裝置附帶的工具進(jìn)行加密。這樣,軟件開發(fā)者可以在軟件中設(shè)置多處軟件鎖,利用軟件保護(hù)裝置作為鑰匙來打開這些鎖;如果沒插軟件保護(hù)裝置或軟件保護(hù)裝置不對(duì)應(yīng),軟件將不能正常執(zhí)行。此外,軟件保護(hù)裝置內(nèi)部包含特定的功能,例如一部分存儲(chǔ)空間、一些密碼算法或者一些使用者自定義的算法或者功能。在軟件發(fā)行之前,軟件開發(fā)者修改自己的軟件代碼,使得軟件在運(yùn)行過程中需要使用到軟件保護(hù)裝置內(nèi)部的一些功能,這樣軟件離開軟件保護(hù)裝置之后就會(huì)無法運(yùn)行,而軟件保護(hù)裝置作為一種硬件設(shè)備復(fù)制的難度較大,從而起到防止盜版軟件非法傳播的作用。當(dāng)前市場(chǎng)上主要的軟件保護(hù)裝置包括:美國SafeNet公司的Sentinel Superpro>以色列Aladdin公司的Hasp HL、中國北京深思洛克數(shù)據(jù)保護(hù)中心的精銳IV、德國W1-Bu公司的WIBU-Key等。所有這些軟件保護(hù)裝置都提供了內(nèi)置的存儲(chǔ)空間、私有或公開的密碼算法,當(dāng)軟件運(yùn)行過程中可以調(diào)用這些功能來檢驗(yàn)是否屬于正版。其中北京深思洛克數(shù)據(jù)保護(hù)中心的精銳IV于2002年上市,其特點(diǎn)是采用了智能卡芯片作為硬件的基礎(chǔ),而且支持使用者將自己定義的功能寫入到軟件保護(hù)裝置內(nèi)部,甚至可以直接將軟件的部分功能移植到軟件保護(hù)裝置內(nèi)部完成,從而大大提高了軟件被盜版的難度,通常稱這種將自己定義的功能或者軟件的部分功能移植到軟件保護(hù)裝置內(nèi)部的技術(shù)為代碼移植。北京深思洛克數(shù)據(jù)保護(hù)中心是本申請(qǐng)人的前身,現(xiàn)在對(duì)應(yīng)網(wǎng)站為http://www.sense, com, cn/,其中詳細(xì)公開了本申請(qǐng)人開發(fā)的精銳IV型軟件保護(hù)裝置的具體參數(shù)性能和工作原理。在軟件版權(quán)保護(hù)領(lǐng)域,經(jīng)常通過授權(quán)許可的方式對(duì)軟件保護(hù)裝置內(nèi)的可執(zhí)行文件的各種使用方式進(jìn)行限制。關(guān)于軟件保護(hù)裝置內(nèi)運(yùn)行可執(zhí)行文件這種技術(shù)的詳細(xì)描述,請(qǐng)參考本申請(qǐng)人以前申請(qǐng)的申請(qǐng)?zhí)枮?00610064823.6的發(fā)明專利申請(qǐng),這部分內(nèi)部不在本發(fā)明中進(jìn)行詳細(xì)描述,而該申請(qǐng)全文引入本發(fā)明的說明書中以作為技術(shù)參考。具體而言,現(xiàn)有技術(shù)中例如通過限制所述可執(zhí)行文件的使用次數(shù)、限制所述可執(zhí)行文件的使用天數(shù)以及規(guī)定所述可執(zhí)行文件使用的到期時(shí)間等,從而對(duì)軟件保護(hù)裝置內(nèi)部的可執(zhí)行文件進(jìn)行特定方式的限制。其具體方式是在所述可執(zhí)行文件運(yùn)行之前,首先檢查與其關(guān)聯(lián)的授權(quán)文件來判定所述可執(zhí)行文件是否可以運(yùn)行?,F(xiàn)有技術(shù)中通常的實(shí)現(xiàn)這種檢查、判斷的方式是:在軟件保護(hù)裝置內(nèi)的可執(zhí)行文件中添加驗(yàn)證授權(quán)的邏輯代碼,從而驗(yàn)證關(guān)聯(lián)的授權(quán)文件是否有效。但是這種方式必然會(huì)增加開發(fā)軟件保護(hù)裝置內(nèi)可執(zhí)行文件的復(fù)雜度,影響其工作效率,而且也容易出錯(cuò),增加了軟件正確運(yùn)行的風(fēng)險(xiǎn)。更重要的是,如果需要對(duì)已發(fā)布的軟件添加授權(quán)或更改授權(quán)條件,由于驗(yàn)證授權(quán)的邏輯已經(jīng)存在于軟件保護(hù)裝置內(nèi)的可執(zhí)行文件中,所以就必須對(duì)所述可執(zhí)行文件也進(jìn)行更新,這樣更進(jìn)一步地增加了升級(jí)軟件保護(hù)裝置內(nèi)部授權(quán)功能的工作量。此外,現(xiàn)有技術(shù)中也提及一種控制方法,從而控制一個(gè)設(shè)備中的可執(zhí)行文件的執(zhí)行。參見申請(qǐng)?zhí)枮?00810098164.7的發(fā)明專利申請(qǐng),其發(fā)明名稱為《控制用于IC卡的小應(yīng)用程序運(yùn)行的方法》。該技術(shù)中通過一個(gè)存儲(chǔ)在IC卡的存儲(chǔ)區(qū)中的平臺(tái)識(shí)別號(hào)來簡(jiǎn)單判定在所述IC卡中運(yùn)行的小應(yīng)用程序是否可以執(zhí)行,也就是說,能在該平臺(tái)上運(yùn)行的小應(yīng)用程序都必須能被該平臺(tái)所識(shí)別。但是,這種技術(shù)的判斷情況比較單一,無法進(jìn)行更加靈活和豐富的判斷以滿足不同的開發(fā)和應(yīng)用需求。而且這種技術(shù)在可執(zhí)行文件沒有相關(guān)聯(lián)的授權(quán)文件時(shí)不能運(yùn)行的,無法根據(jù)實(shí)際情況自行決定在沒有授權(quán)情況下是否可以執(zhí)行,造成其使用范圍受到了一定程度的限制。另外,這種技術(shù)的應(yīng)用場(chǎng)景范圍較窄,主要是應(yīng)用在IC卡上,目的是防止其他人私自編寫的不被識(shí)別的應(yīng)用程序在所述平臺(tái)上運(yùn)行,以保護(hù)IC卡的合法使用。這種技術(shù)不能應(yīng)用在軟件保護(hù)裝置中,軟件開發(fā)者在使用軟件保護(hù)裝置對(duì)其軟件產(chǎn)品進(jìn)行保護(hù)時(shí)無法方便地對(duì)其中的可執(zhí)行文件進(jìn)行授權(quán)管理。此外,這種技術(shù)中的代碼編寫過程非常復(fù)雜,增加了代碼編寫的工作量、效率和成本。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種控制軟件保護(hù)裝置內(nèi)可執(zhí)行文件執(zhí)行的方法,使得在開發(fā)所述軟件保護(hù)裝置內(nèi)的可執(zhí)行文件時(shí)只需考慮所述可執(zhí)行文件本身的業(yè)務(wù)邏輯功能,而不必考慮添加驗(yàn)證授權(quán)和管理授權(quán)的邏輯代碼。所述軟件保護(hù)裝置可以自動(dòng)查找到所述可執(zhí)行文件關(guān)聯(lián)的授權(quán)文件并驗(yàn)證各授權(quán)項(xiàng)是否有效,并且在驗(yàn)證通過后由所述軟件保護(hù)裝置來修改所述授權(quán)文件的各授權(quán)項(xiàng)。另外,本發(fā)明應(yīng)用在軟件保護(hù)裝置中,目的是為了方便軟件開發(fā)者在使用所述軟件保護(hù)裝置對(duì)其軟件產(chǎn)品進(jìn)行保護(hù)時(shí),對(duì)其中的可執(zhí)行文件進(jìn)行授權(quán)管理,擴(kuò)大了軟件保護(hù)裝置的易用性。根據(jù)本發(fā)明的一個(gè)方面,一種控制軟件保護(hù)裝置內(nèi)的可執(zhí)行文件執(zhí)行的方法,所述軟件保護(hù)裝置是用于軟件保護(hù)的硬件設(shè)備,該方法包括如下步驟:步驟1:所述軟件保護(hù)裝置接收到受保護(hù)軟件發(fā)出的運(yùn)行可執(zhí)行文件的命令時(shí),檢查所述軟件保護(hù)裝置中是否存在與所述可執(zhí)行文件關(guān)聯(lián)的授權(quán)文件;步驟2:如果存在與所述可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件,則檢查所述授權(quán)文件并判斷所述授權(quán)文件中的授權(quán)項(xiàng)是否符合預(yù)定條件,從而確定在是否在所述軟件保護(hù)裝置內(nèi)執(zhí)行所述軟件保護(hù)裝置中的可執(zhí)行文件;步驟3:如果不存在與所述可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件,則根據(jù)預(yù)先確定的執(zhí)行規(guī)則,確定在是否在所述軟件保護(hù)裝置內(nèi)執(zhí)行所述軟件保護(hù)裝置中的可執(zhí)行文件。根據(jù)本發(fā)明方法的一個(gè)方面,在步驟I中,所述軟件保護(hù)裝置根據(jù)預(yù)定的關(guān)聯(lián)對(duì)應(yīng)關(guān)系,檢查所述軟件保護(hù)裝置中是否存在與所述可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件。根據(jù)本發(fā)明方法的一個(gè)方面,在步驟2中,當(dāng)所述授權(quán)項(xiàng)中的一個(gè)授權(quán)項(xiàng)符合預(yù)定條件時(shí),執(zhí)行所述軟件保護(hù)裝置內(nèi)的所述可執(zhí)行文件,或者當(dāng)所述授權(quán)項(xiàng)中的多個(gè)授權(quán)項(xiàng)都符合預(yù)定條件時(shí),執(zhí)行所述軟件保護(hù)裝置內(nèi)的所述可執(zhí)行文件。根據(jù)本發(fā)明方法的一個(gè)方面,由所述軟件保護(hù)裝置的開發(fā)者或者使用者設(shè)定所述可執(zhí)行文件與所述授權(quán)文件的關(guān)聯(lián)方式。根據(jù)本發(fā)明方法的一個(gè)方面,所述可執(zhí)行文件與所述授權(quán)文件的關(guān)聯(lián)方式包括:自動(dòng)關(guān)聯(lián)所述可執(zhí)行文件和所述授權(quán)文件,或者手動(dòng)關(guān)聯(lián)所述可執(zhí)行文件和所述授權(quán)文件。根據(jù)本發(fā)明方法的一個(gè)方面,執(zhí)行所述可執(zhí)行文件之后,所述軟件保護(hù)裝置修改所述授權(quán)文件中的授權(quán)項(xiàng)的值,然后將修改后的所述授權(quán)項(xiàng)的值保存到所述授權(quán)文件中。。


圖1是按照本發(fā)明一個(gè)實(shí)施例的在軟件保護(hù)裝置上的可執(zhí)行文件和授權(quán)文件的一種關(guān)聯(lián)方式示意圖。圖2是對(duì)比現(xiàn)有技術(shù)與本發(fā)明的流程示意圖。圖3是根據(jù)圖1的關(guān)聯(lián)方式來運(yùn)行軟件保護(hù)裝置內(nèi)的一個(gè)可執(zhí)行文件時(shí)的流程圖。圖4是按照本發(fā)明另一個(gè)實(shí)施例的在軟件保護(hù)裝置上的可執(zhí)行文件和授權(quán)文件的另一種關(guān)聯(lián)方式示意圖。圖5是根據(jù)圖4的關(guān)聯(lián)方式來運(yùn)行軟件保護(hù)裝置內(nèi)的一個(gè)可執(zhí)行文件時(shí)的流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。本發(fā)明是通過檢查可執(zhí)行文件的各項(xiàng)授權(quán)內(nèi)容來判定是否可以執(zhí)行,判斷條件比現(xiàn)有技術(shù)更加靈活和豐富,而且在可執(zhí)行文件沒有相關(guān)聯(lián)的授權(quán)文件時(shí)也不是一定不能運(yùn)行的,可以根據(jù)實(shí)際情況自行決定在沒有授權(quán)情況下是否可以執(zhí)行,從而增加了可執(zhí)行文件的執(zhí)行靈活度。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,本發(fā)明中的軟件保護(hù)裝置為用于軟件版權(quán)保護(hù)的硬件設(shè)備,從硬件結(jié)構(gòu)角度而言,包括微控制器單元(Micro Control Unit,下稱MCU)、存儲(chǔ)器以及用于與計(jì)算機(jī)主機(jī)相連接的接口模塊。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,所述的存儲(chǔ)器與MCU相連接,用于保存的數(shù)據(jù)。所述存儲(chǔ)器包括但不限于非易失性存儲(chǔ)器、易失性存儲(chǔ)器。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,所述的接口模塊與MCU相連接,負(fù)責(zé)MCU與計(jì)算機(jī)主機(jī)之間的通信。所述的接口模塊包括但不限于串行接口、并行接口、1394接口、射頻識(shí)別(RFID)接口、無線局域網(wǎng)接口(IEEE802.11接口等)、通用串行總線(USB)接口、藍(lán)牙接口、紅外接口、無線保真(W1-Fi)接口、ISO 7816串行等。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,所述MCU、存儲(chǔ)器、接口模塊也可以集成到同一個(gè)芯片中,由單一的芯片提供所有的功能。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,軟件保護(hù)裝置內(nèi)部的功能模塊包括:通信模塊、存儲(chǔ)模塊、文件系統(tǒng)、授權(quán)管理模塊。作為一種實(shí)施例,軟件保護(hù)裝置中的這些模塊都是通過軟件代碼實(shí)現(xiàn)的,類似于Windows操作系統(tǒng)運(yùn)行在計(jì)算機(jī)硬件上一樣,所述多個(gè)模塊運(yùn)行在軟件保護(hù)裝置的硬件芯片上。當(dāng)然,本領(lǐng)域的技術(shù)人員根據(jù)本發(fā)明所揭示和教導(dǎo)的內(nèi)容,完全能夠采用其它的方式(包括但不限于硬件、固件、軟件的形式)來實(shí)現(xiàn)這些模塊以完成類似的功能,或者對(duì)這些模塊進(jìn)行更進(jìn)一步的合并、拆分、組合以實(shí)現(xiàn)類似的功能??傊诖藘H描述本發(fā)明的核心思想和具體實(shí)施例,并不意味著本發(fā)明的實(shí)施以及要求保護(hù)的范圍僅受具體實(shí)施例的限制。其中,通信模塊,用于軟件保護(hù)裝置與計(jì)算機(jī)主機(jī)之間的通信。通信方式包括但不限于串行接口通信、并行接口通信、1394接口通信、射頻識(shí)別(RFID)接口通信、無線局域網(wǎng)接口(IEEE802.11接口等)通信、通用串行總線(USB)接口通信、藍(lán)牙接口通信、紅外接口通信、無線保真(W1-Fi)接口通信、ISO 7816串行通信等。存儲(chǔ)模塊,用于存儲(chǔ)使用者移植到軟件保護(hù)裝置內(nèi)部的可執(zhí)行代碼,當(dāng)+需要啟動(dòng)軟件保護(hù)裝置內(nèi)部的使用者進(jìn)程時(shí),進(jìn)程管理模塊會(huì)到存儲(chǔ)模塊中找到對(duì)應(yīng)的代碼,然后執(zhí)行。文件系統(tǒng),用于存儲(chǔ)和管理軟件保護(hù)裝置中的各種文件。授權(quán)管理模塊,用于實(shí)現(xiàn)通過軟件保護(hù)裝置的硬件自動(dòng)管理授權(quán)文件。該模塊用于管理軟件保護(hù)裝置內(nèi)的可執(zhí)行文件和授權(quán)文件的關(guān)聯(lián)方式、修改授權(quán)文件各授權(quán)項(xiàng)的值以及在沒有關(guān)聯(lián)的可執(zhí)行文件和授權(quán)文件時(shí)控制是否運(yùn)行軟件保護(hù)裝置內(nèi)的可執(zhí)行文件等操作。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,實(shí)現(xiàn)本發(fā)明的操作步驟包括:步驟A:軟件保護(hù)裝置通過其通信模塊接收到受保護(hù)軟件發(fā)出的運(yùn)行可執(zhí)行文件的命令時(shí),首先由軟件保護(hù)裝置的授權(quán)管理模塊檢查所述可執(zhí)行文件是否存在關(guān)聯(lián)的授權(quán)文件。具體而言,軟件保護(hù)裝置內(nèi)的可執(zhí)行文件和授權(quán)文件是否關(guān)聯(lián)是根據(jù)預(yù)先確定的關(guān)聯(lián)規(guī)則進(jìn)行判斷的。作為一種示例,可以有兩種方式進(jìn)行判斷:一種是由軟件保護(hù)裝置的開發(fā)者來定義所述關(guān)聯(lián)規(guī)則。作為一種示例,例如通過文件名相同、擴(kuò)展名不同的方式將可執(zhí)行文件和授權(quán)文件相關(guān)聯(lián)。如果采用這種關(guān)聯(lián)方式,軟件保護(hù)裝置的開發(fā)者需要將這種關(guān)聯(lián)規(guī)則以程序代碼形式寫入軟件保護(hù)裝置的授權(quán)管理模塊。這樣,每次在執(zhí)行可執(zhí)行文件時(shí),都會(huì)通過這種固定的方式來檢查是否存在與所執(zhí)行的可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件。這種關(guān)聯(lián)方式稱為自動(dòng)關(guān)聯(lián)方式。所謂自動(dòng)關(guān)聯(lián)就是軟件保護(hù)裝置內(nèi)的授權(quán)管理模塊預(yù)先定義了一套可執(zhí)行文件和授權(quán)文件相關(guān)聯(lián)的規(guī)則,當(dāng)需要杳找關(guān)聯(lián)文件時(shí)軟件保護(hù)裝置按照這套預(yù)定義規(guī)則自動(dòng)杳找可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件或者授權(quán)文件相關(guān)聯(lián)的可執(zhí)行文件。在下載一對(duì)關(guān)聯(lián)文件時(shí)也需要按照這種規(guī)則約定這兩個(gè)文件,比如規(guī)則為文件名相同,擴(kuò)展名不同的兩個(gè)文件相關(guān)聯(lián),那么下載到軟件保護(hù)裝置內(nèi)的兩個(gè)文件名相同擴(kuò)展名不同的可執(zhí)行文件和授權(quán)文件便可以自動(dòng)關(guān)聯(lián)上了。另一種是由使用者指定軟件保護(hù)裝置內(nèi)的某個(gè)可執(zhí)行文件和某個(gè)授權(quán)文件相關(guān)聯(lián)。作為一種示例,這種關(guān)聯(lián)的實(shí)現(xiàn)方式是在軟件保護(hù)裝置的授權(quán)管理模塊內(nèi)維護(hù)一個(gè)關(guān)聯(lián)表,記錄使用者指定的可執(zhí)行文件和授權(quán)文件的關(guān)聯(lián)對(duì),而在使用者使用時(shí)則可以提供若干個(gè)操作關(guān)聯(lián)表的應(yīng)用程序接口函數(shù)(API函數(shù))。通過這些函數(shù)在所述關(guān)聯(lián)表上添加、刪除、查詢和修改關(guān)聯(lián)記錄。這樣,在運(yùn)行可執(zhí)行文件之前,由軟件保護(hù)裝置的授權(quán)管理模塊來檢查待運(yùn)行的可執(zhí)行文件是否在關(guān)聯(lián)表內(nèi)存在與其相對(duì)應(yīng)的授權(quán)文件。這種關(guān)聯(lián)方式稱為手動(dòng)關(guān)聯(lián)方式。所謂手動(dòng)關(guān)聯(lián)是指軟件保護(hù)裝置內(nèi)的可執(zhí)行文件和授權(quán)文件是否關(guān)聯(lián)是由軟件保護(hù)裝置的用戶來定義,可以通過API提供的接口或其他方式告訴軟件保護(hù)裝置哪些文件是關(guān)聯(lián)的,軟件保護(hù)裝置就可以記錄下這些關(guān)聯(lián)的文件,將來杳找相關(guān)聯(lián)的文件時(shí)只需要杳找關(guān)聯(lián)記錄即可。作為一種示例,步驟A中所述檢查流程為:軟件保護(hù)裝置接收到運(yùn)行可執(zhí)行文件的命令時(shí),首先通過授權(quán)管理模塊檢查待運(yùn)行的可執(zhí)行文件是否存在關(guān)聯(lián)的授權(quán)文件;如果存在關(guān)聯(lián)的授權(quán)文件,則開始檢查此授權(quán)文件;如果不存在關(guān)聯(lián)的授權(quán)文件,則直接開始執(zhí)行可執(zhí)行文件或者不執(zhí)行。其中當(dāng)不存在關(guān)聯(lián)的授權(quán)文件時(shí),是否執(zhí)行可執(zhí)行文件也可由軟件保護(hù)裝置的開發(fā)者預(yù)先確定。當(dāng)不存在關(guān)聯(lián)的授權(quán)文件時(shí)執(zhí)行可執(zhí)行文件,意味著不強(qiáng)制要求所有的可執(zhí)行文件都具有與之相關(guān)聯(lián)的授權(quán)文件對(duì)其進(jìn)行限制。當(dāng)不存在關(guān)聯(lián)的授權(quán)文件時(shí)不執(zhí)行可執(zhí)行文件,則意味所有可執(zhí)行文件都強(qiáng)制要求具有與之相關(guān)聯(lián)的授權(quán)文件。作為一種具體實(shí)施方式
,這種預(yù)先確定的規(guī)則是需要以程序代碼形式寫入軟件保護(hù)裝置的授權(quán)管理模塊中。一旦寫入后,軟件保護(hù)裝置的使用者不能修改這種預(yù)先確定的規(guī)則。當(dāng)然為了靈活起見,作為另一種具體實(shí)施方式
,將由開發(fā)者規(guī)定的關(guān)聯(lián)規(guī)則和使用者規(guī)定的關(guān)聯(lián)規(guī)則都寫入授權(quán)管理模塊,以應(yīng)用程序接口(API)的形式為使用者留出一個(gè)可供選擇的應(yīng)用程序接口,以便使用者能夠指定采用何種預(yù)先確定的關(guān)聯(lián)規(guī)則。步驟B:如果不存在與所述可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件,則根據(jù)上述預(yù)先定義的規(guī)則,確定是否在軟件保護(hù)裝置內(nèi)執(zhí)行或不執(zhí)行所述軟件保護(hù)裝置內(nèi)的可執(zhí)行文件;步驟C:如果存在與所述可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件,則開始檢查授權(quán)文件。舉例而言,授權(quán)文件是存儲(chǔ)對(duì)軟件保護(hù)裝置內(nèi)其他文件的使用權(quán)限的授權(quán)的文件,一般以TLV(Tag-Length-Value)結(jié)構(gòu)存儲(chǔ),T代表后續(xù)VALUE的意義,L指明VALUE的長(zhǎng)度,VALUE是真正的數(shù)據(jù)。和其他文件一樣,授權(quán)文件也存放在軟件保護(hù)裝置的文件系統(tǒng)中。而授權(quán)項(xiàng)是授權(quán)文件內(nèi)具體的授權(quán)內(nèi)容,采用TLV格式表示,例如限制使用次數(shù)的授權(quán)項(xiàng)可以表示為0x00 0x04 0x00 OxFF 0x00 0x00 0x00,第一個(gè)字節(jié)0x00是使用次數(shù)的標(biāo)志,第二個(gè)字0x04 0x00是表示后續(xù)Value的長(zhǎng)度為4,最后4個(gè)字節(jié)OxFF 0x000x00 0x00表示可用的次數(shù)為OxFF即255次。然后判斷各授權(quán)項(xiàng)是否滿足條件,即,授權(quán)文件的各個(gè)授權(quán)項(xiàng)是否都是合法的。例如可用次數(shù)的授權(quán)項(xiàng)為255,而授權(quán)文件中記錄的已用次數(shù)小于255則認(rèn)為該授權(quán)項(xiàng)是滿足條件的,否則不滿足條件。并根據(jù)檢查結(jié)果,決定是否執(zhí)行所述可執(zhí)行文件。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,步驟A中檢查軟件保護(hù)裝置內(nèi)可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件是否存在,其關(guān)聯(lián)方式可以有多種選擇,例如通過匹配文件名或文件的其他屬性來自動(dòng)關(guān)聯(lián)所述可執(zhí)行文件和所述授權(quán)文件,或者通過人工手動(dòng)指定的方式來指定一對(duì)可執(zhí)行文件和授權(quán)文件相關(guān)聯(lián)。其中所述文件的其他屬性還包括文件的大小、類型、修改時(shí)間等。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,步驟B中如果檢查到所述可執(zhí)行文件不存在與之相關(guān)聯(lián)的授權(quán)文件,則根據(jù)預(yù)先定義的規(guī)則來決定是否予以執(zhí)行。其中,預(yù)先定義的規(guī)則包括:如果沒有關(guān)聯(lián)的授權(quán)文件,則軟件保護(hù)裝置內(nèi)的可執(zhí)行文件直接開始執(zhí)行,即不強(qiáng)制要求所述可執(zhí)行文件必須有關(guān)聯(lián)的授權(quán)文件才允許在軟件保護(hù)裝置上執(zhí)行;如果沒有關(guān)聯(lián)的授權(quán)文件,則軟件保護(hù)裝置內(nèi)的可執(zhí)行文件不予以執(zhí)行,即強(qiáng)制要求所述可執(zhí)行文件必須有關(guān)聯(lián)的授權(quán)文件才允許在軟件保護(hù)裝置上運(yùn)行。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,步驟C中對(duì)于檢查授權(quán)項(xiàng)的結(jié)果,是所有授權(quán)項(xiàng)必須都滿足條件才執(zhí)行軟件保護(hù)裝置內(nèi)的可執(zhí)行文件,或者只要滿足一項(xiàng)授權(quán)項(xiàng)的條件即可執(zhí)行軟件保護(hù)裝置內(nèi)的可執(zhí)行文件。下面結(jié)合具體實(shí)施例,對(duì)本發(fā)明的技術(shù)內(nèi)容進(jìn)一步闡述。對(duì)于本領(lǐng)域的技術(shù)人員而言,本實(shí)施例僅是為了說明本發(fā)明的應(yīng)用簡(jiǎn)化實(shí)施例。本領(lǐng)域的技術(shù)人員很明顯知道,實(shí)際的應(yīng)用過程可能比這個(gè)例子復(fù)雜得多,但是其并未脫離本發(fā)明的具體思想。此外,所述軟件保護(hù)裝置中存在文件系統(tǒng),其中的文件系統(tǒng)用于存放可執(zhí)行文件、授權(quán)文件、數(shù)據(jù)文件、密鑰文件等多種文件,并且支持多級(jí)目錄結(jié)構(gòu)。軟件保護(hù)裝置在接受到主機(jī)的執(zhí)行文件命令時(shí),在軟件保護(hù)裝置內(nèi)部運(yùn)行可執(zhí)行文件,并且將運(yùn)行結(jié)果發(fā)送到主機(jī)。關(guān)于軟件保護(hù)裝置的結(jié)構(gòu)和工作原理請(qǐng)參考本申請(qǐng)人之前的中國發(fā)明專利申請(qǐng)200610064823.6。實(shí)施例1根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,參考圖1,由于軟件保護(hù)裝置的文件系統(tǒng)支持多級(jí)目錄,所以在本實(shí)施例中,可執(zhí)行文件存放在軟件保護(hù)裝置的文件系統(tǒng)中exe目錄下,而授權(quán)文件存放在license目錄下。當(dāng)運(yùn)行軟件保護(hù)裝置的文件系統(tǒng)中exe目錄下的可執(zhí)行文件test時(shí),在軟件保護(hù)裝置的文件系統(tǒng)中l(wèi)icense目錄下根據(jù)是否存在相同的文件名“test”,查找license目錄下是否存在與可執(zhí)行文件test其關(guān)聯(lián)的授權(quán)文件test。軟件保護(hù)裝置中的文件系統(tǒng)及其中可執(zhí)行文件與授權(quán)文件相互關(guān)聯(lián)的情況如圖1所示。實(shí)施例1中采用的關(guān)聯(lián)方式為上述兩種方式的第一種,即自動(dòng)關(guān)聯(lián)。關(guān)聯(lián)規(guī)則是由軟件保護(hù)裝置的開發(fā)者在生產(chǎn)軟件保護(hù)裝置時(shí)以程序代碼形式寫入所述軟件保護(hù)裝置的授權(quán)管理模塊中。很明顯,exe目錄和license目錄這兩個(gè)目錄既可以由軟件保護(hù)裝置的開發(fā)者建立也可以由使用者建立。關(guān)聯(lián)的規(guī)則已經(jīng)在所述軟件保護(hù)裝置的授權(quán)管理模塊中預(yù)先定義過了,即,僅在運(yùn)行exe目錄中的可執(zhí)行文件時(shí)自動(dòng)查找license目錄下的同名授權(quán)文件與其關(guān)聯(lián)。也就是說,該方式下通過在兩個(gè)目錄中查找相同文件名的文件的方式來確定兩者之間的關(guān)聯(lián)關(guān)系。根據(jù)本發(fā)明的一個(gè)具體實(shí)施方式
,在本實(shí)施例中,授權(quán)文件包含三個(gè)授權(quán)項(xiàng):使用次數(shù)、使用天數(shù)和到期時(shí)間。分別約束與其關(guān)聯(lián)的可執(zhí)行文件可以使用的次數(shù)、天數(shù)和到期時(shí)間。另外,授權(quán)文件test中還包含兩個(gè)授權(quán)項(xiàng):已用次數(shù)和已用天數(shù),分別記錄與其關(guān)聯(lián)的可執(zhí)行文件已經(jīng)使用的天數(shù)和次數(shù)。圖3是根據(jù)本發(fā)明所述方法來運(yùn)行軟件保護(hù)裝置內(nèi)的一個(gè)可執(zhí)行文件test時(shí)的流程圖。如圖3所示,軟件保護(hù)裝置執(zhí)行軟件保護(hù)裝置文件系統(tǒng)中exe目錄下的可執(zhí)行文件test時(shí)的步驟如下:步驟201:軟件保護(hù)裝置接收到由受保護(hù)軟件發(fā)出的運(yùn)行可執(zhí)行文件test的命令,開始查找軟件保護(hù)裝置的文件系統(tǒng)中l(wèi)icense目錄下的授權(quán)文件test,并進(jìn)入步驟202 ;步驟202:判斷l(xiāng)icense目錄下是否存在授權(quán)文件test。如果軟件保護(hù)裝置中的授權(quán)管理模塊通過調(diào)用軟件保護(hù)裝置中的文件系統(tǒng)從而判斷出所述license目錄下不存在授權(quán)文件test,則直接跳轉(zhuǎn)到步驟208,開始執(zhí)行所述exe目錄中的可執(zhí)行文件test ;否則,如果license目錄中存在授權(quán)文件test,則進(jìn)行下一步檢查授權(quán)項(xiàng);否則直接開始運(yùn)行裝置內(nèi)的可執(zhí)行文件。具體而言,在存在授權(quán)文件test時(shí),則由軟件保護(hù)裝置中的授權(quán)管理模塊開始檢查授權(quán)文件test的各授權(quán)項(xiàng)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,檢查的邏輯代碼是由軟件保護(hù)裝置的開發(fā)者寫入軟件保護(hù)裝置的授權(quán)管理模塊中。這些檢查的邏輯代碼比如是檢查可用次數(shù)授權(quán)項(xiàng),其實(shí)現(xiàn)是通過比較已用次數(shù)授權(quán)項(xiàng)是否小于可用次數(shù)授權(quán)項(xiàng)來判斷此項(xiàng)是否合法。如果授權(quán)項(xiàng)都是滿足條件的,則開始運(yùn)行軟件保護(hù)裝置內(nèi)的可執(zhí)行文件;否則不予執(zhí)行,進(jìn)入步驟203。步驟203:檢查授權(quán)文件test中所包含的三個(gè)授權(quán)項(xiàng):使用次數(shù)、使用天數(shù)和到期時(shí)間,分別約束與其關(guān)聯(lián)的可執(zhí)行文件可以使用的次數(shù)、天數(shù)和到期時(shí)間。并且檢查授權(quán)文件test中還包含的兩個(gè)授權(quán)項(xiàng):已用次數(shù)和已用天數(shù),分別記錄與其關(guān)聯(lián)的可執(zhí)行文件已經(jīng)使用的天數(shù)和次數(shù)。當(dāng)檢查使用次數(shù)時(shí),進(jìn)入步驟204;當(dāng)檢查使用天數(shù)時(shí),進(jìn)入步驟205 ;當(dāng)檢查到期時(shí)間時(shí),進(jìn)入步驟206。步驟204,通過軟件保護(hù)裝置的授權(quán)管理模塊檢查可執(zhí)行文件test的已用次數(shù)是否小于授權(quán)文件test的使用次數(shù)授權(quán)項(xiàng)的值。其具體方式是通過讀取授權(quán)文件的內(nèi)容獲取各授權(quán)項(xiàng)的值,而各授權(quán)項(xiàng)的格式為TLV格式。注意,無需比較全部不同的授權(quán)項(xiàng),而只針對(duì)對(duì)應(yīng)的授權(quán)項(xiàng)進(jìn)行比較。例如可用次數(shù)和已用次數(shù)比較,可用天數(shù)和已用天數(shù)比較等。如果所有的授權(quán)項(xiàng)都是合法的,則允許運(yùn)行軟件保護(hù)裝置內(nèi)的可執(zhí)行文件,否則不允許執(zhí)行軟件保護(hù)裝置內(nèi)的可執(zhí)行文件。即,根據(jù)示例,如果可執(zhí)行文件test的已用次數(shù)小于授權(quán)文件test的使用次數(shù)授權(quán)項(xiàng)的值,則進(jìn)入步驟205,檢查使用天數(shù);否則,進(jìn)入步驟209。步驟205:按照類似的方式,檢查可執(zhí)行文件test的已用天數(shù)是否小于授權(quán)文件test的使用天數(shù)授權(quán)項(xiàng)的值,如果可執(zhí)行文件test的已用天數(shù)小于授權(quán)文件test的使用天數(shù)授權(quán)項(xiàng)的值,則進(jìn)入步驟206檢查到期時(shí)間;否則,進(jìn)入步驟209。步驟206:按照類似的方式,檢查授權(quán)文件test的到期時(shí)間授權(quán)項(xiàng)的值是否小于當(dāng)前時(shí)間。具體而言,到期時(shí)間的授權(quán)項(xiàng)的值應(yīng)該和軟件保護(hù)裝置的系統(tǒng)當(dāng)前時(shí)間比較,而不是與授權(quán)文件中的其他授權(quán)項(xiàng)進(jìn)行比較。關(guān)于如何獲取系統(tǒng)當(dāng)前時(shí)間則屬于現(xiàn)有技術(shù),無需贅述。如果檢查出授權(quán)文件test的到期時(shí)間授權(quán)項(xiàng)的值小于當(dāng)前時(shí)間,則進(jìn)入步驟207修改各授權(quán)項(xiàng)的值;否則進(jìn)入步驟209。步驟207:軟件保護(hù)裝置的授權(quán)管理模塊修改授權(quán)文件test的已用次數(shù)和已用天數(shù)授權(quán)項(xiàng)的值,然后將其保存到授權(quán)文件中。即,修改授權(quán)文件的內(nèi)容然后通過軟件保護(hù)裝置的文件系統(tǒng)將修改后的新內(nèi)容重新寫入授權(quán)文件,然后進(jìn)入步驟208。步驟208:運(yùn)行可執(zhí)行文件test。步驟209:退出。實(shí)施例2區(qū)別于實(shí)施例1,實(shí)施例2在軟件保護(hù)裝置內(nèi)的可執(zhí)行文件和授權(quán)文件的關(guān)聯(lián)方式上采用預(yù)先設(shè)定的關(guān)聯(lián),并且在運(yùn)行軟件保護(hù)裝置內(nèi)的可執(zhí)行文件時(shí)檢查不到關(guān)聯(lián)的授權(quán)文件的情況下不予執(zhí)行,即強(qiáng)制每個(gè)可執(zhí)行文件都必須有相應(yīng)的授權(quán)文件。實(shí)施例2中采用的關(guān)聯(lián)方式為上述兩種方式的第二種,即手動(dòng)關(guān)聯(lián)。如圖4所示,軟件保護(hù)裝置內(nèi)的授權(quán)管理模塊中維護(hù)著一張關(guān)聯(lián)表,記錄著軟件保護(hù)裝置內(nèi)的可執(zhí)行文件和授權(quán)文件的關(guān)聯(lián)對(duì),例如可執(zhí)行文件Test與授權(quán)文件Lic之間的關(guān)聯(lián)。軟件保護(hù)裝置的文件系統(tǒng)內(nèi)則保存有可執(zhí)行文件Test和授權(quán)文件Lie。這種關(guān)聯(lián)關(guān)系是手動(dòng)設(shè)定的。圖5是所述軟件保護(hù)裝置在運(yùn)行可執(zhí)行文件Test時(shí)的流程圖,其步驟如下所述:步驟401:軟件保護(hù)裝置接受到計(jì)算機(jī)主機(jī)發(fā)送過來的運(yùn)行可執(zhí)行文件Test的命令。首先由軟件保護(hù)裝置中的授權(quán)管理模塊來處理此命令,然后跳轉(zhuǎn)到步驟402 ;步驟402:所述授權(quán)管理模塊檢查其維護(hù)的關(guān)聯(lián)表,判斷是否存在與可執(zhí)行文件Test相關(guān)聯(lián)的授權(quán)文件。如果不存在與Test相關(guān)聯(lián)的授權(quán)文件,則跳轉(zhuǎn)到步驟409退出,即不執(zhí)行可執(zhí)行文件Test ;如果存在,與Test相關(guān)聯(lián)的授權(quán)文件,則跳轉(zhuǎn)到步驟403,開始檢查與可執(zhí)行文件Test關(guān)聯(lián)的授權(quán)文件的各授權(quán)項(xiàng);步驟403:讀取授權(quán)文件Lie,開始檢查各授權(quán)項(xiàng);步驟404:檢查使用次數(shù)是否有效,S卩,使用次數(shù)是否大于已用次數(shù),大于則為有效,否則為無效。如果此項(xiàng)檢查通過則跳轉(zhuǎn)到步驟405開始檢查下一項(xiàng),否則跳轉(zhuǎn)到步驟409退出,即不執(zhí)行Test ;步驟405:檢查使用天數(shù)是否有效,即使用天數(shù)是否大于已用天數(shù),大于則為有效,否則為無效。如果此項(xiàng)檢查通過則跳轉(zhuǎn)到步驟406開始檢查下一項(xiàng),否則跳轉(zhuǎn)到步驟409退出,即不執(zhí)行Test ;步驟406:檢查到期時(shí)間是否有效,即到期時(shí)間是否大于軟件保護(hù)裝置的系統(tǒng)當(dāng)前時(shí)間,大于則為有效,否則為無效。如果此項(xiàng)檢查通過則跳轉(zhuǎn)到步驟407修改各授權(quán)項(xiàng)的值,否則跳轉(zhuǎn)到步驟409退出,即不執(zhí)行Test ;步驟407:修改授權(quán)文件Lic的已用次數(shù)、已用天數(shù)授權(quán)項(xiàng)的值,跳轉(zhuǎn)到步驟408開始執(zhí)行Test ;步驟408:執(zhí)行 Test ;步驟409:退出,即不執(zhí)行Test。上述多種情況的變形是本領(lǐng)域的技術(shù)人員很容易想到的,因此上述舉例僅僅是示意性說明,而無法涵蓋軟件保護(hù)領(lǐng)域的各種情況。本發(fā)明的核心構(gòu)思是軟件保護(hù)裝置通過判斷軟件保護(hù)裝置中可執(zhí)行文件與授權(quán)文件之間的關(guān)聯(lián)來實(shí)現(xiàn)現(xiàn)有技術(shù)中無法實(shí)現(xiàn)的可執(zhí)行文件的靈活應(yīng)用。在此基礎(chǔ)之上,其它各種調(diào)用順序、處理順序的變形、各種可進(jìn)行設(shè)置的關(guān)聯(lián)規(guī)則及各種執(zhí)行規(guī)則均是很容易想到的,無需在本發(fā)明的說明書中進(jìn)行窮盡式的描寫。以上所述包括有本發(fā)明的例子。當(dāng)然,為了描述本發(fā)明的目的,描述每個(gè)可以想見的組件或方法的組合是不現(xiàn)實(shí)的,但是,本領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到,許多進(jìn)一步的組合和輪換對(duì)本發(fā)明來說是可能的。因此,本發(fā)明旨在包含所有這樣的落在所附權(quán)利要求書的精神和范圍之內(nèi)的變更、改進(jìn)和變化。此外,以本說明書和權(quán)利要求書為限,術(shù)語“具有”類似于術(shù)語“包括”。
權(quán)利要求
1.一種控制軟件保護(hù)裝置內(nèi)的可執(zhí)行文件執(zhí)行的方法,所述軟件保護(hù)裝置是用于軟件保護(hù)的硬件設(shè)備,其特征在于, 該方法包括如下步驟: 步驟1:所述軟件保護(hù)裝置接收到受保護(hù)軟件發(fā)出的運(yùn)行可執(zhí)行文件的命令時(shí),檢查所述軟件保護(hù)裝置中是否存在與所述可執(zhí)行文件關(guān)聯(lián)的授權(quán)文件; 步驟2:如果存在與所述可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件,則檢查所述授權(quán)文件并判斷所述授權(quán)文件中的授權(quán)項(xiàng)是否符合預(yù)定條件,從而確定在是否在所述軟件保護(hù)裝置內(nèi)執(zhí)行所述軟件保護(hù)裝置中的可執(zhí)行文件; 步驟3:如果不存在與所述可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件,則根據(jù)預(yù)先確定的執(zhí)行規(guī)貝U,確定在是否在所述軟件保護(hù)裝置內(nèi)執(zhí)行所述軟件保護(hù)裝置中的可執(zhí)行文件。
2.根據(jù)權(quán)利要求1的控制軟件保護(hù)裝置內(nèi)的可執(zhí)行文件執(zhí)行的方法,其特征在于,在步驟I中, 所述軟件保護(hù)裝置根據(jù)預(yù)定的關(guān)聯(lián)對(duì)應(yīng)關(guān)系,檢查所述軟件保護(hù)裝置中是否存在與所述可執(zhí)行文件相關(guān)聯(lián)的授權(quán)文件。
3.根據(jù)權(quán)利要求1-2的控制軟件保護(hù)裝置內(nèi)的可執(zhí)行文件執(zhí)行的方法,其特征在于,在步驟2中, 當(dāng)所述授權(quán)項(xiàng)中的一個(gè)授權(quán)項(xiàng)符合預(yù)定條件時(shí),執(zhí)行所述軟件保護(hù)裝置內(nèi)的所述可執(zhí)行文件,或者 當(dāng)所述授權(quán)項(xiàng)中的多個(gè)授權(quán)項(xiàng)都符合預(yù)定條件時(shí),執(zhí)行所述軟件保護(hù)裝置內(nèi)的所述可執(zhí)行文件。
4.根據(jù)權(quán)利要求1-3的控制軟件保護(hù)裝置內(nèi)的可執(zhí)行文件執(zhí)行的方法,其特征在于,由所述軟件保護(hù)裝置的開發(fā)者或者使用者設(shè)定所述可執(zhí)行文件與所述授權(quán)文件的關(guān)聯(lián)方式。
5.根據(jù)權(quán)利要求1-4的控制軟件保護(hù)裝置內(nèi)的可執(zhí)行文件執(zhí)行的方法,其特征在于,所述可執(zhí)行文件與所述授權(quán)文件的關(guān)聯(lián)方式包括:自動(dòng)關(guān)聯(lián)所述可執(zhí)行文件和所述授權(quán)文件,或者手動(dòng)關(guān)聯(lián)所述可執(zhí)行文件和所述授權(quán)文件。
6.根據(jù)權(quán)利要求1-5的控制軟件保護(hù)裝置內(nèi)的可執(zhí)行文件執(zhí)行的方法,其特征在于,執(zhí)行所述可執(zhí)行文件之后,所述軟件保護(hù)裝置修改所述授權(quán)文件中的授權(quán)項(xiàng)的值,然后將修改后的所述授權(quán)項(xiàng)的值保存到所述授權(quán)文件中。
全文摘要
本發(fā)明涉及一種控制軟件保護(hù)裝置內(nèi)可執(zhí)行文件執(zhí)行的方法。軟件保護(hù)裝置內(nèi)的可執(zhí)行文件執(zhí)行前由所述軟件保護(hù)裝置自動(dòng)檢查與所述可執(zhí)行文件關(guān)聯(lián)的授權(quán)文件并根據(jù)檢查結(jié)果決定所述可執(zhí)行文件是否可以執(zhí)行。這樣在編寫需要授權(quán)限制的可執(zhí)行文件時(shí)只需考慮業(yè)務(wù)邏輯代碼部分而不用再添加驗(yàn)證授權(quán)和管理授權(quán)的邏輯代碼,提高了軟件保護(hù)裝置的易用性。
文檔編號(hào)G06F21/12GK103164640SQ20111040776
公開日2013年6月19日 申請(qǐng)日期2011年12月8日 優(yōu)先權(quán)日2011年12月8日
發(fā)明者孫吉平, 韓勇 申請(qǐng)人:北京深思洛克軟件技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1