專利名稱:計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法
計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件領(lǐng)域,具體涉及一種計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法。
背景技術(shù):
計(jì)算機(jī)軟件系統(tǒng)中部分關(guān)鍵進(jìn)程和軟件是為了保障系統(tǒng)安全可靠運(yùn)行,為了防止這些關(guān)鍵進(jìn)程和軟件被惡 意結(jié)束、卸載以及相關(guān)配置被篡改,需要對(duì)軟件產(chǎn)品中的關(guān)鍵程序,關(guān)鍵文件、配置進(jìn)行保護(hù),防止關(guān)鍵程序被異常關(guān)閉,防止關(guān)鍵文件被異常刪除,防止關(guān)鍵配置被篡改。但是Windows系統(tǒng)并未提供相應(yīng)的標(biāo)準(zhǔn)保護(hù)機(jī)制,需要每個(gè)應(yīng)用程序根據(jù)自身要求自己進(jìn)行開發(fā)。目前大多的軟件對(duì)關(guān)鍵進(jìn)程保護(hù)的方法主要有如下幾種I、只允許通過“任務(wù)管理器”對(duì)進(jìn)程執(zhí)行“進(jìn)程結(jié)束”操作,從而一定程度上防止了對(duì)程序的惡意結(jié)束操作。它采用了 Hook技術(shù),對(duì)針對(duì)關(guān)鍵進(jìn)程的“結(jié)束進(jìn)程”Windows API調(diào)用進(jìn)行過濾,對(duì)“任務(wù)管理器”發(fā)起的進(jìn)程結(jié)束操作允許執(zhí)行,對(duì)于其他應(yīng)用程序發(fā)起的,針對(duì)關(guān)鍵進(jìn)程的“結(jié)束進(jìn)程”操作,截獲后返回指定的錯(cuò)誤(例如沒有操作權(quán)限),而不再向下執(zhí)行實(shí)際的結(jié)束進(jìn)程的操作,該方法存在以下缺陷a.由于在任務(wù)管理器中仍然可以結(jié)束掉進(jìn)程,所以仍然無法避免程序被惡意結(jié)束;b.無法處理對(duì)于程序內(nèi)部異常而造成的進(jìn)程結(jié)束的問題。2、阻止第三方程序直接獲取被保護(hù)進(jìn)程的句柄,從而阻止從“任務(wù)管理器”或者第三方應(yīng)用程序中對(duì)進(jìn)程進(jìn)行“結(jié)束進(jìn)程”的動(dòng)作。該做法是針對(duì)“結(jié)束進(jìn)程”所必須依賴的“進(jìn)程句柄”的獲取操作,通過Hook操作,阻止第三方程序通過“打開進(jìn)程” Windows API的方式獲取關(guān)鍵進(jìn)程的句柄,從而阻止第三方應(yīng)用程序獲取其進(jìn)程的句柄之后進(jìn)行的“結(jié)束進(jìn)程”操作,該方法存在以下缺點(diǎn)a.應(yīng)用程序可以編寫枚舉當(dāng)前系統(tǒng)進(jìn)程句柄的方式獲取特定的進(jìn)程句柄,從而繞過該方法;b.對(duì)于殺毒軟件等程序而言,可能會(huì)因?yàn)闊o法打開該進(jìn)程進(jìn)行病毒掃描而誤認(rèn)為該進(jìn)程存在風(fēng)險(xiǎn)。3、采用“雙進(jìn)程保護(hù)”的方式,利用兩個(gè)或者多個(gè)進(jìn)程,進(jìn)程之間互相持有對(duì)方進(jìn)程的運(yùn)行句柄的方式,一旦有一方出現(xiàn)異常而被終止,就立即啟動(dòng)另一方軟件。實(shí)現(xiàn)進(jìn)程之間的相互保護(hù)功能。該方法存在以下缺點(diǎn)有不少的病毒程序采用這樣的方式進(jìn)行自我保護(hù),故該保護(hù)方式可能會(huì)被殺毒軟件誤報(bào)為病毒。目前軟件對(duì)關(guān)鍵文件保護(hù)的方法主要有如下幾種I、對(duì)關(guān)鍵的文件進(jìn)行備份,一旦發(fā)現(xiàn)問題,則從備份的位置恢復(fù)該文件,該方法存在以下缺點(diǎn)a.如果備份的位置的文件也被刪除,則無法進(jìn)行恢復(fù)操作。b.備份的文件如果沒有在配置更新時(shí)及時(shí)更新,恢復(fù)之后也存在配置信息丟失的問題。2、對(duì)系統(tǒng)的所有文件操作進(jìn)行Hook攔截和過濾,如果對(duì)關(guān)鍵文件的操作不符合過濾條件,則進(jìn)行阻止,該方法存在以下缺點(diǎn)對(duì)非關(guān)鍵文件進(jìn)行操作的文件讀寫操作也要進(jìn)行攔截,存在處理效率的問題。有鑒于此,本發(fā)明人針對(duì)現(xiàn)有技術(shù)的缺陷深入研究,并有本案產(chǎn)生。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題在于提供一種計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法,能夠?qū)崿F(xiàn)較為完整的軟件自我保護(hù)的功能。本發(fā)明采用以下技術(shù)方案解決上述技術(shù)問題計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法,包括如下步驟步驟I :開啟關(guān)鍵服務(wù),在關(guān)鍵服務(wù)第一次啟動(dòng)時(shí)將進(jìn)程監(jiān)視模塊注入到系統(tǒng)進(jìn)程中,在系統(tǒng)進(jìn)程空間中運(yùn)行所述進(jìn)程監(jiān)視模塊,所述進(jìn)程監(jiān)視模塊定時(shí)檢查關(guān)鍵服務(wù)是否運(yùn)行,如果關(guān)鍵服務(wù)異常終止,則再次啟動(dòng)該關(guān)鍵服務(wù);步驟2 :文件保護(hù)模塊按照配置,對(duì)關(guān)鍵目錄中的文件操作進(jìn)行過濾,如果有關(guān)鍵 目錄之外的應(yīng)用程序?qū)﹃P(guān)鍵目錄中的文件進(jìn)行刪除操作,則阻止該操作;如果操作文件的進(jìn)程位于關(guān)鍵目錄內(nèi)部,則允許其進(jìn)行該文件操作;步驟3 :卸載保護(hù)模塊在用戶執(zhí)行卸載操作的時(shí)候,根據(jù)用戶輸入的卸載密碼是否正確控制是否允許用戶進(jìn)行實(shí)際的軟件卸載動(dòng)作。所述進(jìn)程監(jiān)視模塊通過遠(yuǎn)程注入到系統(tǒng)進(jìn)程中以線程的形式運(yùn)行,對(duì)指定的關(guān)鍵服務(wù)的運(yùn)行情況進(jìn)行定時(shí)監(jiān)視,一旦發(fā)現(xiàn)該服務(wù)停止運(yùn)行,則自動(dòng)啟動(dòng)該關(guān)鍵服務(wù)。所述文件保護(hù)模塊通過對(duì)關(guān)鍵目錄中的文件操作進(jìn)行保護(hù),阻止該目錄中的配置、文件被目錄以外的應(yīng)用程序所刪除。所述卸載保護(hù)模塊,通過對(duì)卸載程序運(yùn)行進(jìn)行密碼保護(hù),阻止非管理員或者普通用戶惡意卸載軟件。本發(fā)明的優(yōu)點(diǎn)在于1、實(shí)現(xiàn)軟件產(chǎn)品運(yùn)行保護(hù),在軟件產(chǎn)品被停止時(shí),實(shí)現(xiàn)軟件產(chǎn)品自啟動(dòng)運(yùn)行。2、防止軟件產(chǎn)品被卸載,卸載時(shí)需要輸入密碼。3、防止軟件產(chǎn)品關(guān)鍵配置被其它程序或用戶篡改,但允許軟件產(chǎn)品可修改這些關(guān)鍵配置。4、在不改變既有的軟件架構(gòu)和實(shí)現(xiàn)前提下,為軟件提供了一套相對(duì)較為完整的軟件保護(hù)機(jī)制。一方面降低了軟件開發(fā)人員對(duì)于“軟件保護(hù)”的了解門檻,縮短了軟件交付的周期;另一方面,也極大的降低了對(duì)原有軟件改造的風(fēng)險(xiǎn),可以以很小的代價(jià)為任何一套軟件實(shí)現(xiàn)“軟件保護(hù)”的功能。很容易整合出符合自身要求的軟件保護(hù)功能。5、與殺毒軟件和其它相關(guān)安全產(chǎn)品兼容性較好。
下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。圖I是本發(fā)明的方法工作流程示意圖。
具體實(shí)施方式如圖I所示,本發(fā)明以微軟提供的Hook技術(shù)和遠(yuǎn)程注入技術(shù)為基礎(chǔ),通過開發(fā)自主保護(hù)框架,比較巧妙的解決了現(xiàn)有技術(shù)中軟件保護(hù)方式的各自的缺陷,能夠?qū)崿F(xiàn)較為完整的軟件自我保護(hù)的功能。以下對(duì)使用到的幾個(gè)技術(shù)作簡(jiǎn)要的介紹鉤子技術(shù)(Hook技術(shù)),是Windows操作系統(tǒng)提供的一種在二進(jìn)制層面允許其他的程序修改系統(tǒng)或者應(yīng)用程序行為的一種手段,應(yīng)用程序可以利用該技術(shù),對(duì)系統(tǒng)的特定行為(例如特定的API調(diào)用)進(jìn)行攔截,并插入自定義操作。遠(yuǎn)程注入技術(shù),是Windows系統(tǒng)提供的一種對(duì)其他進(jìn)程注入動(dòng)態(tài)鏈接庫(kù)(DLL)的技術(shù),通過該技術(shù),可以對(duì)其他進(jìn)程的行為進(jìn)行修改,或者擴(kuò)展第三方進(jìn)程的行為。進(jìn)程句柄,是Windows系統(tǒng)為了隱藏進(jìn)程操作內(nèi)部實(shí)現(xiàn),而提供的一種對(duì)進(jìn)程對(duì)象的描述方式。通過指定的進(jìn)程句柄,可以對(duì)該進(jìn)程進(jìn)行相應(yīng)的操作。本發(fā)明的主要步驟包括步驟I :開啟關(guān)鍵服務(wù),在關(guān)鍵服務(wù)第一次啟動(dòng)時(shí)將進(jìn)程監(jiān)視模塊注入到系統(tǒng)進(jìn)程中,在系統(tǒng)進(jìn)程空間中運(yùn)行所述進(jìn)程監(jiān)視模塊,所述進(jìn)程監(jiān)視模塊定時(shí)檢查關(guān)鍵服務(wù)是否運(yùn)行,如果關(guān)鍵服務(wù)異常終止,則再次啟動(dòng)該關(guān)鍵服務(wù);步驟2 :文件保護(hù)模塊按照配置,對(duì)關(guān)鍵目錄中的文件操作進(jìn)行過濾,如果有關(guān)鍵 目錄之外的應(yīng)用程序?qū)﹃P(guān)鍵目錄中的文件進(jìn)行刪除操作,則阻止該操作;如果操作文件的進(jìn)程位于關(guān)鍵目錄內(nèi)部,則允許其進(jìn)行該文件操作;步驟3 :卸載保護(hù)模塊在用戶執(zhí)行卸載操作的時(shí)候,根據(jù)用戶輸入的卸載密碼是否正確控制是否允許用戶進(jìn)行實(shí)際的軟件卸載動(dòng)作。其中進(jìn)程監(jiān)視模塊通過遠(yuǎn)程注入到系統(tǒng)進(jìn)程中以線程的形式運(yùn)行,對(duì)指定的關(guān)鍵服務(wù)的運(yùn)行情況進(jìn)行定時(shí)監(jiān)視,一旦發(fā)現(xiàn)該服務(wù)停止運(yùn)行,則自動(dòng)啟動(dòng)該關(guān)鍵服務(wù)。文件保護(hù)模塊通過對(duì)關(guān)鍵目錄中的文件操作進(jìn)行保護(hù),阻止該目錄中的配置、文件被目錄以外的應(yīng)用程序所刪除。卸載保護(hù)模塊,通過對(duì)卸載程序運(yùn)行進(jìn)行密碼保護(hù),阻止非管理員或者普通用戶惡意卸載軟件。本發(fā)明的有益效果在于1、實(shí)現(xiàn)軟件產(chǎn)品運(yùn)行保護(hù),在軟件產(chǎn)品被停止時(shí),實(shí)現(xiàn)軟件產(chǎn)品自啟動(dòng)運(yùn)行。2、防止軟件產(chǎn)品被卸載,卸載時(shí)需要輸入密碼。3、防止軟件產(chǎn)品關(guān)鍵配置被其它程序或用戶篡改,但允許軟件產(chǎn)品可修改這些關(guān)鍵配置。4、在不改變既有的軟件架構(gòu)和實(shí)現(xiàn)前提下,為軟件提供了一套相對(duì)較為完整的軟件保護(hù)機(jī)制。一方面降低了軟件開發(fā)人員對(duì)于“軟件保護(hù)”的了解門檻,縮短了軟件交付的周期;另一方面,也極大的降低了對(duì)原有軟件改造的風(fēng)險(xiǎn),可以以很小的代價(jià)為任何一套軟件實(shí)現(xiàn)“軟件保護(hù)”的功能。很容易整合出符合自身要求的軟件保護(hù)功能。5、與殺毒軟件和其它相關(guān)安全產(chǎn)品兼容性較好。以上所述僅為本發(fā)明的較佳實(shí)施用例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法,其特征在于包括如下步驟 步驟I:開啟關(guān)鍵服務(wù),在關(guān)鍵服務(wù)第一次啟動(dòng)時(shí)將進(jìn)程監(jiān)視模塊注入到系統(tǒng)進(jìn)程中,在系統(tǒng)進(jìn)程空間中運(yùn)行所述進(jìn)程監(jiān)視模塊,所述進(jìn)程監(jiān)視模塊定時(shí)檢查關(guān)鍵服務(wù)是否運(yùn)行,如果關(guān)鍵服務(wù)異常終止,則再次啟動(dòng)該關(guān)鍵服務(wù); 步驟2 :文件保護(hù)模塊按照配置,對(duì)關(guān)鍵目錄中的文件操作進(jìn)行過濾,如果有關(guān)鍵目錄之外的應(yīng)用程序?qū)﹃P(guān)鍵目錄中的文件進(jìn)行刪除操作,則阻止該操作;如果操作文件的進(jìn)程位于關(guān)鍵目錄內(nèi)部,則允許其進(jìn)行該文件操作; 步驟3 :卸載保護(hù)模塊在用戶執(zhí)行卸載操作的時(shí)候,根據(jù)用戶輸入的卸載密碼是否正確控制是否允許用戶進(jìn)行實(shí)際的軟件卸載動(dòng)作。
2.如權(quán)利要求I所述的計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法,其特征在于所述進(jìn)程監(jiān)視模塊通過遠(yuǎn)程注入到系統(tǒng)進(jìn)程中以線程的形式運(yùn)行,對(duì)指定的關(guān)鍵服務(wù)的運(yùn)行情況進(jìn)行定時(shí)監(jiān)視,一旦發(fā)現(xiàn)該服務(wù)停止運(yùn)行,則自動(dòng)啟動(dòng)該關(guān)鍵服務(wù)。
3.如權(quán)利要求I所述的計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法,其特征在于所述文件保護(hù)模塊通過對(duì)關(guān)鍵目錄中的文件操作進(jìn)行保護(hù),阻止該目錄中的配置、文件被目錄以外的應(yīng)用程序所刪除。
4.如權(quán)利要求I所述的計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法,其特征在于所述卸載保護(hù)模塊,通過對(duì)卸載程序運(yùn)行進(jìn)行密碼保護(hù),阻止非管理員或者普通用戶惡意卸載軟件。
全文摘要
計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法,包括開啟關(guān)鍵服務(wù),在關(guān)鍵服務(wù)第一次啟動(dòng)時(shí)將進(jìn)程監(jiān)視模塊注入到系統(tǒng)進(jìn)程中,在系統(tǒng)進(jìn)程空間中運(yùn)行進(jìn)程監(jiān)視模塊,進(jìn)程監(jiān)視模塊定時(shí)檢查關(guān)鍵服務(wù)是否運(yùn)行,如果關(guān)鍵服務(wù)異常終止,則再次啟動(dòng)該關(guān)鍵服務(wù);文件保護(hù)模塊按照配置,對(duì)關(guān)鍵目錄中的文件操作進(jìn)行過濾,如果有關(guān)鍵目錄之外的應(yīng)用程序?qū)﹃P(guān)鍵目錄中的文件進(jìn)行刪除操作,則阻止該操作;如果操作文件的進(jìn)程位于關(guān)鍵目錄內(nèi)部,則允許其進(jìn)行該文件操作;卸載保護(hù)模塊在用戶執(zhí)行卸載操作的時(shí)候,根據(jù)用戶輸入的卸載密碼是否正確控制是否允許用戶進(jìn)行實(shí)際的軟件卸載動(dòng)作。本發(fā)明提供一種計(jì)算機(jī)軟件產(chǎn)品運(yùn)行保護(hù)方法,能夠?qū)崿F(xiàn)較為完整的軟件自我保護(hù)的功能。
文檔編號(hào)G06F21/12GK102880817SQ201210295969
公開日2013年1月16日 申請(qǐng)日期2012年8月20日 優(yōu)先權(quán)日2012年8月20日
發(fā)明者張輝 申請(qǐng)人:福建升騰資訊有限公司