專利名稱:防護(hù)軟件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及安全,尤其涉及通過防止未經(jīng)授權(quán)的個(gè)體或未經(jīng)授權(quán)的軟件進(jìn)行的修改而禁止軟件篡改。
背景技術(shù):
軟件使計(jì)算機(jī)功能強(qiáng)大。這樣的機(jī)器可糾正人的有缺陷心臟的不規(guī)則心率、或使人能看到天空中的星座。然而,軟件易受簡單的如偶然故障或有意損害的攻擊。偶然的故障可能無辜地來自孩子,他以某種方式使用他父母的個(gè)人計(jì)算機(jī),引起數(shù)據(jù)的物理損失或改變對計(jì)算機(jī)的使用有害的設(shè)置時(shí),等等。有意的損害一般由“黑客”策動,“黑客”是將計(jì)算專業(yè)知識用于非法目的的人的俗稱,諸如通過使惡意軟件在計(jì)算機(jī)上運(yùn)行、或在未經(jīng)允許的情況下直接訪問計(jì)算機(jī)并篡改程序和數(shù)據(jù)。
操作系統(tǒng)是控制諸如存儲器、中央處理單元(CPU)時(shí)間、磁盤空間和外圍設(shè)備的計(jì)算機(jī)資源的分配和使用的軟件。操作系統(tǒng)是應(yīng)用程序所依賴的基礎(chǔ)軟件。流行的操作系統(tǒng)包括Windows 98、Windows NT、Windows XP、Mac OS、UNIX和Linux。操作系統(tǒng)有時(shí)以適于特定市場的方式包裝。例如,用于較小的特殊服務(wù)器市場的功能強(qiáng)大的操作系統(tǒng)可由軟件制造商以適于較大的普通消費(fèi)者市場中的初學(xué)者用戶的各種方式改進(jìn)。一個(gè)問題在于初學(xué)者用戶可能會無意間修改經(jīng)改進(jìn)的操作系統(tǒng),從而削弱該系統(tǒng)。然而,最致命的問題在于黑客可反向設(shè)計(jì)經(jīng)改進(jìn)的操作系統(tǒng),使其變?yōu)橛糜趯浖圃焐逃袚p害的其它非法目的。
圖1詳細(xì)示出了這個(gè)問題以及其它問題。
軟件映像108表示包含使計(jì)算機(jī)硬件工作的指令的操作系統(tǒng)的副本或復(fù)制品。黑客或其惡意軟件102可修改軟件映像108、或使其易于替換,因?yàn)檐浖诚?08一般是存儲在計(jì)算機(jī)硬件中某處的文件。用戶110下一次調(diào)用該軟件映像來運(yùn)行諸如操作系統(tǒng)的系統(tǒng)軟件時(shí),經(jīng)修改或取代的軟件映像代替由軟件制造商提供的原始軟件映像運(yùn)行。
對軟件映像108的篡改一般由黑客或惡意軟件102執(zhí)行,而很少由用戶110執(zhí)行。然而,注冊表106可能被用戶110無意中篡改,以及被黑客或惡意軟件102篡改。注冊表106是用于存儲可用來為一個(gè)或多個(gè)用戶、應(yīng)用程序和硬件設(shè)備配置系統(tǒng)的信息的系統(tǒng)軟件。例如,注冊表可用于對消費(fèi)者計(jì)算機(jī)啟用三維呈現(xiàn)和硬件加速支持、同時(shí)對服務(wù)器計(jì)算機(jī)禁用同樣的特性。
當(dāng)用戶110以管理許可方式行動時(shí)這些信息可被改變,或它們可由不當(dāng)獲取修改注冊表的許可的黑客或惡意軟件102改變。黑客和惡意軟件102可試圖操縱注冊表106來克服許可證限制,以便改變注冊表、注冊表設(shè)置中的信息,并解鎖不針對特定受眾或銷售渠道的附加特性。一個(gè)問題在于對注冊表的修改可使得計(jì)算機(jī)停止工作或展現(xiàn)不可預(yù)計(jì)的行為。
另一問題涉及對執(zhí)行軟件104的篡改。黑客或惡意軟件102可不適當(dāng)?shù)赝稐壵_執(zhí)行的軟件104,并以未經(jīng)授權(quán)或被禁止的軟件服務(wù)取代它。而且,黑客或惡意軟件102可模仿軟件響應(yīng)或軟件調(diào)用,并篡改對執(zhí)行軟件104的運(yùn)行。
給出由偶然的故障或有意的損害兩者引起的軟件篡改問題,毫無疑問地肆無忌憚的黑客及其惡意軟件會使軟件易受攻擊。在沒有對軟件篡改問題的解決方案的情況下,用戶可能最終不再相信計(jì)算機(jī)制造商會提供安全的計(jì)算經(jīng)歷同時(shí)防止未經(jīng)授權(quán)個(gè)體的訪問。因此,存在對用于防護(hù)軟件、同時(shí)避免或減少與現(xiàn)有系統(tǒng)相關(guān)聯(lián)的以上問題的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)的需求。
發(fā)明概述根據(jù)本發(fā)明,提供了用于禁止軟件篡改的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的系統(tǒng)形式包括用于禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的系統(tǒng)。該系統(tǒng)包括用于調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能,以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的裝置。該系統(tǒng)還包括用于調(diào)用模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能,以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值的裝置。
根據(jù)本發(fā)明的其它方面,本發(fā)明的方法形式包括用于禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法。該方法包括調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能,以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行。該方法還包括調(diào)用模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能,以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀形式包括具有用于執(zhí)行禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該方法包括調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能,以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行。該方法還包括調(diào)用模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能,以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值。
根據(jù)本發(fā)明,提供了用于禁止軟件篡改的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的計(jì)算機(jī)可讀介質(zhì)形式包括,其上存儲有由計(jì)算系統(tǒng)用來驗(yàn)證信息的原始性的計(jì)算機(jī)可執(zhí)行指令和一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì)。該計(jì)算機(jī)可讀介質(zhì)包括以保護(hù)動態(tài)鏈接庫的私有庫密鑰加密的配置文件,配置文件包括其大小和格式取決于配置文件類型的配置文件數(shù)據(jù)。該配置文件還包括以保護(hù)動態(tài)鏈接庫的公共庫密鑰數(shù)字化簽署的簽名,且該配置文件還包括包含標(biāo)識配置文件的標(biāo)識符與配置文件數(shù)據(jù)的校驗(yàn)和的驗(yàn)證者塊。
根據(jù)本發(fā)明的其它方面,本發(fā)明的方法形式包括用于保護(hù)軟件之間的交互操作的計(jì)算機(jī)實(shí)現(xiàn)方法。該計(jì)算機(jī)實(shí)現(xiàn)方法包括啟動具有公共調(diào)用密鑰和私有調(diào)用密鑰的第一軟件對存儲在中央分層數(shù)據(jù)庫中的配置文件的訪問,第一軟件發(fā)送隨機(jī)鹽值。該計(jì)算機(jī)實(shí)現(xiàn)方法還包括,當(dāng)通過具有私有庫密鑰的第二軟件接收該隨機(jī)鹽值之后,第二軟件在中央分層數(shù)據(jù)庫中找到該配置文件,并使用私有庫密鑰對配置文件解密。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀形式包括用于保護(hù)軟件之間交互操作的計(jì)算機(jī)實(shí)現(xiàn)方法。該計(jì)算機(jī)實(shí)現(xiàn)方法包括啟動具有公共調(diào)用密鑰和私有調(diào)用密鑰的軟件對中央分層數(shù)據(jù)庫中所存儲的配置文件的訪問。第一軟件發(fā)送隨機(jī)鹽值。該計(jì)算機(jī)實(shí)現(xiàn)方法還包括,當(dāng)具有私有庫密鑰的第二軟件接收該隨機(jī)鹽值之后,第二軟件在中央分層數(shù)據(jù)庫中找到該配置文件,并使用私有庫密鑰對配置文件解密。
根據(jù)本發(fā)明的其它方面,本發(fā)明的系統(tǒng)形式包括用于保護(hù)軟件之間的交互操作的系統(tǒng)。該系統(tǒng)包括用于啟動具有公共調(diào)用密鑰和私有調(diào)用密鑰的軟件對中央分層數(shù)據(jù)庫中所存儲的配置文件的訪問的裝置,第一軟件發(fā)送隨機(jī)鹽值。該系統(tǒng)還包括,當(dāng)具有私有庫密鑰的第二軟件接收該隨機(jī)鹽值之后,第二軟件執(zhí)行用于在中央分層數(shù)據(jù)庫中找到該配置文件并使用私有庫密鑰對配置文件解密的裝置。
根據(jù)本發(fā)明,提供了用于禁止軟件篡改的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的方法形式包括用于禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的系統(tǒng)。該方法包括,如果保護(hù)可用于軟件所歸類到的產(chǎn)品類,則在計(jì)算機(jī)上加載模糊保護(hù)動態(tài)鏈接庫。該方法還包括,創(chuàng)建用于監(jiān)視運(yùn)行在計(jì)算機(jī)上的軟件仍舊屬于可使用對篡改的保護(hù)的產(chǎn)品類的系統(tǒng)定時(shí)器。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀介質(zhì)形式包括用于禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法。該方法包括,如果保護(hù)可用于軟件所歸類到的產(chǎn)品類,則在計(jì)算機(jī)上加載模糊保護(hù)動態(tài)鏈接庫。該方法還包括,創(chuàng)建用于監(jiān)視運(yùn)行在計(jì)算機(jī)上的軟件仍舊屬于可使用對篡改的保護(hù)的產(chǎn)品類的系統(tǒng)定時(shí)器。
根據(jù)本發(fā)明的其它方面,本發(fā)明的方法形式包括用于禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法。該方法包括由在計(jì)算機(jī)上調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能創(chuàng)建多個(gè)執(zhí)行線程。多個(gè)線程之一禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行,而多個(gè)線程中的其它線程保護(hù)中央分層數(shù)據(jù)庫的密鑰和值。該方法還包括創(chuàng)建用于監(jiān)視該多個(gè)線程正在運(yùn)行的定時(shí)器。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀介質(zhì)形式包括其上存儲有用于執(zhí)行禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該計(jì)算機(jī)可讀介質(zhì)包括由在計(jì)算機(jī)上調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能創(chuàng)建多個(gè)執(zhí)行線程。多個(gè)線程之一禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行,而多個(gè)線程中的其它線程保護(hù)中央分層數(shù)據(jù)庫的密鑰和值。該方法還包括創(chuàng)建用于監(jiān)視該多個(gè)線程正在運(yùn)行的定時(shí)器。
根據(jù)本發(fā)明,提供了用于禁止軟件的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的方法形式包括用于禁止服務(wù)篡改的方法。該方法包括在計(jì)算機(jī)啟動之后,由登錄模塊調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能,以創(chuàng)建禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的線程。該方法還包括與模糊保護(hù)動態(tài)鏈接庫通信以訪問與未經(jīng)授權(quán)服務(wù)的列表相關(guān)的經(jīng)加密的保護(hù)配置文件。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀形式包括含有存儲其上的用于實(shí)現(xiàn)禁止服務(wù)篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該方法包括在起動計(jì)算機(jī)之后,由登錄模塊調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能,以創(chuàng)建禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的線程。該方法還包括與模糊保護(hù)動態(tài)鏈接庫通信,以訪問與未經(jīng)授權(quán)服務(wù)的列表相關(guān)的加密保護(hù)概況文件。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀形式包括含有用于實(shí)現(xiàn)禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該方法包括調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能,以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行。該方法還包括調(diào)用模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能,以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值。
根據(jù)本發(fā)明,提供了用于禁止軟件篡改的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的計(jì)算機(jī)可讀介質(zhì)形式包括其上存儲有由計(jì)算系統(tǒng)用來安裝軟件的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該計(jì)算機(jī)可讀介質(zhì)包括含有計(jì)算機(jī)可執(zhí)行指令的保護(hù)動態(tài)鏈接庫,這些指令針對篡改監(jiān)視中央分層數(shù)據(jù)庫,驗(yàn)證計(jì)算系統(tǒng)中所存儲的一組文件的原始性,并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行。
根據(jù)本發(fā)明的其它方面,本發(fā)明的方法形式包括用于保護(hù)軟件設(shè)置的計(jì)算機(jī)實(shí)現(xiàn)方法。該方法包括創(chuàng)建產(chǎn)品標(biāo)識符以將軟件標(biāo)識為屬于市場上出售的一軟件包類。該方法還包括,如果基于產(chǎn)品標(biāo)識符該軟件屬于可使用軟件篡改保護(hù)的市場上出售的一軟件包類,則便于保護(hù)動態(tài)鏈接庫的安裝以禁止軟件篡改。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀形式包括其上存儲有用于執(zhí)行保護(hù)軟件設(shè)置的計(jì)算機(jī)實(shí)現(xiàn)方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該方法包括創(chuàng)建產(chǎn)品標(biāo)識符以將軟件標(biāo)識為屬于市場上出售的一軟件包類。該方法還包括,如果基于產(chǎn)品標(biāo)識符該軟件屬于可使用軟件篡改保護(hù)的市場上出售的一軟件包類,則便于保護(hù)動態(tài)鏈接庫的安裝以禁止軟件篡改。
根據(jù)本發(fā)明的其它方面,本發(fā)明的系統(tǒng)形式包括用于保護(hù)軟件設(shè)置的系統(tǒng)。該系統(tǒng)包括用于創(chuàng)建產(chǎn)品標(biāo)識符以將軟件標(biāo)識為屬于市場上出售的一軟件包類的裝置。該系統(tǒng)還包括,如果基于產(chǎn)品標(biāo)識符該軟件屬于可使用軟件篡改保護(hù)的市場上出售的一軟件包類,則用來便于保護(hù)動態(tài)鏈接庫的安裝以禁止軟件篡改的裝置。
根據(jù)本發(fā)明,提供了用于禁止軟件篡改的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的計(jì)算機(jī)可讀介質(zhì)形式包括其上存儲有計(jì)算系統(tǒng)用來保護(hù)軟件篡改的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該計(jì)算機(jī)可讀介質(zhì)包括包含模糊計(jì)算機(jī)可執(zhí)行指令的保護(hù)動態(tài)鏈接庫,這些模糊計(jì)算機(jī)可執(zhí)行指令針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行。
根據(jù)本發(fā)明的其它方面,本發(fā)明的方法形式包括用于產(chǎn)生其上存儲有計(jì)算系統(tǒng)用于禁止軟件篡改的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)實(shí)現(xiàn)方法。該方法形成針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的模糊保護(hù)動態(tài)鏈接庫,其中模糊了類名、方法、字段和控制流。該方法還包括創(chuàng)建包含該模糊保護(hù)動態(tài)鏈接庫的校驗(yàn)和的數(shù)字簽署的分類文件。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀形式包括其上存儲有用于實(shí)現(xiàn)禁止軟件篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該方法包括形成針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的模糊保護(hù)動態(tài)鏈接庫,其中模糊了類名、方法、字段和控制流。該方法還包括創(chuàng)建包含該模糊保護(hù)動態(tài)鏈接庫的校驗(yàn)和的數(shù)字簽署的分類文件。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀形式包括用于產(chǎn)生其上存儲有計(jì)算系統(tǒng)用于禁止軟件篡改的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)的系統(tǒng)。該系統(tǒng)包括用于形成針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的模糊保護(hù)動態(tài)鏈接庫的裝置,其中模糊了類名、方法、字段和控制流。該系統(tǒng)還包括用于創(chuàng)建包含該模糊保護(hù)動態(tài)鏈接庫的校驗(yàn)和的數(shù)字簽署的分類文件的裝置。
根據(jù)本發(fā)明,提供了用于禁止軟件篡改的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的方法形式包括用于禁止軟件篡改的方法。該方法包括在將模糊保護(hù)動態(tài)鏈接庫加載到計(jì)算機(jī)上之前,計(jì)算該模糊保護(hù)動態(tài)鏈接庫的第一校驗(yàn)和。該方法還包括驗(yàn)證模糊保護(hù)動態(tài)鏈接庫的軟件映像的原始性,以確定是否要采取安全性出錯(cuò)措施以禁止軟件篡改。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀介質(zhì)形式包括含有用于實(shí)現(xiàn)禁止軟件篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該方法包括在將模糊保護(hù)動態(tài)鏈接庫加載到計(jì)算機(jī)上之前,計(jì)算該模糊保護(hù)動態(tài)鏈接庫的第一校驗(yàn)和。該方法還包括驗(yàn)證模糊保護(hù)動態(tài)鏈接庫的軟件映像的原始性,以確定是否要采取安全性出錯(cuò)措施以禁止軟件篡改。
根據(jù)本發(fā)明的其它方面,本發(fā)明的系統(tǒng)形式包括用于禁止軟件篡改的系統(tǒng)。該系統(tǒng)包括用于在將模糊保護(hù)動態(tài)鏈接庫加載到計(jì)算機(jī)上之前,計(jì)算該模糊保護(hù)動態(tài)鏈接庫的第一校驗(yàn)和的裝置。該系統(tǒng)還包括用于驗(yàn)證模糊保護(hù)動態(tài)鏈接庫的軟件映像的原始性,以確定是否要采取安全性出錯(cuò)措施以禁止軟件篡改的裝置。
根據(jù)本發(fā)明,提供了用于禁止軟件篡改的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的方法形式包括用于確定計(jì)算機(jī)是否屬于軟件的可支持機(jī)器類的計(jì)算機(jī)實(shí)現(xiàn)方法。該方法包括驗(yàn)證該計(jì)算機(jī)的中央處理單元上揭示中央處理單元的標(biāo)識的一組指令的存在性。該方法還包括,如果中央處理單元具有支持自標(biāo)識的體系結(jié)構(gòu),則將模糊保護(hù)動態(tài)鏈接庫加載到計(jì)算機(jī)上。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀介質(zhì)形式包括其上存儲有用于實(shí)現(xiàn)確定計(jì)算機(jī)是否屬于軟件的可支持機(jī)器類的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該方法包括驗(yàn)證該計(jì)算機(jī)的中央處理單元上揭示中央處理單元的標(biāo)識的一組指令的存在性。該方法還包括,如果中央處理單元具有支持自標(biāo)識的體系結(jié)構(gòu),則將模糊保護(hù)動態(tài)鏈接庫加載到計(jì)算機(jī)上。
根據(jù)本發(fā)明,提供了用于禁止軟件篡改的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的方法形式包括用于禁止軟件篡改的方法。該方法包括在計(jì)算機(jī)啟動之后,由登錄模塊調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能,以創(chuàng)建保護(hù)與該系統(tǒng)相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第一線程。該方法還包括在用戶登錄至計(jì)算機(jī)之后,由登錄模塊調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能以創(chuàng)建保護(hù)與該用戶相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第二線程。
根據(jù)本發(fā)明的其它方面,本發(fā)明的計(jì)算機(jī)可讀介質(zhì)形式包括其上含有用于實(shí)現(xiàn)禁止軟件篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。該方法包括在計(jì)算機(jī)啟動之后,由登錄模塊調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能以創(chuàng)建保護(hù)與該系統(tǒng)相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第一線程。該方法還包括在用戶登錄至計(jì)算機(jī)之后,由登錄模塊調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能以創(chuàng)建保護(hù)與該用戶相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第二線程。
附圖簡述通過結(jié)合附圖參考以下詳細(xì)描述,可更容易地領(lǐng)會并更好地理解本發(fā)明的前述各方面和眾多附帶優(yōu)點(diǎn),在附圖中圖1是示出表現(xiàn)了計(jì)算機(jī)中未經(jīng)授權(quán)的個(gè)體進(jìn)行的軟件篡改問題的常規(guī)系統(tǒng)的框圖。
圖2是示出用于設(shè)置軟件來禁止篡改的示例性軟件組件的框圖。
圖3A是示出交互操作來禁止軟件篡改的示例性軟件組件的框圖。
圖3B是根據(jù)本發(fā)明的一個(gè)實(shí)施例,示出存儲在注冊表或動態(tài)鏈接庫的示例性配置文件、以及軟件的安全交互操作對配置文件的提取的框圖。
圖4A-4Z是根據(jù)本發(fā)明的一個(gè)實(shí)施例,示出用于禁止軟件篡改的方法的過程示意圖。
較佳實(shí)施例的詳細(xì)描述軟件的兩面性在于它是功能強(qiáng)大但易受攻擊的。本發(fā)明的各個(gè)實(shí)施例禁止用軟件進(jìn)行篡改。一個(gè)實(shí)施例是使軟件映像模糊(obfuscation),以便混亂黑客在反向設(shè)計(jì)包含該軟件映像的軟件時(shí)的理解。另一實(shí)施例是驗(yàn)證軟件是否一起構(gòu)成了需要針對篡改的保護(hù)的軟件包。又一實(shí)施例是確定諸如計(jì)算機(jī)上的中央處理單元或高速緩存存儲器的硬件資源是否屬于可能禁止軟件篡改的一類。再一實(shí)施例包括檢查計(jì)算機(jī)上是否有某些關(guān)鍵文件被篡改。另一實(shí)施例包括確定注冊表是否被篡改。某些其它實(shí)施例包括確定正在執(zhí)行的軟件服務(wù)是否被篡改。
圖2示出了軟件組件200,它包括產(chǎn)品標(biāo)識符(PID)動態(tài)鏈接庫200A、設(shè)置軟件200B以及設(shè)置信息文件200C。設(shè)置軟件組件200負(fù)責(zé)確定用于禁止篡改的軟件是否可被安裝到計(jì)算機(jī)系統(tǒng)上。該軟件包括任何合適的軟件,諸如系統(tǒng)軟件(操作系統(tǒng))、應(yīng)用程序軟件和網(wǎng)絡(luò)軟件。產(chǎn)品標(biāo)識符動態(tài)鏈接庫200A屬于與文件分開存儲的可執(zhí)行例程類。這些例程具有特定的擴(kuò)展名,諸如“DLL”,并且僅當(dāng)程序需要時(shí)才加載。這些動態(tài)鏈接庫可合適地作為Microsoft Windows操作系統(tǒng)系列和OS/2的特性。動態(tài)鏈接庫具有若干特征首先,它在使用前一般不消耗任何存儲器;其次,因?yàn)閯討B(tài)鏈接庫是一單獨(dú)文件,所以程序員可僅對該模塊進(jìn)行更正或改進(jìn),而不影響正在調(diào)用的程序或任何其它動態(tài)鏈接庫的操作;最后,程序員可與其它程序一起使用相同的動態(tài)鏈接庫。
設(shè)置信息文件200C屬于基于文本的一類文件,并包含由諸如設(shè)置軟件200B的設(shè)置應(yīng)用程序在安裝期間使用的信息。一般而言,設(shè)置信息文件200C以及其它設(shè)置信息文件(諸如保護(hù)信息文件202A),在創(chuàng)作諸如設(shè)置軟件200B的設(shè)置應(yīng)用程序之前創(chuàng)建??杀淮鎯υ谛畔⑽募械男畔⒌氖纠ㄗ员砀淖儭⑽募?、源文件在源介質(zhì)上的位置。設(shè)置信息文件200C以及保護(hù)信息文件202A還可包含專用段。這些專用段取決于設(shè)置軟件200B,且可用于存儲由諸如設(shè)置軟件200B的特定設(shè)置應(yīng)用程序所使用的專門信息,以便安裝禁止軟件篡改的軟件。
設(shè)置軟件200B是其功能在于將諸如系統(tǒng)軟件、應(yīng)用程序軟件或網(wǎng)絡(luò)軟件等另一程序安裝在存儲介質(zhì)上或存儲器中的程序。設(shè)置軟件200B可用于指導(dǎo)用戶通過為機(jī)器、打印機(jī)、監(jiān)視器和網(wǎng)絡(luò)的特定組合設(shè)置應(yīng)用程序的通常復(fù)雜的過程。產(chǎn)品標(biāo)識符動態(tài)鏈接庫200A創(chuàng)建唯一的產(chǎn)品標(biāo)識符,并將所創(chuàng)建的產(chǎn)品標(biāo)識符204A存儲在注冊表204中,這將在下文中描述。設(shè)置信息文件200C準(zhǔn)備安裝動態(tài)鏈接庫202B,以便安裝禁止軟件篡改的軟件。安裝組件202包括保護(hù)信息文件202A和安裝動態(tài)鏈接庫202B。保護(hù)信息文件202A包含各種信息,諸如注冊表改變、文件名以及源文件的位置,以便安裝禁止軟件篡改的軟件。此外,保護(hù)信息文件202A包括用于系統(tǒng)文件206B、和市場上出售的軟件包專用的各種軟件組件的安裝信息。
包含在軟件組件202內(nèi)的安裝動態(tài)鏈接庫202B安裝禁止軟件篡改的實(shí)際軟件,諸如保護(hù)動態(tài)鏈接庫206A,這是對特定市場專用的,并可提供適于該特定市場的內(nèi)容或語言。安裝動態(tài)鏈接庫202B也設(shè)置激活密鑰204C,以便允許如具體化成保護(hù)動態(tài)鏈接庫206A中的禁止篡改的軟件來迅速標(biāo)識該安裝是安全的安裝。而且,安裝動態(tài)鏈接庫202B也安裝包含屬于硬件和/或語言等的多個(gè)加密保護(hù)配置文件以及各種系統(tǒng)文件206B,以便允許它來確定是否有什么已被篡改。
運(yùn)行時(shí)組件206包括保護(hù)動態(tài)鏈接庫206A,它具體化成禁止對系統(tǒng)文件206B進(jìn)行軟件篡改的軟件,該系統(tǒng)文件206B包括幫助文件以及諸如語言等市場專用內(nèi)容文件。
中央分層數(shù)據(jù)庫204包括產(chǎn)品標(biāo)識符204A、激活密鑰204C以及加密保護(hù)配置文件204D。中央分層數(shù)據(jù)庫204被用于存儲為一個(gè)或多個(gè)用戶、應(yīng)用程序和硬件設(shè)備配置系統(tǒng)所必需的信息。中央分層數(shù)據(jù)庫204包含各種信息,這些信息可由操作系統(tǒng)在操作期間繼續(xù)參考,諸如每一用戶的配置文件、安裝在計(jì)算機(jī)上的應(yīng)用程序、以及可創(chuàng)建的各類文檔;文件夾和應(yīng)用程序圖標(biāo)的屬性頁設(shè)定;系統(tǒng)上存在什么硬件;以及正在使用哪些端口。如上所述,中央分層數(shù)據(jù)庫204此外可用于存儲協(xié)助禁止軟件篡改的信息。一項(xiàng)合適的信息包括校驗(yàn)和,這是用于諸如當(dāng)黑客修改文件時(shí)的篡改測試數(shù)據(jù)的計(jì)算值。較佳地通過依次組合數(shù)據(jù)的所有字節(jié)和一連串算術(shù)或邏輯運(yùn)算來對給定的數(shù)據(jù)塊計(jì)算校驗(yàn)和。在其中驗(yàn)證或確認(rèn)軟件篡改的時(shí)段期間,可使用所存儲的數(shù)據(jù)以相同的方式計(jì)算新的校驗(yàn)和。如果兩個(gè)校驗(yàn)和不匹配,則可能發(fā)生了軟件篡改,且可采取合適的步驟來更正篡改或關(guān)閉計(jì)算機(jī)。
圖3A示出了如由保護(hù)動態(tài)鏈接庫306A具體化的用于禁止軟件篡改的軟件的執(zhí)行。圖3A的各個(gè)元素類似于圖2A的各個(gè)元素,且為簡潔的目的起見,將不對其進(jìn)一步討論。登錄組件308包括登錄模塊308A,并在計(jì)算機(jī)系統(tǒng)啟動時(shí),登錄模塊380A取決于產(chǎn)品標(biāo)識符304A嘗試加載保護(hù)動態(tài)鏈接庫306A。如果適當(dāng)?shù)漠a(chǎn)品標(biāo)識符存在于中央分層數(shù)據(jù)庫204中,則保護(hù)動態(tài)鏈接庫306A將由登錄模塊308A加載。登錄模塊308A較佳的是在允許用戶訪問計(jì)算機(jī)上的系統(tǒng)軟件之前接收用戶名和口令并確認(rèn)該信息的軟件。
保護(hù)動態(tài)鏈接庫306A在計(jì)算機(jī)系統(tǒng)軟件的執(zhí)行期間,通過讀取各個(gè)加密保護(hù)配置文件304D驗(yàn)證各個(gè)系統(tǒng)文件306B并未被篡改。此外,保護(hù)動態(tài)鏈接庫306A驗(yàn)證密鑰的各個(gè)設(shè)置及其關(guān)聯(lián)值以確定它們是否已被篡改。保護(hù)動態(tài)鏈接庫306A開始時(shí)創(chuàng)建定時(shí)器來檢查注冊表以及被授權(quán)在計(jì)算機(jī)系統(tǒng)上運(yùn)行的服務(wù)。如果系統(tǒng)已被篡改,則保護(hù)動態(tài)鏈接庫306A較佳地試圖修補(bǔ)該篡改,或啟動計(jì)算機(jī)的關(guān)閉,以及處理篡改的其它合適方法。
例如,保護(hù)動態(tài)鏈接庫306A監(jiān)視中央分層數(shù)據(jù)庫304,且如果存在篡改則使密鑰及其相關(guān)聯(lián)的值復(fù)位。保護(hù)動態(tài)鏈接庫306A也針對加密保護(hù)配置文件304D和保護(hù)動態(tài)鏈接庫306A中所包含的信息檢查諸如各個(gè)系統(tǒng)文件306B的關(guān)鍵文件,以確定是否存在篡改。而且,保護(hù)動態(tài)鏈接庫306A檢查以確定運(yùn)行在計(jì)算機(jī)系統(tǒng)上的軟件服務(wù)被授權(quán),并移除未經(jīng)授權(quán)的軟件服務(wù)。
圖3B示出了可由諸如登錄模塊308A的軟件訪問的加密保護(hù)配置文件304D。登錄模塊308A與保護(hù)動態(tài)鏈接庫306B通信以訪問加密保護(hù)配置文件304D。登錄模塊308A與保護(hù)動態(tài)鏈接庫306B之間的可互操作性較佳地按照確認(rèn)信息的傳輸或傳送可在軟件之間安全發(fā)生的合適協(xié)議進(jìn)行。
一個(gè)合適的協(xié)議包括隨機(jī)鹽值的傳輸,這可包括數(shù)字、字母或數(shù)字字母信息串,它們由登錄模塊308A向保護(hù)動態(tài)鏈接庫306B發(fā)送。保護(hù)動態(tài)鏈接庫306B較佳地具有兩個(gè)密鑰,一個(gè)公共庫密鑰以及一個(gè)私有庫密鑰。在加密和數(shù)字簽名中,這些密鑰包括用于加密和解密要發(fā)送或接收的信息的比特串。加密通常依賴于兩種不同類型的密鑰——一人以上知道的公共密鑰以及僅一個(gè)人知道的私有密鑰。
保護(hù)動態(tài)鏈接庫306B使用私有庫密鑰來解密諸如配置文件312-316的配置文件。每一配置文件被合適地組織成稱之為塊(blob)的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)是可在其中存儲各種信息的無定形的數(shù)據(jù)結(jié)構(gòu)。較佳地,配置文件312-316的塊使用保護(hù)動態(tài)鏈接庫306B的私有庫密鑰加密。配置文件312包括塊1,它由保護(hù)動態(tài)鏈接庫306B的私有庫密鑰加密。塊1包括配置文件數(shù)據(jù)1 312A,它的大小和格式取決于配置文件類型,諸如硬件配置文件或語言配置文件。塊1也包括簽名1 312B,它包含配置文件數(shù)據(jù)1 312A的校驗(yàn)和,以保護(hù)動態(tài)鏈接庫306B的公共庫密鑰來數(shù)字簽署。塊1也包括驗(yàn)證塊1 312C,它是配置文件312的標(biāo)識符和配置文件數(shù)據(jù)1 312A的校驗(yàn)和,它以登錄模塊308A的公共調(diào)用密鑰數(shù)字簽署,也以登錄模塊308A的私有調(diào)用密鑰加密。
配置文件312被組織成塊2,其中包含驗(yàn)證者塊2 314A,它是配置文件314及其由配置文件數(shù)據(jù)2 314B描述的數(shù)據(jù)的校驗(yàn)和,它以登錄模塊308A的私有調(diào)用密鑰數(shù)字簽署也以登錄模塊308A的私有調(diào)用密鑰加密。塊2包括配置文件數(shù)據(jù)2 314B,其大小和格式取決于配置文件類型,諸如硬件配置文件或語言配置文件。塊2也包括簽名2 314C,它是配置文件數(shù)據(jù)2314B的校驗(yàn)和,以保護(hù)動態(tài)鏈接庫306B的公共庫密鑰數(shù)字簽署。
配置文件316被組織成塊3。塊3包括簽名3 316A,它是配置文件數(shù)據(jù)3 316C的校驗(yàn)和,以保護(hù)動態(tài)鏈接庫306B的公共庫密鑰數(shù)字簽署。塊3包括驗(yàn)證者塊3316B,它是配置文件316的標(biāo)識符及其由配置文件數(shù)據(jù)3 316C的校驗(yàn)和,以登錄模塊308A的公共調(diào)用密鑰數(shù)字簽署也以登錄模塊308A的私有調(diào)用密鑰加密。塊3包括配置文件數(shù)據(jù)3 316C,其大小和格式取決于配置文件類型,諸如硬件配置文件或語言配置文件。注意到,配置文件312-316的每一塊1-3以及諸如配置文件數(shù)據(jù)1-3、簽名1-3和驗(yàn)證者塊1-3的各個(gè)指定組織被有差異地置于塊1-3或配置文件312-316的每一個(gè)中。這些不同的安排協(xié)助禁止對注冊表304內(nèi)所包含的配置文件數(shù)據(jù)的篡改。包含設(shè)置信息的頭部存在于塊1-3內(nèi),從而允許確定指定組織中的每一個(gè)駐留在塊1-3內(nèi)的何處。
當(dāng)保護(hù)動態(tài)鏈接庫306B通過使用其私有庫密鑰解密配置文件或塊已找到了期望配置文件時(shí),它將該配置文件返回至登錄模塊308A。在將數(shù)據(jù)返回給登錄模塊308A之前,保護(hù)動態(tài)鏈接庫306B根據(jù)所找到的配置文件的標(biāo)識符以及配置數(shù)據(jù)計(jì)算校驗(yàn)和。該校驗(yàn)和包括配置文件與開始時(shí)由登錄模塊308A發(fā)送的隨機(jī)鹽值的比較結(jié)果。該鹽值在本質(zhì)上禁止了黑客僅僅模仿保護(hù)動態(tài)鏈接庫306A來向登錄模塊308A返回假配置文件的能力。
當(dāng)進(jìn)行了校驗(yàn)和的計(jì)算時(shí),保護(hù)動態(tài)鏈接庫306B向登錄模塊308A返回基本上是具有各種信息(例如,成功、失敗和詳細(xì)描述成功或失敗的標(biāo)志)的結(jié)果數(shù)據(jù)結(jié)構(gòu)的結(jié)果,找到的配置文件中的驗(yàn)證者塊,以及從該配置文件的標(biāo)識符、其數(shù)據(jù)、該結(jié)果和隨機(jī)鹽值中計(jì)算出的計(jì)算的校驗(yàn)和。登錄模塊308A驗(yàn)證來自保護(hù)動態(tài)鏈接庫306B的返回結(jié)果。登錄模塊308A使用其私有調(diào)用密鑰對驗(yàn)證者塊解密,以獲取配置文件的標(biāo)識符和配置文件的數(shù)據(jù)的校驗(yàn)和。此外,登錄模塊308A通過使用其公共調(diào)用密鑰來驗(yàn)證驗(yàn)證者塊的簽名。而且,登錄模塊308A計(jì)算經(jīng)解密的驗(yàn)證者塊、DLL的結(jié)果以及開始時(shí)傳遞給保護(hù)動態(tài)鏈接庫306A的隨機(jī)鹽值的校驗(yàn)和。登錄模塊308A執(zhí)行測試,以確定它所計(jì)算出的校驗(yàn)和是否匹配由保護(hù)動態(tài)鏈接庫306B返回的校驗(yàn)和。如果校驗(yàn)和不匹配,則登錄模塊308A斷定系統(tǒng)已被篡改。
圖4A-4Z示出了用于禁止軟件篡改的方法400。為清楚起見,對方法400的以下描述參考結(jié)合圖2A的軟件組件200、202、204和206;登錄模塊308A;圖3A-3B的保護(hù)動態(tài)鏈接庫306B示出的各個(gè)元件。從開始框起,方法400前進(jìn)至一組方法步驟402,它們在繼續(xù)終端(“終端A”)與退出終端(“終端B”)之間定義。這組方法步驟402描述了模糊用于禁止軟件篡改的軟件。
從終端A(圖4C),方法400前進(jìn)至框414,在那里為保護(hù)動態(tài)鏈接庫創(chuàng)建源代碼,這具體化為禁止軟件篡改的軟件。該源代碼被編譯并鏈接以創(chuàng)建保護(hù)動態(tài)鏈接庫(DLL)。見框416。接著,在框418,創(chuàng)建包含類名、方法和字段的模糊控制文件。方法400然后前進(jìn)至框420,在那里使用保護(hù)DLL和模糊控制文件作為輸入來執(zhí)行模糊處理。產(chǎn)生模糊DLL,其中類名、方法、字段和控制流均被模糊化。見框422。模糊處理使保護(hù)動態(tài)鏈接庫難以由試圖反向設(shè)計(jì)保護(hù)動態(tài)鏈接庫的黑客調(diào)試。模糊處理的一個(gè)示例是將跳轉(zhuǎn)指令插入保護(hù)動態(tài)鏈接庫或?qū)幊讨噶钪匦屡判颉?br>
上述模糊處理是允許在軟件匯編中對符號重命名,以便挫敗試圖為非法目的而反向設(shè)計(jì)軟件的反編譯器的眾多合適技術(shù)之一。模糊處理可增加對非法反編譯的保護(hù)同時(shí)保持應(yīng)用程序原樣。模糊化的目標(biāo)在于混淆,它使理解軟件的多方面智能概念的黑客的頭腦負(fù)擔(dān)沉重。當(dāng)模糊處理不僅使作為黑客的人工編譯混淆時(shí),它也可能破壞取決于邏輯確定性的反編譯器。模糊處理創(chuàng)造了無數(shù)種反編譯可能,其一部分導(dǎo)致不正確的邏輯,由此造成編譯中的不確定性。
從終端A1(圖4D),方法400前進(jìn)至框426,在那里該方法計(jì)算模糊保護(hù)DDL的校驗(yàn)和。然后創(chuàng)建分類文件。見框428。分類文件的一種合適實(shí)現(xiàn)是數(shù)據(jù)庫。該目錄包含每一軟件組件的名稱、其版本及其簽名(例如,校驗(yàn)和)。接著,在框430,模糊保護(hù)DLL的校驗(yàn)和被置于分類文件內(nèi)。方法400然后前進(jìn)至框432,在那里該方法計(jì)算包含模糊保護(hù)DLL校驗(yàn)和的分類文件校驗(yàn)和。分類文件校驗(yàn)和也使用私有密鑰加密。見框434。換言之,分類文件由私有密鑰數(shù)字簽署。此時(shí),方法400產(chǎn)生可被驗(yàn)證的模糊保護(hù)DLL和分類文件。驗(yàn)證協(xié)助查明該模糊保護(hù)DLL是否來自已知源,諸如特定軟件制造商,并查明模糊保護(hù)DLL尚未被篡改。方法400然后繼續(xù)至退出終端B。
從終端B(圖4A),方法400前進(jìn)至一組方法步驟,它們定義在繼續(xù)終端(“終端C”)與退出終端(“終端D”)之間。這組方法步驟404描述了計(jì)算機(jī)上對保護(hù)動態(tài)鏈接庫的設(shè)置,它具體化為用于禁止軟件篡改的軟件。
從終端C(圖4E),方法400前進(jìn)至框438,在那里該方法獲取軟件的產(chǎn)品標(biāo)識符,并將其存儲在諸如注冊表的中央分層數(shù)據(jù)庫中。該產(chǎn)品標(biāo)識符由用戶提供,用戶可從一般貼在軟件包裝上的密鑰中獲取該標(biāo)識符。該方法解碼產(chǎn)品標(biāo)識符以標(biāo)識其中該軟件所歸類的類。見框440。該軟件可包括任何合適的軟件,諸如系統(tǒng)軟件、應(yīng)用程序軟件或網(wǎng)絡(luò)軟件。接著,在判定框442,進(jìn)行測試以確定保護(hù)是否對所標(biāo)識的類可用。如果答案為否,則方法400前進(jìn)至另一繼續(xù)終端(“終端L”)并終止執(zhí)行。另一方面,如果對判定框442的測試的答案為是,則方法400前進(jìn)至框444,在那里調(diào)用安裝動態(tài)鏈接庫。安裝動態(tài)鏈接庫基于產(chǎn)品標(biāo)識符將激活密鑰安裝到諸如注冊表的中央分層數(shù)據(jù)庫中。見框446。激活密鑰允許計(jì)算機(jī)在不進(jìn)行耗時(shí)的產(chǎn)品標(biāo)識符解碼的情況下迅速檢查并確定用于禁止軟件篡改的軟件是否在計(jì)算機(jī)上運(yùn)行。
從終端C1(圖4F),安裝動態(tài)鏈接庫將加密保護(hù)配置文件安裝到諸如注冊表的中央分層數(shù)據(jù)庫中。在計(jì)算機(jī)啟動之后,執(zhí)行諸如系統(tǒng)軟件的軟件的登錄模塊。見框450。接著,在框452,登錄模塊對存儲在諸如注冊表的中央分層數(shù)據(jù)庫中的產(chǎn)品標(biāo)識符解碼,并獲取其中該軟件所歸類的產(chǎn)品類。方法400前進(jìn)至判定框454,在那里執(zhí)行測試以確定保護(hù)是否對所標(biāo)識的產(chǎn)品類可用。如果對判定框454的測試的答案為否,則方法400繼續(xù)至終端L,在那里它終止執(zhí)行。另一方面,如果對判定框454的測試的答案為是,則登錄模塊308A嘗試將模糊保護(hù)動態(tài)鏈接庫加載到計(jì)算機(jī)上。見框456。該方法在另一繼續(xù)終端(“終端C2”)處繼續(xù)。
從終端C2(圖4G),方法400前進(jìn)至框458,在那里該方法計(jì)算要安裝的保護(hù)動態(tài)鏈接庫的校驗(yàn)和。注意,在下文中,為簡潔起見,模糊保護(hù)動態(tài)鏈接庫將被稱為保護(hù)動態(tài)鏈接庫。該方法獲取系統(tǒng)文件中所包括的分類文件的列表。見框460。接著在框462,該方法從列表中取出一分類文件,并搜索該分類文件中所包含的校驗(yàn)和。進(jìn)行對簽名的解密和驗(yàn)證。方法400前進(jìn)至判定框464,在那里執(zhí)行測試以確定兩個(gè)校驗(yàn)和之間是否存在匹配。如果對判定框464的測試的答案為否,則方法400繼續(xù)至另一繼續(xù)終端(“終端C3”)。另一方面,如果對判定框464的測試的答案為是,則方法400繼續(xù)至另一繼續(xù)終端(“終端C4”)。結(jié)合圖4G討論的處理步驟描述了由此驗(yàn)證模糊保護(hù)動態(tài)鏈接庫的軟件映像以確定軟件映像的原始性(即,軟件映像是否由期望的軟件制造商原始裝運(yùn)或分銷)的過程。如果已發(fā)生了篡改,則驗(yàn)證過程指示要加載的模糊保護(hù)動態(tài)鏈接庫的軟件映像已被篡改,并可能必須采取諸如關(guān)閉計(jì)算機(jī)等安全性出錯(cuò)措施。
從終端C3(圖4H),方法400繼續(xù)至判定框466,在那里執(zhí)行測試以確定是否存在要搜索的其它分類文件。如果對判定框466的測試的答案為是,則該方法繼續(xù)至另一終端(“終端C5”)。從終端C5(圖4G),方法400循環(huán)回至框462,在那里重復(fù)上述處理步驟。另一方面,如果對判定框466的測試的答案為否,則方法400繼續(xù)至框468,在那里要安裝的保護(hù)動態(tài)鏈接庫不是與分類文件同來的原始動態(tài)鏈接庫,這意味著它可能已被篡改。方法400然后在另一繼續(xù)終端(“終端C7”)處繼續(xù)。從終端C4(圖4H),方法400前進(jìn)至判定框470,在那里執(zhí)行測試以確定是否存在保護(hù)動態(tài)鏈接庫和可信的分類文件。如果對判定框470的測試的答案為否,則方法400繼續(xù)至終端C5,在那里它循環(huán)回框462,并重復(fù)上述處理步驟。判定框470中所述測試的一種合適實(shí)現(xiàn)是由Microsoft Windows提供的一組信任檢查應(yīng)用程序編程接口。否則,如果對判定框470的測試的答案為是,則該方法在另一繼續(xù)終端(“終端C6”)處繼續(xù)。
從終端C6(圖4I),方法400前進(jìn)至框472,在那里該方法驗(yàn)證所找到的分類文件,并通過調(diào)用一組信任檢查應(yīng)用程序編程接口獲取狀態(tài)數(shù)據(jù)作為返回值。該方法經(jīng)由一組信任檢查應(yīng)用程序編程接口使用所獲取的狀態(tài)數(shù)據(jù)來獲取信任供應(yīng)商信息。見框474。接著,在框476,該方法使用所獲取的信任供應(yīng)商信息從證書鏈中獲取基本簽署者。方法400前進(jìn)至框478,在那里該方法使用基本簽署者的環(huán)境確認(rèn)證書鏈的最后一個(gè)元素。執(zhí)行測試,以確定最后的元素是否包含正確的公共密鑰。見判定框480。如果對判定框480的測試的答案為是,則方法400前進(jìn)至終端C7。另一方面,如果對判定框480的測試的答案為否,則該方法繼續(xù)至終端C5,在那里它循環(huán)回框462,并重復(fù)上述處理步驟。
從終端C7(圖4J),方法400前進(jìn)至判定框482,在那里執(zhí)行測試以確定保護(hù)動態(tài)鏈接庫是否被成功加載。如果對判定框482的測試的答案為否,則該方法使系統(tǒng)關(guān)閉。見框484。方法400前進(jìn)至終端L并終止執(zhí)行。另一方面,如果對判定框482的測試的答案為是,則方法400前進(jìn)至框486,在那里該方法創(chuàng)建在不可終止線程中運(yùn)行的第一定時(shí)器。該方法繼續(xù)至由繼續(xù)終端(“終端C8”)和退出終端D表示的兩條執(zhí)行路徑。圖4J處執(zhí)行路徑的分裂是為了示出運(yùn)行在計(jì)算機(jī)上的若干軟件的并發(fā)性。
從終端C8(圖4K),方法400前進(jìn)至判定框488,在那里執(zhí)行測試以確定預(yù)先配置的時(shí)間段是否期滿。如果答案為否,則方法400循環(huán)回至判定框488,在那里重復(fù)上述處理步驟。如果對判定框488的測試的答案為是,則方法400前進(jìn)至框490,在那里該方法檢查存儲在諸如注冊表的中央分層數(shù)據(jù)庫中的激活密鑰以對產(chǎn)品類解碼。執(zhí)行另一測試以確定保護(hù)是否對所解碼的產(chǎn)品類可用。見判定框492。如果對判定框492的測試的答案為是,則方法400循環(huán)回至終端C8,在那里重復(fù)上述處理步驟。另一方面,如果對判定框492的答案為否,則核心應(yīng)用程序編程接口已被篡改,且該方法采取安全性措施,諸如關(guān)閉計(jì)算機(jī)。見框494。方法400然后繼續(xù)至終端L并終止執(zhí)行。
從終端D(圖4A),方法400前進(jìn)至一組方法步驟406,它們定義在繼續(xù)終端(“終端E”)與退出終端(“終端F”)之間。這組方法步驟406確定該計(jì)算機(jī)是否屬于可支持機(jī)器類。
從終端E(圖4L),方法400前進(jìn)至框496,在那里該方法驗(yàn)證一組指令在計(jì)算機(jī)的中央處理單元上的存在性以獲取其標(biāo)識。執(zhí)行測試以確定這組指令是否可用。見判定框498。如果對判定框498的測試的答案為否,則計(jì)算機(jī)的中央處理單元具有不支持自標(biāo)識的體系結(jié)構(gòu)。見框499。一個(gè)合適的結(jié)論是,中央處理單元能夠支持用于禁止軟件篡改的軟件。方法400然后繼續(xù)至退出終端F。另一方面,如果對判定框498的測試的答案為是,則登錄模塊與保護(hù)動態(tài)鏈接庫通信以訪問與被排除在外的中央處理單元類相關(guān)的加密保護(hù)配置文件。見框497。換言之,存在安裝在計(jì)算機(jī)上的描述計(jì)算機(jī)操作的各個(gè)參數(shù)的文件。例如,語言文件描述操作系統(tǒng)向用戶呈現(xiàn)信息所使用的語言。作為另一示例,硬件文件描述操作系統(tǒng)支持的計(jì)算機(jī)。問題在于,文件可能輕易地被黑客或惡意軟件篡改。包含在加密保護(hù)配置文件中的是表示原始文件被安裝在計(jì)算機(jī)上的校驗(yàn)和。如果原始文件要被篡改,則被篡改文件的校驗(yàn)和與加密保護(hù)配置文件中所存儲的校驗(yàn)和將不匹配,表示原始文件已被篡改。例如,如果黑客想修改硬件文件以欺騙操作系統(tǒng)來支持不可支持計(jì)算機(jī),則經(jīng)修改的硬件文件的校驗(yàn)和可能與加密保護(hù)配置文件中所存儲的校驗(yàn)和不同,由此允許對篡改的判斷。返回至圖4A,登錄模塊向保護(hù)動態(tài)鏈接庫傳入用于增強(qiáng)安全性的隨機(jī)鹽值。見框495。該隨機(jī)鹽值使得黑客難以戰(zhàn)勝或截取功能性啟用或調(diào)用。如將在下文中所述,隨機(jī)鹽值被用于基于該隨機(jī)鹽值和由保護(hù)動態(tài)鏈接庫發(fā)送的數(shù)據(jù)計(jì)算校驗(yàn)和。將該校驗(yàn)和與由保護(hù)動態(tài)鏈接庫計(jì)算的校驗(yàn)和進(jìn)行比較,以確定是否已發(fā)生了篡改。方法400然后繼續(xù)至另一繼續(xù)終端(“終端E1”)。
從終端E1(圖4M),方法400前進(jìn)至框493,在那里保護(hù)動態(tài)鏈接庫使用私有庫密鑰對加密保護(hù)配置文件(“配置文件”)解密。保護(hù)動態(tài)鏈接庫將配置文件與該系統(tǒng)進(jìn)行比較。見框491。接著,在判定框489,執(zhí)行測試以確定是否已找到配置文件。每一配置文件具有較佳為多個(gè)位,諸如64位的名字。如果對判定框489的測試的答案為否,則方法400循環(huán)回至框493,在那里重復(fù)上述處理步驟。另一方面,如果對判定框489的測試的答案為是,則方法400前進(jìn)至框487,在那里保護(hù)動態(tài)鏈接庫計(jì)算配置文件的身份、其數(shù)據(jù)、比較結(jié)果以及鹽值的校驗(yàn)和。保護(hù)動態(tài)鏈接庫返回結(jié)果數(shù)據(jù)結(jié)構(gòu)、配置文件的驗(yàn)證者塊以及所計(jì)算出的校驗(yàn)和。見框485。該方法然后繼續(xù)至另一繼續(xù)終端(“終端E2”)。
從終端E2(圖4N),方法400前進(jìn)至框483,在那里登錄模塊使用私有調(diào)用密鑰來對驗(yàn)證者塊解密并獲取驗(yàn)證者校驗(yàn)和。該登錄模塊使用公共調(diào)用密鑰確認(rèn)校驗(yàn)和的簽名。見框481。接著,在框479,登錄模塊根據(jù)所解密的驗(yàn)證者校驗(yàn)和、所接收的結(jié)果數(shù)據(jù)結(jié)構(gòu)以及鹽值計(jì)算校驗(yàn)和。方法400前進(jìn)至框477,在那里該方法準(zhǔn)備好由登錄模塊和保護(hù)動態(tài)鏈接庫計(jì)算出的校驗(yàn)和。執(zhí)行測試以確定校驗(yàn)和是否匹配。見判定框475。如果對判定框475的測試的答案為否,則方法400繼續(xù)至終端L,并終止執(zhí)行。否則,對判定框475的測試的答案為是,方法400前進(jìn)至另一繼續(xù)終端(“終端E3”)。
從終端E3(圖4O),方法400前進(jìn)至框473,在那里該方法從配置文件中提取被排除在外的計(jì)算機(jī)類的列表。該方法然后使計(jì)算機(jī)查閱CPU信息(例如,廠商身份、類型、系列、型號、品牌身份以及特征集)。見框471。接著,在判定框469,執(zhí)行測試以確定廠商身份是否位于被排除在外的列表上。如果對判定框469的測試的答案為否,則方法400繼續(xù)至終端F。否則,對該測試的答案為是,且該方法繼續(xù)至另一繼續(xù)終端(“終端E4”)。
從終端E4(圖4P),方法400繼續(xù)至判定框467,在那里執(zhí)行測試以確定類型、系列和型號是否位于被排除在外的列表上。如果對判定框467的測試的答案為是,則方法400在另一繼續(xù)終端(“終端E7”)處繼續(xù)。否則,如果對判定框467的測試的答案為否,則方法400繼續(xù)至另一判定框465,在那里執(zhí)行測試以確定品牌身份和特征集是否位于該被排除在外的列表上。如果對判定框465的測試的答案為是,則方法400繼續(xù)至終端E7。否則,如果對判定框465的測試的答案為否,則方法400繼續(xù)至另一繼續(xù)終端(“終端E5”)。
從終端E5(圖4Q),方法400繼續(xù)至判定框463,在那里執(zhí)行測試以確定是否存在確定計(jì)算機(jī)的CPU即中央處理單元的身份的擴(kuò)展指令。如果對判定框463的測試的答案為否,則該方法繼續(xù)至終端F。否則,如果對判定框463處的測試的答案為是,則該方法調(diào)用擴(kuò)展的指令以獲取計(jì)算機(jī)的CPU即中央處理單元的名稱。見框461。接著,在框459,該方法調(diào)用擴(kuò)展指令以獲取中央處理單元的高速緩存的大小。方法400在另一繼續(xù)終端(“終端E6”)處繼續(xù)。
從終端E6(圖4R),方法400前進(jìn)至判定框457,在那里執(zhí)行測試以確定中央處理單元名稱是否位于被排除在外的列表上。如果對判定框457的測試的答案為是,則該方法繼續(xù)至終端E7。如果對判定框457的測試的答案為否,則執(zhí)行另一測試以確定CPU的高速緩存大小是否位于被排除在外的列表上。見判定框455。如果對判定框455的測試的答案為是,則方法400繼續(xù)至終端E7。否則,如果答案為否,則方法400繼續(xù)至終端F。
從終端E7(圖4S),該方法發(fā)出在計(jì)算機(jī)上沒有可用保護(hù)的出錯(cuò)消息,并使系統(tǒng)關(guān)閉。見框455。方法400然后繼續(xù)至終端L,并終止執(zhí)行。
從終端F(圖4B),方法400前進(jìn)至一組方法步驟408,它們定義在繼續(xù)終端(“終端G”)與退出終端(“終端H”)之間。這組方法步驟408驗(yàn)證安裝文件是否已被篡改。
從終端G(圖4S),登錄模塊與保護(hù)動態(tài)鏈接庫通信,以訪問與計(jì)算機(jī)上的關(guān)鍵文件相關(guān)的加密保護(hù)配置文件。見框453。圖4L-4N的步驟495-475(以所示次序)在尋找與計(jì)算機(jī)上的關(guān)鍵文件相關(guān)的加密保護(hù)配置文件的環(huán)境中執(zhí)行。見框451。接著,在框449,該方法從配置文件中提取關(guān)鍵文件列表。執(zhí)行測試以確定計(jì)算機(jī)上的關(guān)鍵文件是否已被改變。見判定框447。如果對判定框447的測試的答案為是,則方法400繼續(xù)至終端L,并終止執(zhí)行。否則,對判定框400處的測試的答案為否,則方法繼續(xù)至終端H。請注意,終端G與終端H之間的處理步驟可并發(fā)執(zhí)行,以便繼續(xù)檢查計(jì)算機(jī)上的關(guān)鍵文件是否已被改變或篡改。
從終端H(圖4B),方法400前進(jìn)至一組方法步驟410,它們定義在繼續(xù)終端(“終端I”)與退出終端(“終端J”)之間。這組方法步驟410確定注冊表是否已被篡改。
從終端I(圖4T),在啟動之后,登錄模塊調(diào)用保護(hù)動態(tài)鏈接庫的保護(hù)功能以保護(hù)系統(tǒng)環(huán)境的注冊表的密鑰和值。見框445。保護(hù)動態(tài)鏈接庫創(chuàng)建線程以保護(hù)系統(tǒng)環(huán)境的注冊表的各個(gè)密鑰和值。見框443。接著,在框441,保護(hù)動態(tài)鏈接庫向登錄模塊返回剛創(chuàng)建線程的句柄(handle)。方法400前進(jìn)至框439,在那里該方法創(chuàng)建定時(shí)器來檢查保護(hù)系統(tǒng)環(huán)境處的注冊表的密鑰和值的線程的持續(xù)性。接著,方法400前進(jìn)至三條獨(dú)立的執(zhí)行路徑,它們由繼續(xù)終端(“終端I2”)、判定框437和另一繼續(xù)終端(“終端I4”)表示。這些獨(dú)立的執(zhí)行路徑指示并發(fā)性。在判定框437執(zhí)行測試以確定預(yù)先配置的時(shí)間段是否已期滿。如果對判定框437的測試的答案為否,則方法400前進(jìn)至另一繼續(xù)終端(“終端I3”),并循環(huán)回判定框437,在那里重復(fù)上述處理步驟。否則,如果對判定框437的測試的答案為是,則方法400繼續(xù)至另一繼續(xù)終端(“終端I1”)。
從終端I1(圖4U),方法400前進(jìn)至判定框435,在那里執(zhí)行測試以確定線程是否已終止。如果對判定框435的測試的答案為否,則該方法繼續(xù)至另一判定框433,在那里執(zhí)行另一測試以確定線程是否被掛起。如果對判定框433的測試的答案為否,則方法400繼續(xù)至終端I3,并循環(huán)回判定框437,在那里重復(fù)上述處理步驟。如果對判定框435、433的測試的答案均為是,則方法400前進(jìn)至框431,在那里系統(tǒng)被認(rèn)為已被篡改,且該方法使系統(tǒng)關(guān)閉。方法400然后繼續(xù)至終端L并終止執(zhí)行。
從終端I2(圖4V),方法400前進(jìn)至框429,在那里線程與保護(hù)動態(tài)鏈接庫通信,以訪問要保護(hù)的系統(tǒng)注冊表的密鑰和值的列表。執(zhí)行圖4L-4N的步驟495-475(以示出的次序)。見框427。接著,在框425,線程訂閱對任何改變的通知以保護(hù)注冊表密鑰。在判定框423執(zhí)行測試以確定是否存在對改變的通知。如果對判定框423的測試的答案為否,則該方法循環(huán)回判定框423,在那里重復(fù)上述處理步驟。否則,對判定框423的測試的答案為是,且該方法修復(fù)被篡改的密鑰及其值。見框421。方法400然后循環(huán)回至判定框423,在那里重復(fù)上述處理步驟。
從終端I4(圖4W),方法400前進(jìn)至框419,在那里在用戶登錄之后,登錄模塊調(diào)用保護(hù)動態(tài)鏈接庫的保護(hù)功能,以保護(hù)該用戶環(huán)境的注冊表的密鑰和值。保護(hù)動態(tài)鏈接庫創(chuàng)建線程以保護(hù)該用戶環(huán)境處的注冊表的各個(gè)密鑰和值。見框417。接著,在框415,保護(hù)動態(tài)鏈接庫向登錄模塊返回剛創(chuàng)建線程的句柄。方法400前進(jìn)至框413,在那里該方法創(chuàng)建定時(shí)器以檢查保護(hù)用戶環(huán)境的注冊表的密鑰和值的線程的持續(xù)性。為該用戶環(huán)境執(zhí)行圖4T-4U的步驟437-421(以示出的次序)。方法400然后繼續(xù)至終端J。
從終端J(圖4B),方法400前進(jìn)至一組方法步驟412,它們定義在繼續(xù)終端(“終端K”)與退出終端(“終端L”)之間。這組方法412確定服務(wù)是否已被篡改或是否有未經(jīng)授權(quán)的服務(wù)正在執(zhí)行。從終端K(圖4X),在啟動之后,登錄模塊調(diào)用保護(hù)動態(tài)鏈接庫的保護(hù)功能以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行。保護(hù)動態(tài)鏈接庫創(chuàng)建線程以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行。見框407。接著,在框405,保護(hù)動態(tài)鏈接庫向登錄模塊返回剛創(chuàng)建線程的句柄。方法400然后繼續(xù)至框403,在那里該方法創(chuàng)建定時(shí)器來檢查禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的線程的持續(xù)性。執(zhí)行圖4T-4U的步驟437-431。見框401。接著,在框401A,線程與保護(hù)動態(tài)鏈接庫通信,以訪問與未經(jīng)授權(quán)服務(wù)的列表相關(guān)的加密保護(hù)配置文件。方法400然后繼續(xù)至另一繼續(xù)終端(“終端K1”)。
從終端K1(圖4Y),執(zhí)行圖4L-4N的步驟495-475。在判定框401C執(zhí)行測試以確定是否有未經(jīng)授權(quán)服務(wù)正在運(yùn)行。如果對判定框401C的測試的答案為否,則方法400繼續(xù)至另一繼續(xù)終端(“終端K2”)。否則,如果對判定框401C的測試的答案為是,則方法400前進(jìn)至框401D,在那里該方法停止依賴于該未經(jīng)授權(quán)服務(wù)的所有服務(wù)。然后從執(zhí)行中刪除該未經(jīng)授權(quán)的服務(wù)。見框401E。
從終端K2(圖4J),方法400前進(jìn)至判定框401F,在那里執(zhí)行測試以確定是否還有其它未經(jīng)授權(quán)服務(wù)。如果對判定框401F的測試的答案為是,則該方法繼續(xù)至另一繼續(xù)終端(“終端K3”)。從終端K3(圖4Y),方法400循環(huán)回判定框401C,在那里重復(fù)上述處理步驟。否則,如果對判定框401F的測試的答案為否,則方法400前進(jìn)至框401G,在那里線程睡眠預(yù)先配置的時(shí)間段。方法400然后經(jīng)由終端K3循環(huán)回判定框401C,在那里重復(fù)上述處理步驟。結(jié)合定義在終端K與L之間的這組方法步驟412所描述的步驟較佳地與其它組方法步驟并發(fā)地執(zhí)行。
盡管示出和描述了本發(fā)明的較佳實(shí)施例,但可理解,可對其進(jìn)行各種改變,而不背離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用于禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法,包括調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行;以及調(diào)用所述模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值。
2.如權(quán)利要求1所述的方法,其特征在于,還包括執(zhí)行登錄模塊,如果保護(hù)可用于所述軟件所歸類于其中的產(chǎn)品類,則所述登錄模塊加載所述模糊保護(hù)動態(tài)鏈接庫。
3.如權(quán)利要求2所述的方法,其特征在于,還包括如果所述加載模糊保護(hù)動態(tài)鏈接庫的動作失敗,則關(guān)閉所述計(jì)算機(jī)。
4.如權(quán)利要求3所述的方法,其特征在于,所述調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的動作創(chuàng)建一線程,該線程檢查經(jīng)授權(quán)服務(wù)的列表以便使得未經(jīng)授權(quán)服務(wù)的執(zhí)行被刪除。
5.如權(quán)利要求4所述的方法,其特征在于,所述調(diào)用模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值的動作包括創(chuàng)建一線程以保護(hù)系統(tǒng)環(huán)境處的密鑰和值。
6.如權(quán)利要求5所述的方法,其特征在于,所述調(diào)用模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值的動作包括創(chuàng)建一線程以保護(hù)用戶環(huán)境處的密鑰和值。
7.如權(quán)利要求6所述的方法,其特征在于,還包括創(chuàng)建定時(shí)器以便進(jìn)行周期性的確定,以確保所述諸線程正在運(yùn)行。
8.如權(quán)利要求7所述的方法,其特征在于,還包括如果已經(jīng)開始注銷且如果保護(hù)可用于所述軟件所歸類于其中的產(chǎn)品類,則停止所述諸線程。
9.一種含有用于實(shí)現(xiàn)禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述方法包括調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能,以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行;以及調(diào)用所述模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能,以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值。
10.如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括執(zhí)行登錄模塊,如果保護(hù)可用于所述軟件所歸類于其中的產(chǎn)品類,則所述登錄模塊加載所述模糊保護(hù)動態(tài)鏈接庫。
11.如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果所述加載模糊保護(hù)動態(tài)鏈接庫的動作失敗,則關(guān)閉所述計(jì)算機(jī)。
12.如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的動作創(chuàng)建一線程,該線程檢查經(jīng)授權(quán)服務(wù)的列表以便使得未經(jīng)授權(quán)服務(wù)的執(zhí)行被刪除。
13.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述調(diào)用模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值的動作包括創(chuàng)建一線程以保護(hù)系統(tǒng)環(huán)境處的密鑰和值。
14.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述調(diào)用模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值的動作包括創(chuàng)建一線程以保護(hù)用戶環(huán)境處的密鑰和值。
15.如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括創(chuàng)建定時(shí)器以便進(jìn)行周期性的確定,以確保所述諸線程正在運(yùn)行。
16.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果已經(jīng)開始注銷且如果保護(hù)可用于所述軟件所歸類于其中的產(chǎn)品類,則停止所述諸線程。
17.一種用于禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的系統(tǒng),包括用于調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能,以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的裝置;以及用于調(diào)用所述模糊保護(hù)動態(tài)鏈接庫的另一保護(hù)功能,以保護(hù)中央分層數(shù)據(jù)庫的密鑰和值的裝置。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,還包括用于執(zhí)行登錄模塊的裝置,如果保護(hù)可用于所述軟件所歸類于其中的產(chǎn)品類,則所述登錄模塊加載所述模糊保護(hù)動態(tài)鏈接庫。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于,還包括如果所述加載模糊保護(hù)動態(tài)鏈接庫的動作失敗,則關(guān)閉所述計(jì)算機(jī)的裝置。
20.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述用于調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能以禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的裝置創(chuàng)建一線程,該線程檢查經(jīng)授權(quán)服務(wù)的列表以使得未經(jīng)授權(quán)服務(wù)的執(zhí)行被刪除。
21.一種其上存儲有計(jì)算系統(tǒng)用以驗(yàn)證信息的原始性的計(jì)算機(jī)可執(zhí)行指令和一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì),包括以保護(hù)動態(tài)鏈接庫的私有庫密鑰加密的配置文件,所述配置文件包括其大小和格式取決于配置文件類型的配置文件數(shù)據(jù),所述配置文件還包括以所述保護(hù)動態(tài)鏈接庫的公共庫密鑰數(shù)字簽署的簽名,所述配置文件還包括包含標(biāo)識所述配置文件的標(biāo)識符與所述配置文件數(shù)據(jù)的校驗(yàn)和的驗(yàn)證者塊。
22.如權(quán)利要求21所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)可讀介質(zhì)含有其中存儲所述配置文件的中央分層數(shù)據(jù)庫。
23.如權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括包含私有調(diào)用密鑰和公共調(diào)用密鑰的登錄模塊,所述配置文件的驗(yàn)證者塊以所述私有調(diào)用密鑰加密并以所述公共調(diào)用密鑰簽署。
24.如權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述保護(hù)動態(tài)鏈接庫包括公共庫密鑰和私有庫密鑰,所述配置文件的所述簽名以所述公共庫密鑰簽署,所述配置文件以所述私有庫密鑰加密。
25.如權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述配置文件的所述配置數(shù)據(jù)、所述簽名和所述驗(yàn)證者塊的組織不同于另一配置文件。
26.一種用于保護(hù)軟件之間的交互操作的計(jì)算機(jī)實(shí)現(xiàn)方法,所述計(jì)算機(jī)實(shí)現(xiàn)方法包括啟動具有公共調(diào)用密鑰和私有調(diào)用密鑰的第一軟件對存儲在中央分層數(shù)據(jù)庫中的配置文件的訪問,所述第一軟件發(fā)送隨機(jī)鹽值;以及當(dāng)具有私有庫密鑰的第二軟件接收所述隨機(jī)鹽值之后,所述第二軟件在所述中央分層數(shù)據(jù)庫中尋找所述配置文件,并使用所述私有庫密鑰對所述配置文件解密。
27.如權(quán)利要求26所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述第二軟件計(jì)算包括所述配置文件的標(biāo)識符、所述配置文件數(shù)據(jù)、所述尋找配置文件的結(jié)果以及所述隨機(jī)鹽值的信息集合的第一校驗(yàn)和。
28.如權(quán)利要求27所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述第二軟件發(fā)送所述尋找配置文件的結(jié)果、由所述公共調(diào)用密鑰簽署并以所述私有調(diào)用密鑰加密的所述配置文件的驗(yàn)證者塊、以及由所述第二軟件計(jì)算出的所述第一校驗(yàn)和。
29.如權(quán)利要求28所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括當(dāng)接收所述配置文件的結(jié)果、所述驗(yàn)證者塊、所述第一校驗(yàn)和之后,所述第一軟件使用所述私有調(diào)用密鑰對所述驗(yàn)證者塊解密,并通過使用所述公共調(diào)用密鑰驗(yàn)證所述簽名,所述第一軟件計(jì)算包括所述配置文件的標(biāo)識符、所述配置文件數(shù)據(jù)、所述尋找配置文件的結(jié)果和所述隨機(jī)鹽值的信息集合的第二校驗(yàn)和。
30.如權(quán)利要求29所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括將所述第一校驗(yàn)和與所述第二校驗(yàn)和進(jìn)行比較,并且當(dāng)所述第一校驗(yàn)和不匹配所述第二校驗(yàn)和時(shí)斷定已發(fā)生了篡改。
31.一種含有其上存儲有用于實(shí)現(xiàn)保護(hù)軟件之間的交互操作的計(jì)算機(jī)實(shí)現(xiàn)方法的可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)實(shí)現(xiàn)方法包括啟動具有公共調(diào)用密鑰和私有調(diào)用密鑰的第一軟件對中央分層數(shù)據(jù)庫中所存儲的配置文件的訪問,所述第一軟件發(fā)送隨機(jī)鹽值;以及當(dāng)具有私有庫密鑰的第二軟件接收所述隨機(jī)鹽值之后,所述第二軟件在中央分層數(shù)據(jù)庫中尋找所述配置文件,并使用所述私有庫密鑰對所述配置文件解密。
32.如權(quán)利要求31所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第二軟件計(jì)算包括所述配置文件的標(biāo)識符、所述配置文件數(shù)據(jù)、所述尋找配置文件的結(jié)果以及所述隨機(jī)鹽值的信息集合的第一校驗(yàn)和。
33.如權(quán)利要求32所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第二軟件發(fā)送所述尋找配置文件的結(jié)果、由所述公共調(diào)用密鑰簽署并以所述私有調(diào)用密鑰加密的所述配置文件的驗(yàn)證者塊、以及由所述第二軟件計(jì)算出的所述第一校驗(yàn)和。
34.如權(quán)利要求33所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括在接收所述配置文件的結(jié)果、所述驗(yàn)證者塊、所述第一校驗(yàn)和之后,所述第一軟件使用所述私有調(diào)用密鑰對所述驗(yàn)證者塊解密,并通過使用所述公共調(diào)用密鑰驗(yàn)證所述簽名,所述第一軟件計(jì)算包括所述配置文件的標(biāo)識符、所述配置文件數(shù)據(jù)、所述尋找配置文件的結(jié)果和所述隨機(jī)鹽值的信息集合的第二校驗(yàn)和。
35.如權(quán)利要求34所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括將所述第一校驗(yàn)和與所述第二校驗(yàn)和進(jìn)行比較,并且當(dāng)所述第一校驗(yàn)和不匹配所述第二校驗(yàn)和時(shí)斷定已發(fā)生了篡改。
36.一種用于保護(hù)軟件之間的交互操作的系統(tǒng),包括用于啟動具有公共調(diào)用密鑰和私有調(diào)用密鑰的第一軟件對中央分層數(shù)據(jù)庫中所存儲的配置文件的訪問的裝置,所述第一軟件發(fā)送隨機(jī)鹽值;以及當(dāng)具有私有庫密鑰的第二軟件接收所述隨機(jī)鹽值之后,所述第二軟件執(zhí)行用于在中央分層數(shù)據(jù)庫中尋找所述配置文件、并使用所述私有庫密鑰對所述配置文件解密的裝置。
37.如權(quán)利要求36所述的系統(tǒng),其特征在于,所述第二軟件使用用于計(jì)算包括所述配置文件的標(biāo)識符、所述配置文件數(shù)據(jù)、所述尋找配置文件的結(jié)果以及所述隨機(jī)鹽值的信息集合的第一校驗(yàn)和的裝置。
38.如權(quán)利要求37所述的系統(tǒng),其特征在于,所述第二軟件使用用于發(fā)送所述尋找配置文件的結(jié)果、由所述公共調(diào)用密鑰簽署并以所述私有調(diào)用密鑰加密的所述配置文件的驗(yàn)證者塊、以及由所述第二軟件計(jì)算出的所述第一校驗(yàn)和的裝置。
39.如權(quán)利要求38所述的系統(tǒng),其特征在于,還包括在接收所述配置文件的結(jié)果、所述驗(yàn)證者塊、所述第一校驗(yàn)和之后,所述第一軟件使用所述私有調(diào)用密鑰對所述驗(yàn)證者塊解密,并執(zhí)行用于通過使用所述公共調(diào)用密鑰驗(yàn)證所述簽名的裝置,所述第一軟件計(jì)算包括所述配置文件的標(biāo)識符、所述配置文件數(shù)據(jù)、所述尋找配置文件的結(jié)果和所述隨機(jī)鹽值的信息集合的第二校驗(yàn)和。
40.一種用于禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法,包括如果保護(hù)可用于所述軟件所歸類于其中的產(chǎn)品類,則在所述計(jì)算機(jī)上加載模糊保護(hù)動態(tài)鏈接庫;以及創(chuàng)建用于監(jiān)視運(yùn)行在所述計(jì)算機(jī)上的所述軟件仍舊屬于可使用針對篡改的保護(hù)的所述產(chǎn)品類的系統(tǒng)定時(shí)器。
41.如權(quán)利要求40所述的方法,其特征在于,所述系統(tǒng)定時(shí)器在不可終止的線程中運(yùn)行。
42.如權(quán)利要求41所述的方法,其特征在于,所述系統(tǒng)定時(shí)器與預(yù)先配置的時(shí)間段相關(guān)聯(lián),所述預(yù)配置時(shí)間段的期滿導(dǎo)致定時(shí)器例程被執(zhí)行。
43.如權(quán)利要求42所述的方法,其特征在于,所述定時(shí)器例程檢查存儲在中央分層數(shù)據(jù)庫中的激活密鑰以對所述產(chǎn)品類解碼。
44.如權(quán)利要求43所述的方法,其特征在于,如果沒有保護(hù)可用于所解碼的產(chǎn)品類,表示所述軟件已被篡改,則所述定時(shí)器例程采取安全性出錯(cuò)措施。
45.如權(quán)利要求44所述的方法,其特征在于,如果用戶的配置不再匹配所述中央分層數(shù)據(jù)庫中所存儲的預(yù)定配置文件,則所述定時(shí)器例程采取安全性出錯(cuò)措施。
46.一種其上存儲有用于實(shí)現(xiàn)禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),包括如果保護(hù)可用于所述軟件所歸類于其中的產(chǎn)品類,則在所述計(jì)算機(jī)上加載模糊保護(hù)動態(tài)鏈接庫;以及創(chuàng)建用于監(jiān)視運(yùn)行在所述計(jì)算機(jī)上的軟件仍舊屬于可使用針對篡改的保護(hù)的產(chǎn)品類的系統(tǒng)定時(shí)器。
47.如權(quán)利要求46所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述系統(tǒng)定時(shí)器在不可終止的線程中運(yùn)行。
48.如權(quán)利要求47所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述系統(tǒng)定時(shí)器與預(yù)先配置的時(shí)間段相關(guān)聯(lián),所述預(yù)先配置時(shí)間段的期滿導(dǎo)致定時(shí)器例程被執(zhí)行。
49.如權(quán)利要求48所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述定時(shí)器例程檢查存儲在中央分層數(shù)據(jù)庫中的激活密鑰以對所述產(chǎn)品類解碼。
50.如權(quán)利要求49所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,如果沒有保護(hù)可用于所解碼的產(chǎn)品類,表示所述軟件已被篡改,則所述定時(shí)器例程采取安全性出錯(cuò)措施。
51.如權(quán)利要求50所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,如果用戶的配置不再匹配所述中央分層數(shù)據(jù)庫中所存儲的預(yù)定配置文件,則所述定時(shí)器例程采取安全性出錯(cuò)措施。
52.一種用于禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法,包括由在所述計(jì)算機(jī)上調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能創(chuàng)建多個(gè)執(zhí)行線程,多個(gè)線程之一禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行,而所述多個(gè)線程中的其它線程保護(hù)中央分層數(shù)據(jù)庫的密鑰和值;以及創(chuàng)建用于監(jiān)視所述多個(gè)線程正在運(yùn)行的定時(shí)器。
53.如權(quán)利要求52所述的方法,其特征在于,所述系統(tǒng)定時(shí)器在不可終止的線程中運(yùn)行。
54.如權(quán)利要求53所述的方法,其特征在于,所述定時(shí)器與預(yù)先配置的時(shí)間段相關(guān)聯(lián),所述預(yù)先配置時(shí)間段的期滿導(dǎo)致定時(shí)器例程被執(zhí)行。
55.如權(quán)利要求54所述的方法,其特征在于,如果所述多個(gè)線程所述之一被終止或掛起,表示所述多個(gè)線程所述之一已被篡改,則所述定時(shí)器例程采取安全性出錯(cuò)措施。
56.如權(quán)利要求55所述的方法,其特征在于,如果所述多個(gè)線程之中的所述其它線程被終止或掛起,表示所述多個(gè)線程的所述其它線程已被篡改,則所述定時(shí)器例程采取安全性出錯(cuò)措施。
57.一種其上存儲有用于實(shí)現(xiàn)禁止對運(yùn)行在計(jì)算機(jī)上的軟件的篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可讀介質(zhì)包括由在所述計(jì)算機(jī)上調(diào)用模糊保護(hù)動態(tài)鏈接庫的保護(hù)功能創(chuàng)建多個(gè)執(zhí)行線程,所述多個(gè)線程之一禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行,而所述多個(gè)線程中的其它線程保護(hù)中央分層數(shù)據(jù)庫的密鑰和值;以及創(chuàng)建用于監(jiān)視所述多個(gè)線程正在運(yùn)行的定時(shí)器。
58.如權(quán)利要求57所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,如果所述多個(gè)線程所述之一被終止或掛起,表示所述多個(gè)線程所述之一已被篡改,則所述方法采取安全性出錯(cuò)措施。
59.如權(quán)利要求58所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,如果所述多個(gè)線程之中的所述其它線程被終止或掛起,表示所述多個(gè)線程的所述其它線程已被篡改,則所述方法采取安全性出錯(cuò)措施。
60.一種用于禁止服務(wù)篡改的方法,包括在計(jì)算機(jī)啟動之后,由登錄模塊調(diào)用模糊動態(tài)鏈接庫的保護(hù)功能以創(chuàng)建禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的線程;以及與模糊保護(hù)動態(tài)鏈接庫通信以訪問與未經(jīng)授權(quán)服務(wù)的列表相關(guān)的加密保護(hù)配置文件。
61.如權(quán)利要求60所述的方法,其特征在于,所述調(diào)用動作包括,由所述模糊動態(tài)鏈接庫向所述登錄模塊返回所述線程的句柄。
62.如權(quán)利要求61所述的方法,其特征在于,還包括創(chuàng)建定時(shí)器來檢查禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的所述線程的持續(xù)性。
63.如權(quán)利要求62所述的方法,其特征在于,還包括如果預(yù)先配置的時(shí)間段期滿且所述線程已被終止,則啟動系統(tǒng)關(guān)閉。
64.如權(quán)利要求63所述的方法,其特征在于,還包括如果預(yù)先配置的時(shí)間段期滿且所述線程被掛起,則啟動系統(tǒng)關(guān)閉。
65.如權(quán)利要求64所述的方法,其特征在于,還包括由所述模糊動態(tài)鏈接庫尋找包含未經(jīng)授權(quán)服務(wù)的列表的配置文件、以及根據(jù)所述配置文件的身份、其數(shù)據(jù)以及由所述登錄模塊傳入所述模糊保護(hù)動態(tài)鏈接庫的鹽值計(jì)算校驗(yàn)和。
66.如權(quán)利要求65所述的方法,其特征在于,還包括由所述模糊保護(hù)動態(tài)鏈接庫向所述登錄模塊返回結(jié)果數(shù)據(jù)結(jié)構(gòu)、所述配置文件的驗(yàn)證者塊以及所計(jì)算出的校驗(yàn)和。
67.如權(quán)利要求66所述的方法,其特征在于,還包括如果在由所述登錄模塊計(jì)算出的校驗(yàn)和與由所述保護(hù)動態(tài)鏈接庫計(jì)算出的校驗(yàn)和之間不存在匹配,則采取安全性出錯(cuò)措施,由所述登錄模塊計(jì)算出的校驗(yàn)和取決于解密的驗(yàn)證者校驗(yàn)和、所接收的結(jié)果數(shù)據(jù)結(jié)構(gòu)以及所述鹽值。
68.如權(quán)利要求67所述的方法,其特征在于,還包括如果未經(jīng)授權(quán)服務(wù)正在運(yùn)行,則停止依賴于所述未經(jīng)授權(quán)服務(wù)的所有服務(wù),并使得所述未經(jīng)授權(quán)服務(wù)被刪除。
69.如權(quán)利要求68所述的方法,其特征在于,還包括使所述線程睡眠所述預(yù)先配置的時(shí)間段。
70.一種其上存儲有用于實(shí)現(xiàn)禁止服務(wù)篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),包括在計(jì)算機(jī)啟動之后,由登錄模塊調(diào)用模糊動態(tài)鏈接庫的保護(hù)功能以創(chuàng)建禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的線程;以及與模糊保護(hù)動態(tài)鏈接庫通信以訪問與未經(jīng)授權(quán)服務(wù)的列表相關(guān)的加密保護(hù)配置文件。
71.如權(quán)利要求70所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述調(diào)用動作包括,由所述模糊動態(tài)鏈接庫向所述登錄模塊返回所述線程的句柄。
72.如權(quán)利要求71所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括創(chuàng)建定時(shí)器來檢查禁止未經(jīng)授權(quán)服務(wù)的執(zhí)行的所述線程的持續(xù)性。
73.如權(quán)利要求72所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果預(yù)先配置時(shí)間段期滿且所述線程被終止,則啟動系統(tǒng)關(guān)閉。
74.如權(quán)利要求73所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果預(yù)先配置時(shí)間段期滿且所述線程被掛起,則啟動系統(tǒng)關(guān)閉。
75.如權(quán)利要求74所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括由所述模糊動態(tài)鏈接庫尋找包含未經(jīng)授權(quán)服務(wù)的列表的配置文件以及根據(jù)所述配置文件的身份、及其數(shù)據(jù)以及由所述登錄模塊傳入所述模糊保護(hù)動態(tài)鏈接庫的鹽值計(jì)算校驗(yàn)和。
76.如權(quán)利要求75所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括,由所述模糊保護(hù)動態(tài)鏈接庫向所述登錄模塊返回結(jié)果數(shù)據(jù)結(jié)構(gòu)、所述配置文件的驗(yàn)證者塊以及所計(jì)算出的校驗(yàn)和。
77.如權(quán)利要求76所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果在由所述登錄模塊計(jì)算出的校驗(yàn)和與由所述保護(hù)動態(tài)鏈接庫計(jì)算出的校驗(yàn)和之間不存在匹配,則采取安全性出錯(cuò)措施,由所述登錄模塊計(jì)算出的校驗(yàn)和取決于解密的驗(yàn)證者校驗(yàn)和、所接收的結(jié)果數(shù)據(jù)結(jié)構(gòu)以及所述鹽值。
78.如權(quán)利要求77所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果未經(jīng)授權(quán)服務(wù)正在運(yùn)行,則停止依賴于所述未經(jīng)授權(quán)服務(wù)的所有服務(wù),并使所述未經(jīng)授權(quán)服務(wù)被刪除。
79.如權(quán)利要求78所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括使所述線程睡眠所述預(yù)先配置的時(shí)間段。
80.一種其上存儲有計(jì)算系統(tǒng)用于安裝軟件的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),包括包含計(jì)算機(jī)可執(zhí)行指令的保護(hù)動態(tài)鏈接庫,所述指令針對篡改監(jiān)視中央分層數(shù)據(jù)庫,驗(yàn)證所述計(jì)算系統(tǒng)中所存儲的一組文件的原始性,并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行。
81.如權(quán)利要求80所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于創(chuàng)建唯一產(chǎn)品標(biāo)識符并將所創(chuàng)建的產(chǎn)品標(biāo)識符存儲在所述中央分層數(shù)據(jù)庫中的產(chǎn)品標(biāo)識符動態(tài)鏈接庫、包含用于設(shè)置動態(tài)鏈接庫的信息的設(shè)置信息文件、以及將所述設(shè)置信息文件中的信息用于設(shè)置所述動態(tài)鏈接庫的設(shè)置軟件。
82.如權(quán)利要求81所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括由所述設(shè)置軟件使用所述設(shè)置信息文件創(chuàng)建的安裝動態(tài)鏈接庫,以及包含屬于與市場上出售的軟件包連接的文件的信息的保護(hù)信息文件。
83.如權(quán)利要求82所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述中央分層數(shù)據(jù)庫包括所述唯一產(chǎn)品標(biāo)識符、從所述唯一產(chǎn)品標(biāo)識符得到的用于協(xié)助驗(yàn)證所述計(jì)算系統(tǒng)正在運(yùn)行所述市場上出售的軟件包的激活密鑰、以及包含存儲在所述系統(tǒng)中的所述一組文件的簽名以便于對所述一組文件的原始性進(jìn)行驗(yàn)證的加密保護(hù)配置文件。
84.如權(quán)利要求83所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述保護(hù)動態(tài)鏈接庫由所述安裝動態(tài)鏈接庫使用所述保護(hù)信息文件中所存儲的信息創(chuàng)建。
85.一種用于保護(hù)軟件設(shè)置的計(jì)算機(jī)實(shí)現(xiàn)方法,包括創(chuàng)建產(chǎn)品標(biāo)識符以將軟件標(biāo)識為屬于市場上出售的一軟件包類;以及如果基于所述產(chǎn)品標(biāo)識符所述軟件屬于可使用軟件篡改保護(hù)的市場上出售的一軟件包類,則促進(jìn)保護(hù)動態(tài)鏈接庫的安裝以禁止軟件篡改。
86.如權(quán)利要求85所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括由使用來自保護(hù)信息文件的信息的設(shè)置軟件執(zhí)行安裝動態(tài)鏈接庫,來創(chuàng)建所述保護(hù)動態(tài)鏈接庫以禁止軟件篡改。
87.如權(quán)利要求86所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括將基于所述產(chǎn)品標(biāo)識符的激活密鑰記錄到中央分層數(shù)據(jù)庫中,以便簡化對所述執(zhí)行軟件是否屬于市場上出售的軟件包類的驗(yàn)證。
88.如權(quán)利要求87所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括將包含屬于所支持的語言、硬件和其它信息的文件的簽名的加密保護(hù)配置文件記錄到所述中央分層數(shù)據(jù)庫中。
89.如權(quán)利要求88所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括安裝包含由所述保護(hù)動態(tài)鏈接庫使用的信息的系統(tǒng)文件。
90.一種其上存儲有用于執(zhí)行保護(hù)軟件設(shè)置的計(jì)算機(jī)實(shí)現(xiàn)方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述方法包括創(chuàng)建產(chǎn)品標(biāo)識符以將軟件標(biāo)識為屬于市場上出售的一軟件包類;以及如果基于所述產(chǎn)品標(biāo)識符所述軟件屬于可使用軟件篡改保護(hù)的市場上出售的一軟件包類,則促進(jìn)保護(hù)動態(tài)鏈接庫的安裝以禁止軟件篡改。
91.如權(quán)利要求90所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括由使用來自保護(hù)信息文件的信息的設(shè)置軟件執(zhí)行安裝動態(tài)鏈接庫,來創(chuàng)建所述保護(hù)動態(tài)鏈接庫以禁止軟件篡改。
92.如權(quán)利要求91所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括將基于所述產(chǎn)品標(biāo)識符的激活密鑰記錄到中央分層數(shù)據(jù)庫中,以便簡化對所述執(zhí)行軟件是否屬于市場上出售的軟件包類的驗(yàn)證。
93.如權(quán)利要求92所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括將包含屬于所支持的語言、硬件和其它信息的文件的簽名的加密保護(hù)配置文件記錄到所述中央分層數(shù)據(jù)庫中。
94.如權(quán)利要求93所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括安裝包含由所述保護(hù)動態(tài)鏈接庫使用的信息的系統(tǒng)文件。
95.一種用于保護(hù)軟件設(shè)置的系統(tǒng),包括用于創(chuàng)建產(chǎn)品標(biāo)識符以將軟件標(biāo)識為屬于市場上出售的一軟件包類的裝置;以及用于在基于產(chǎn)品標(biāo)識符所述軟件屬于可使用軟件篡改保護(hù)的市場上出售的一軟件包類的情況下促進(jìn)保護(hù)動態(tài)鏈接庫的安裝以禁止軟件篡改的裝置。
96.如權(quán)利要求95所述的系統(tǒng),其特征在于,還包括用于由使用來自保護(hù)信息文件的信息的設(shè)置軟件執(zhí)行安裝動態(tài)鏈接庫,來創(chuàng)建所述保護(hù)動態(tài)鏈接庫以禁止軟件篡改的裝置。
97.如權(quán)利要求96所述的系統(tǒng),其特征在于,還包括用于將基于所述產(chǎn)品標(biāo)識符的激活密鑰記錄到中央分層數(shù)據(jù)庫中,以便簡化對所述執(zhí)行軟件是否屬于市場上出售的軟件包類的驗(yàn)證的裝置。
98.如權(quán)利要求97所述的系統(tǒng),其特征在于,還包括用于將包含屬于所支持的語言、硬件和其它信息的文件的簽名的加密保護(hù)配置文件記錄到所述中央分層數(shù)據(jù)庫中的裝置。
99.如權(quán)利要求98所述的系統(tǒng),其特征在于,還包括用于安裝包含由所述保護(hù)動態(tài)鏈接庫使用的信息的系統(tǒng)文件的裝置。
100.一種其上存儲有計(jì)算系統(tǒng)用以保護(hù)軟件篡改的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),包括;包含針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的模糊計(jì)算機(jī)可執(zhí)行指令的保護(hù)動態(tài)鏈接庫。
101.如權(quán)利要求100所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括源代碼,所述源代碼可被編譯或鏈接,以產(chǎn)生包含針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的不模糊計(jì)算機(jī)可執(zhí)行指令的保護(hù)動態(tài)鏈接庫。
102.如權(quán)利要求101所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括模糊控制文件,所述文件含有包含不模糊計(jì)算機(jī)可執(zhí)行指令的所述保護(hù)動態(tài)鏈接庫中的類名、方法和字段,所述模糊文件用于模糊包含不模糊計(jì)算機(jī)可執(zhí)行指令的所述保護(hù)動態(tài)鏈接庫中的類名、方法和字段,以產(chǎn)生包含模糊計(jì)算機(jī)可執(zhí)行指令的所述保護(hù)動態(tài)鏈接庫。
103.如權(quán)利要求102所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括包含所述保護(hù)動態(tài)鏈接庫的校驗(yàn)和的分類文件。
104.如權(quán)利要求103所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括包含所述分類文件的數(shù)字簽署的分類文件,以及所述數(shù)字簽署的分類文件使用秘密私鑰的加密校驗(yàn)和。
105.一種用于產(chǎn)生其上存儲有計(jì)算系統(tǒng)用以禁止軟件篡改使用的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)實(shí)現(xiàn)方法,所述方法包括形成針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的模糊保護(hù)動態(tài)鏈接庫,其中模糊了類名、方法、字段和控制流;以及創(chuàng)建包含所述模糊保護(hù)動態(tài)鏈接庫的校驗(yàn)和的數(shù)字簽署的分類文件。
106.如權(quán)利要求105所述的方法,其特征在于,還包括創(chuàng)建包含針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的計(jì)算機(jī)可執(zhí)行指令源代碼,所述創(chuàng)建源代碼的動作在所述形成所述模糊保護(hù)動態(tài)鏈接庫的動作之前發(fā)生。
107.如權(quán)利要求106所述的方法,其特征在于,還包括編譯和鏈接所述源代碼,以形成包含針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的保護(hù)動態(tài)鏈接庫。
108.如權(quán)利要求107所述的方法,其特征在于,還包括計(jì)算所述模糊保護(hù)動態(tài)鏈接庫的校驗(yàn)和,以及創(chuàng)建分類文件來存儲所述模糊保護(hù)動態(tài)鏈接庫的所述校驗(yàn)和。
109.如權(quán)利要求108所述的方法,其特征在于,還包括計(jì)算所述分類文件的校驗(yàn)和、使用秘密私有密鑰加密所述分類文件的所述校驗(yàn)和、以及數(shù)字簽署所述分類文件以產(chǎn)生所述數(shù)字簽署的分類文件。
110.一種其上存儲有用于實(shí)現(xiàn)禁止軟件篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述方法包括形成針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的模糊保護(hù)動態(tài)鏈接庫,其中模糊了類名、方法、字段和控制流;以及創(chuàng)建包含所述模糊保護(hù)動態(tài)鏈接庫的校驗(yàn)和的數(shù)字簽署的分類文件。
111.如權(quán)利要求110所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,創(chuàng)建包含針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的計(jì)算機(jī)可執(zhí)行指令源代碼,所述創(chuàng)建源代碼的動作在所述形成所述模糊保護(hù)動態(tài)鏈接庫的動作之前發(fā)生。
112.如權(quán)利要求111所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,編譯和鏈接所述源代碼以形成包含針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的保護(hù)動態(tài)鏈接庫。
113.如權(quán)利要求112所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括計(jì)算所述模糊保護(hù)動態(tài)鏈接庫的校驗(yàn)和,以及創(chuàng)建分類文件來存儲所述模糊保護(hù)動態(tài)鏈接庫的所述校驗(yàn)和。
114.如權(quán)利要求113所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括計(jì)算所述分類文件的校驗(yàn)和、使用秘密私有密鑰加密所述分類文件的所述校驗(yàn)和、以及數(shù)字簽名所述分類文件以產(chǎn)生所述數(shù)字簽署的分類文件。
115.一種用于產(chǎn)生其上存儲有計(jì)算系統(tǒng)用以禁止軟件篡改的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)的系統(tǒng),所述方法包括用于形成針對篡改監(jiān)視數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的模糊保護(hù)動態(tài)鏈接庫的裝置,其中模糊了類名、方法、字段和控制流;以及用于創(chuàng)建包含該模糊保護(hù)動態(tài)鏈接庫的校驗(yàn)和的數(shù)字簽署的分類文件的裝置。
116.如權(quán)利要求115所述的系統(tǒng),其特征在于,還包括用于創(chuàng)建包含針對篡改監(jiān)視所述數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的計(jì)算機(jī)可執(zhí)行指令源代碼的裝置,所述創(chuàng)建源代碼的動作在所述形成所述模糊保護(hù)動態(tài)鏈接庫的動作之前發(fā)生。
117.如權(quán)利要求116所述的系統(tǒng),其特征在于,還包括用于編譯和鏈接所述源代碼,以形成包含針對篡改監(jiān)視所述數(shù)據(jù)庫、驗(yàn)證一組文件的原始性并停止未經(jīng)授權(quán)服務(wù)的執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的保護(hù)動態(tài)鏈接庫的裝置。
118.如權(quán)利要求117所述的系統(tǒng),其特征在于,還包括用于計(jì)算所述模糊保護(hù)動態(tài)鏈接庫的校驗(yàn)和,以及創(chuàng)建分類文件來存儲所述模糊保護(hù)動態(tài)鏈接庫的所述校驗(yàn)和的裝置。
119.如權(quán)利要求118所述的方法,其特征在于,還包括用于計(jì)算所述分類文件的校驗(yàn)和、使用秘密私有密鑰加密所述分類文件的所述校驗(yàn)和、以及數(shù)字簽署所述分類文件以產(chǎn)生所述數(shù)字簽署的分類文件的裝置。
120.一種用于禁止軟件篡改的方法,包括在將模糊保護(hù)動態(tài)鏈接庫加載到計(jì)算機(jī)上之前,計(jì)算所述模糊保護(hù)動態(tài)鏈接庫的第一校驗(yàn)和;以及驗(yàn)證所述模糊保護(hù)動態(tài)鏈接庫的軟件映像的原始性,以確定是否要采取安全性出錯(cuò)措施來禁止軟件篡改。
121.如權(quán)利要求120所述的方法,其特征在于,還包括獲取所述系統(tǒng)文件中所包括的分類文件的列表,并搜索所述分類文件列表的分類文件中所包含的第二校驗(yàn)和。
122.如權(quán)利要求121所述的方法,其特征在于,如果所述第一校驗(yàn)和不匹配所述第二校驗(yàn)和,則所述驗(yàn)證的動作確定所述軟件映像不是所述原始模糊保護(hù)動態(tài)鏈接庫。
123.如權(quán)利要求122所述的方法,其特征在于,還包括調(diào)用一組信任檢查應(yīng)用程序編程接口,來確定所述模糊保護(hù)動態(tài)鏈接庫以及包含所述第二校驗(yàn)和的所述分類文件是否可被信任,所述一組信任檢查應(yīng)用程序編程接口返回狀態(tài)數(shù)據(jù)。
124.如權(quán)利要求123所述的方法,其特征在于,還包括調(diào)用所述一組信任檢查應(yīng)用程序編程接口并使用所述狀態(tài)數(shù)據(jù)來檢索信任供應(yīng)商信息。
125.如權(quán)利要求124所述的方法,其特征在于,還包括調(diào)用所述一組信任檢查應(yīng)用程序編程接口并使用所述信任供應(yīng)商信息來檢索基本簽署者。
126.如權(quán)利要求125所述的方法,其特征在于,還包括調(diào)用所述一組信任檢查應(yīng)用程序編程接口,以使用所述基本簽署者的環(huán)境確認(rèn)證書鏈中的最后一個(gè)元素。
127.如權(quán)利要求126所述的方法,其特征在于,如果所述最后一個(gè)元素包含來自所述軟件映像的制造商的正確的公共密鑰,則所述驗(yàn)證的動作斷定所述軟件映像是原始的。
128.一種含有用于實(shí)現(xiàn)禁止軟件篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述方法包括在將模糊保護(hù)動態(tài)鏈接庫加載到計(jì)算機(jī)上之前,計(jì)算所述模糊保護(hù)動態(tài)鏈接庫的第一校驗(yàn)和;以及驗(yàn)證所述模糊保護(hù)動態(tài)鏈接庫的軟件映像的原始性,以確定是否要采取安全性出錯(cuò)措施以禁止軟件篡改。
129.如權(quán)利要求128所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括獲取所述系統(tǒng)文件中所包括的分類文件的列表,并搜索所述分類文件列表中的分類文件中所包含的第二校驗(yàn)和。
130.如權(quán)利要求129所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,如果所述第一校驗(yàn)和不匹配所述第二校驗(yàn)和,則所述驗(yàn)證的動作確定所述軟件映像不是所述原始模糊保護(hù)動態(tài)鏈接庫。
131.如權(quán)利要求130所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括調(diào)用一組信任檢查應(yīng)用程序編程接口,來確定所述模糊保護(hù)動態(tài)鏈接庫以及包含所述第二校驗(yàn)和的所述分類文件是否可被信任,所述一組信任檢查應(yīng)用程序編程接口返回狀態(tài)數(shù)據(jù)。
132.如權(quán)利要求131所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括調(diào)用所述一組信任檢查應(yīng)用程序編程接口并使用所述狀態(tài)數(shù)據(jù)來檢索信任供應(yīng)商信息。
133.如權(quán)利要求132所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括調(diào)用所述一組信任檢查應(yīng)用程序編程接口并使用所述信任供應(yīng)商信息來檢索基本簽署者。
134.如權(quán)利要求133所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括調(diào)用所述一組信任檢查應(yīng)用程序編程接口,以使用所述基本簽署者的環(huán)境確認(rèn)證書鏈中的最后一個(gè)元素。
135.如權(quán)利要求134所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,如果所述最后一個(gè)元素包含來自所述軟件映像的制造商的正確的公共密鑰,則所述驗(yàn)證的動作斷定所述軟件映像是原始的。
136.一種用于禁止軟件篡改的系統(tǒng),包括用于在將模糊保護(hù)動態(tài)鏈接庫加載到計(jì)算機(jī)上之前,計(jì)算所述模糊保護(hù)動態(tài)鏈接庫的第一校驗(yàn)和的裝置;以及用于驗(yàn)證模糊保護(hù)動態(tài)鏈接庫的軟件映像的原始性,以確定是否要采取安全性出錯(cuò)措施以禁止軟件篡改的裝置。
137.如權(quán)利要求136所述的系統(tǒng),其特征在于,還包括用于獲取所述系統(tǒng)文件中所包括的分類文件的列表,并搜索所述分類文件列表的分類文件中所包含的第二校驗(yàn)和的裝置。
138.如權(quán)利要求137所述的系統(tǒng),其特征在于,如果所述第一校驗(yàn)和不匹配所述第二校驗(yàn)和,則所述驗(yàn)證的裝置確定所述軟件映像不是所述原始模糊保護(hù)動態(tài)鏈接庫。
139.如權(quán)利要求138所述的系統(tǒng),其特征在于,還包括用于調(diào)用一組信任檢查應(yīng)用程序編程接口來確定所述模糊保護(hù)動態(tài)鏈接庫以及包含所述第二校驗(yàn)和的所述分類文件是否可被信任的裝置,所述一組信任檢查應(yīng)用程序編程接口返回狀態(tài)數(shù)據(jù)。
140.一種用于確定計(jì)算機(jī)是否屬于軟件的可支持機(jī)器類的計(jì)算機(jī)實(shí)現(xiàn)方法,包括驗(yàn)證所述計(jì)算機(jī)的中央處理單元上揭示所述中央處理單元的標(biāo)識的一組指令的存在性;以及如果所述中央處理單元具有支持自標(biāo)識的架構(gòu),則將模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上。
141.如權(quán)利要求140所述的方法,其特征在于,還包括與所述模糊保護(hù)動態(tài)鏈接庫通信,以訪問與中央處理單元的排除在外類相關(guān)的加密保護(hù)配置文件。
142.如權(quán)利要求141所述的方法,其特征在于,還包括從所述加密保護(hù)配置文件中提取被排除在外的計(jì)算機(jī)類的列表。
143.如權(quán)利要求142所述的方法,其特征在于,還包括使所述計(jì)算機(jī)揭示屬于所述中央處理單元的信息,所述信息是從由廠商身份、類型、系列、型號、品牌身份和特征集組成的組中選出的。
144.如權(quán)利要求143所述的方法,其特征在于,還包括如果所述廠商身份不位于所述排除在外的計(jì)算機(jī)類的列表上,則執(zhí)行將所述模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上的所述動作。
145.如權(quán)利要求144所述的方法,其特征在于,還包括如果所述類型、系列和型號位于所述排除在外的計(jì)算機(jī)類的列表上,則發(fā)出沒有保護(hù)可用于所述計(jì)算機(jī)的出錯(cuò)消息并啟動所述計(jì)算機(jī)的關(guān)閉。
146.如權(quán)利要求145所述的方法,其特征在于,還包括如果所述品牌身份和特征集位于所述排除在外的計(jì)算機(jī)類的列表上,則發(fā)出沒有保護(hù)可用于所述計(jì)算機(jī)的出錯(cuò)消息并啟動所述計(jì)算機(jī)的關(guān)閉。
147.如權(quán)利要求146所述的方法,其特征在于,還包括如果沒有確定所述中央處理單元身份的擴(kuò)展指令存在,則執(zhí)行將所述模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上的所述動作。
148.如權(quán)利要求147所述的方法,其特征在于,還包括如果所述擴(kuò)展指令揭示所述中央處理單元的名稱的執(zhí)行指示所述名稱不位于所述排除在外的計(jì)算機(jī)類的列表上,則執(zhí)行將所述模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上的所述動作。
149.如權(quán)利要求148所述的方法,其特征在于,還包括如果所述擴(kuò)展指令揭示所述中央處理單元的高速緩存大小的執(zhí)行指示所述高速緩存大小不位于所述排除在外的計(jì)算機(jī)類的列表上,則執(zhí)行將所述模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上的所述動作。
150.一種其上存儲有用于實(shí)現(xiàn)確定計(jì)算機(jī)是否屬于軟件的可支持機(jī)器類的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述方法包括驗(yàn)證所述計(jì)算機(jī)的中央處理單元上揭示所述中央處理單元的所述標(biāo)識的一組指令的存在性;以及如果所述中央處理單元具有支持自標(biāo)識的架構(gòu),則將模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上。
151.如權(quán)利要求150所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括與所述模糊保護(hù)動態(tài)鏈接庫通信以訪問與中央處理單元的排除在外的類相關(guān)的加密保護(hù)配置文件。
152.如權(quán)利要求151所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括從所述加密保護(hù)配置文件中提取被排除在外的計(jì)算機(jī)類的列表。
153.如權(quán)利要求152所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括使所述計(jì)算機(jī)揭示屬于所述中央處理單元的信息,所述信息是從由廠商身份、類型、系列、型號、品牌身份和特征集組成的組中選出的。
154.如權(quán)利要求153所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果所述廠商身份不位于所述排除在外的計(jì)算機(jī)類的列表上,則執(zhí)行將所述模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上的所述動作。
155.如權(quán)利要求154所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果所述類型、系列和型號位于所述排除在外的計(jì)算機(jī)類的列表上,則發(fā)出沒有保護(hù)可用于所述計(jì)算機(jī)的出錯(cuò)消息并啟動所述計(jì)算機(jī)的關(guān)閉。
156.如權(quán)利要求155所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果所述品牌身份和特征集位于所述排除在外的計(jì)算機(jī)類的列表上,則發(fā)出沒有保護(hù)可用于所述計(jì)算機(jī)的出錯(cuò)消息并啟動所述計(jì)算機(jī)的關(guān)閉。
157.如權(quán)利要求156所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果沒有確定所述中央處理單元身份的擴(kuò)展指令存在,則執(zhí)行將所述模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上的所述動作。
158.如權(quán)利要求157所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果所述擴(kuò)展指令揭示所述中央處理單元的名稱的執(zhí)行指示所述名稱不位于所述排除在外的計(jì)算機(jī)類的列表上,則執(zhí)行將所述模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上的所述動作。
159.如權(quán)利要求158所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果所述擴(kuò)展指令揭示所述中央處理單元的高速緩存大小的執(zhí)行指示所述高速緩存大小不位于所述排除在外的計(jì)算機(jī)類的列表上,則執(zhí)行將所述模糊保護(hù)動態(tài)鏈接庫加載到所述計(jì)算機(jī)上的動作。
160.一種用于禁止軟件篡改的方法,包括在計(jì)算機(jī)啟動之后,由登錄模塊調(diào)用模糊動態(tài)鏈接庫的保護(hù)功能,以創(chuàng)建保護(hù)與所述系統(tǒng)相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第一線程;以及在用戶登錄至所述計(jì)算機(jī)之后,由所述登錄模塊調(diào)用所述模糊動態(tài)鏈接庫的所述保護(hù)功能,以創(chuàng)建保護(hù)與所述用戶相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第二線程。
161.如權(quán)利要求160所述的方法,其特征在于,還包括訂閱要針對篡改進(jìn)行保護(hù)的所述中央分層數(shù)據(jù)庫的每一密鑰的改變通知。
162.如權(quán)利要求161所述的方法,其特征在于,還包括接收對密鑰的改變的所述改變通知,并修復(fù)所述密鑰、其值或兩者以便禁止軟件篡改。
163.如權(quán)利要求162所述的方法,其特征在于,還包括向檢查第一線程的執(zhí)行的持續(xù)性的第一定時(shí)器提供所述第一線程的句柄,以保護(hù)與所述系統(tǒng)相關(guān)聯(lián)的所述中央分層數(shù)據(jù)庫的密鑰和值。
164.如權(quán)利要求163所述的方法,其特征在于,還包括當(dāng)預(yù)先配置時(shí)間段期滿之后,如果所述第一線程被終止或掛起,則與所述第一定時(shí)器相關(guān)聯(lián)的軟件啟動系統(tǒng)關(guān)閉。
165.如權(quán)利要求164所述的方法,其特征在于,還包括所述第一線程與所述模糊保護(hù)動態(tài)鏈接庫通信,以訪問與所述中央分層數(shù)據(jù)庫中的系統(tǒng)密鑰和值相關(guān)的加密保護(hù)配置文件。
166.如權(quán)利要求162所述的方法,其特征在于,還包括向檢查第二線程的執(zhí)行的持續(xù)性的第二定時(shí)器提供所述第二線程的句柄,以保護(hù)與所述用戶相關(guān)聯(lián)的所述中央分層數(shù)據(jù)庫的密鑰和值。
167.如權(quán)利要求166所述的方法,其特征在于,還包括當(dāng)預(yù)先配置時(shí)間段期滿之后,如果所述第二線程被終止或掛起,則與所述第二定時(shí)器相關(guān)聯(lián)的軟件啟動系統(tǒng)關(guān)閉。
168.如權(quán)利要求167所述的方法,其特征在于,還包括所述第二線程與所述模糊保護(hù)動態(tài)鏈接庫通信,以訪問與所述中央分層數(shù)據(jù)庫中的用戶注冊密鑰和值相關(guān)的加密保護(hù)配置文件。
169.一種含有用于實(shí)現(xiàn)禁止軟件篡改的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述方法包括在計(jì)算機(jī)啟動之后,由登錄模塊調(diào)用模糊動態(tài)鏈接庫的保護(hù)功能,以創(chuàng)建保護(hù)與所述系統(tǒng)相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第一線程;以及在用戶登錄至所述計(jì)算機(jī)之后,由所述登錄模塊調(diào)用所述模糊動態(tài)鏈接庫的所述保護(hù)功能,以創(chuàng)建保護(hù)與所述用戶相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第二線程。
170.如權(quán)利要求169所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括訂閱要針對篡改進(jìn)行保護(hù)的所述中央分層數(shù)據(jù)庫的每一密鑰的改變通知。
171.如權(quán)利要求170所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括接收對密鑰的改變的所述改變通知,并修復(fù)所述密鑰、其值或兩者以便禁止軟件篡改。
172.如權(quán)利要求171所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括向檢查第一線程的執(zhí)行的持續(xù)性的第一定時(shí)器提供所述第一線程的句柄,以保護(hù)與所述系統(tǒng)相關(guān)聯(lián)的所述中央分層數(shù)據(jù)庫的密鑰和值。
173.如權(quán)利要求172所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括在預(yù)先配置的時(shí)間段期滿之后,如果所述第一線程被終止或掛起,則與所述第一定時(shí)器相關(guān)聯(lián)的軟件啟動系統(tǒng)關(guān)閉。
174.如權(quán)利要求173所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括所述第一線程與所述模糊保護(hù)動態(tài)鏈接庫通信,以訪問與所述中央分層數(shù)據(jù)庫中的系統(tǒng)密鑰和值相關(guān)的加密保護(hù)配置文件。
175.如權(quán)利要求171所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括向檢查第二線程的執(zhí)行的持續(xù)性的第二定時(shí)器提供所述第二線程的句柄,以保護(hù)與所述用戶相關(guān)聯(lián)的所述中央分層數(shù)據(jù)庫的密鑰和值。
176.如權(quán)利要求175所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括當(dāng)預(yù)先配置的時(shí)間段期滿之后,如果所述第二線程被終止或掛起,則與所述第二定時(shí)器相關(guān)聯(lián)的軟件啟動系統(tǒng)關(guān)閉。
177.如權(quán)利要求176所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括所述第二線程與所述模糊保護(hù)動態(tài)鏈接庫通信,以訪問與所述中央分層數(shù)據(jù)庫中的用戶注冊表密鑰和值相關(guān)的加密保護(hù)配置文件。
178.一種用于禁止軟件篡改的系統(tǒng),包括用于在計(jì)算機(jī)啟動之后,由登錄模塊調(diào)用模糊動態(tài)鏈接庫的保護(hù)功能,以創(chuàng)建保護(hù)與所述系統(tǒng)相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第一線程的裝置;以及用于在用戶登錄至所述計(jì)算機(jī)之后,由所述登錄模塊調(diào)用所述模糊動態(tài)鏈接庫的所述保護(hù)功能,以創(chuàng)建保護(hù)與該所述用戶相關(guān)聯(lián)的中央分層數(shù)據(jù)庫的密鑰和值的第二線程的裝置。
179.如權(quán)利要求178所述的系統(tǒng),其特征在于,還包括訂閱要針對篡改進(jìn)行保護(hù)的所述中央分層數(shù)據(jù)庫的每一密鑰的改變通知,接收對密鑰的改變的所述改變通知,并修復(fù)所述密鑰、其值或兩者以便禁止軟件篡改。
全文摘要
提供了使軟件映像模糊以便混亂黑客在反向設(shè)計(jì)包含該軟件映像的軟件時(shí)的理解(402)。也提供了用于確定諸如計(jì)算機(jī)上的中央處理單元或高速緩存存儲器的硬件資源是否屬于可能禁止軟件篡改的一個(gè)類的過程(442)。線程保護(hù)禁止對執(zhí)行保護(hù)性軟件的各個(gè)線程的篡改(443)。服務(wù)保護(hù)通過允許各個(gè)未經(jīng)授權(quán)服務(wù)執(zhí)行來禁止篡改(407)。安裝設(shè)置保護(hù)在各個(gè)軟件的安裝期間禁止篡改(202)。硬件保護(hù)防止黑客迫使各個(gè)軟件在未經(jīng)授權(quán)硬件上運(yùn)行(3B)。
文檔編號H04L9/14GK1969500SQ200580019217
公開日2007年5月23日 申請日期2005年6月10日 優(yōu)先權(quán)日2004年6月12日
發(fā)明者J·D·貝納特, W·吳, F·N-T·楚, E·福瓊, M·厄-蓋姆, S·D·厄恩肖, R·蘇萬蘇克 申請人:微軟公司