專利名稱:實時監(jiān)控和保護注冊表開機啟動項方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體是實時監(jiān)控和保護注冊表開機啟動項方法。
背景技術(shù):
通過在Windows內(nèi)核層HOOK (是Windows消息處理機制的一個平臺)操作系統(tǒng)一些關(guān)鍵操作(如修改注冊表鍵值)的API (Application Programming hterface,應(yīng)用程序編程接口)來監(jiān)控操作系統(tǒng)及其他應(yīng)用程序的活動,已經(jīng)在計算機領(lǐng)域廣泛使用。API就是操作系統(tǒng)導(dǎo)出的函數(shù),這些導(dǎo)出函數(shù)可以被其他程序調(diào)用來實現(xiàn)相應(yīng)功能。HOOK API就是修改內(nèi)核層操作系統(tǒng)API函數(shù)的入口地址,替換成在一個程序(一般是驅(qū)動程序)中的自定義函數(shù)的入口地址;當(dāng)被HOOK的API被調(diào)用時,自定義函數(shù)會先被調(diào)用。在自定義函數(shù)中我們可以做一些操作與判斷,再調(diào)用或不調(diào)用原系統(tǒng)API。開機啟動是Windows系統(tǒng)下一個非常常見的功能,它讓一些應(yīng)用程序隨著 Windows的啟動而啟動。用戶將一些常用的程序加到開機啟動項中,讓這些常用的程序在開機時就運行,不用用戶手動啟動,非常方便。但這種便利也被一些應(yīng)用程序濫用甚至惡意使用,它們將自己或其他程序加入到用戶的開機啟動項中,讓自己或其他程序也開機啟動。在多數(shù)情況下,這些被加入到用戶開機啟動項中的程序并不是用戶真正想要的,同時過多的開機啟動項也大大延長了用戶Windows系統(tǒng)的啟動時間,過多的程序在開機就啟動也占用了系統(tǒng)大量資源,導(dǎo)致系統(tǒng)性能下降,給用戶帶來使用上的不便。
發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種實時監(jiān)控和保護注冊表開機啟動項方法,讓在有程序修改開機啟動項時,實時通知用戶,讓用戶決定是否同意修改。在用戶不確定是否同意修改時,為用戶提供足夠多的信息幫助用戶決定。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是—種實時監(jiān)控和保護注冊表開機啟動項方法,其包括Hook注冊表來修改API ;攔截對所述注冊表的修改操作;判斷所述修改操作的鍵值是否是開機啟動項的鍵值,如果不是,調(diào)用所述注冊表來修改API以完成修改操作;如果是,將所述修改操作對應(yīng)的進程掛起,獲取驅(qū)動并展示所述修改操作要修改的開機啟動項的信息和要修改寫入的開機啟動項,以便于用戶根據(jù)所述要修改的開機啟動項的信息和要修改寫入的開機啟動項同意或者拒絕所述修改操作。優(yōu)選地,所述要修改的開機啟動項的信息包括要修改的開機啟動項的進程名、所在文件夾、是否有數(shù)字簽名和所屬公司。優(yōu)選地,所述獲取驅(qū)動并展示所述要修改的開機啟動項的信息和要修改寫入的開機啟動項,之后,進一步包括
3
接收用戶的查詢命令;根據(jù)所述查詢命令通過進程后臺服務(wù)器查詢并獲取所述要修改的開機啟動項的詳細信息。優(yōu)選地,所述根據(jù)所述查詢命令通過進程后臺服務(wù)器查詢并獲取所述要修改的開機啟動項的詳細信息,之后,進一步包括記錄所述查詢命令。優(yōu)選地,當(dāng)用戶同意該修改時,則調(diào)用所述注冊表來修改API,完成修改操作;當(dāng)用戶不同意該修改時,則返回所述修改操作對應(yīng)的修改的進程,并返回所述修改操作的失敗信息。本發(fā)明還提供一種計算機,其包括驅(qū)動程序模塊,用于Hook注冊表來修改API,并攔截對所述注冊表的修改操作,判斷所述修改操作的鍵值,判斷所述鍵值是否是開機啟動項的鍵值,如果不是,調(diào)用所述注冊表來修改API以完成修改操作,如果是,如果是,將所述修改操作對應(yīng)的進程掛起;應(yīng)用程序模塊,用于獲取驅(qū)動并展示所述修改操作要修改的開機啟動項的信息和要修改寫入的開機啟動項,以便于用戶根據(jù)所述要修改的開機啟動項的信息和要修改寫入的開機啟動項同意或者拒絕所述修改操作。優(yōu)選地,所述要修改的開機啟動項的信息包括要修改的開機啟動項的進程名、所在文件夾、是否有數(shù)字簽名和所屬公司。優(yōu)選地,所述驅(qū)動程序模塊,用于接收用戶的查詢命令,根據(jù)所述查詢命令通過進程后臺服務(wù)器查詢并獲取所述要修改的開機啟動項的詳細信息。優(yōu)選地,所述驅(qū)動程序模塊,還用于記錄所述查詢命令。優(yōu)選地,所述驅(qū)動程序模塊,還用于當(dāng)用戶同意該修改時,則調(diào)用所述注冊表來修改API,完成修改操作;當(dāng)用戶不同意該修改時,則返回所述修改操作對應(yīng)的修改的進程, 并返回所述修改操作的失敗信息。實施本發(fā)明的技術(shù)方案,具有以下有益效果本發(fā)明提供的實時監(jiān)控和保護注冊表開機啟動項方法,讓在有程序修改開機啟動項時,實時通知用戶,讓用戶決定是否同意修改。在用戶不確定是否同意修改時,為用戶提供足夠多的信息幫助用戶決定。阻止開機啟動項被惡意更改,防止系統(tǒng)被加入太多開機啟動項而導(dǎo)致系統(tǒng)開機緩慢、性能下降。
圖1為本發(fā)明實施例提供的方法流程圖;圖2為本發(fā)明實施例提供的方法的另一流程圖;圖3為本發(fā)明實施例提供的計算機的結(jié)構(gòu)示意圖;圖4為本發(fā)明實施例提供的應(yīng)用程序模塊的結(jié)構(gòu)示意圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實施例提供一種實時監(jiān)控和保護注冊表開機啟動項方法,如圖1所示,包括步驟本發(fā)明實施例提供一種實時監(jiān)控和保護注冊表開機啟動項方法,如圖1所示,該方法包括步驟Sl 10、Hook 注冊表來修改 API ;S120、攔截對所述注冊表的修改操作;具體的,攔截到的是要修改開機啟動項的信息及其要修改寫入的開機啟動項的信息;S130、判斷所述修改操作的鍵值,判斷所述鍵值是否是開機啟動項的鍵值,如果不是,調(diào)用所述注冊表來修改API、以完成修改操作,如果是,將所述修改操作對應(yīng)的進程掛起;S140、獲取驅(qū)動并展示所述修改操作要修改的開機啟動項的信息和要修改寫入的開機啟動項,以便于用戶根據(jù)所述要修改的開機啟動項的信息和要修改寫入的開機啟動項同意或者拒絕所述修改操作。該該步驟S140中,所述要修改的開機啟動項的信息包括要修改的開機啟動項的進程名、所在文件夾、是否有數(shù)字簽名和所屬公司。讓用戶根據(jù)所述要修改的開機啟動項的信息和要修改寫入的開機啟動項選擇同意此項修改(即該要修改的進程)或拒絕此項修改。在進一步的實施例中,在上述實施例的基礎(chǔ)上,在所述步驟S140之后,如果用戶不確定該如何選擇時,如圖2所示,該方法進一步包括步驟S150、接收用戶的查詢命令;S160、根據(jù)所述查詢命令通過進程后臺服務(wù)器查詢并獲取所述要修改的開機啟動項的詳細信息,以幫助用戶根據(jù)該詳細信息做進一步的判斷,以同意此項修改或拒絕此項修改。在其他實施例中,在該步驟S160之后,該方法還包括記錄所述查詢命令。在更進一步的實施例中,該方法還包括步驟S170、當(dāng)用戶同意該修改時,則調(diào)用所述注冊表來修改API以完成修改操作;當(dāng)用戶不同意該修改時,則返回所述修改操作對應(yīng)的修改的進程,并返回該修改操作失敗信息。另外,在其他實施例中,還可以包括記錄上述步驟S120中的攔截過程,將該攔截過程保存在日志文件中,以方便用戶查看。上述實施例提供的實時監(jiān)控和保護注冊表開機啟動項方法,讓在有程序修改開機啟動項時,實時通知用戶,讓用戶決定是否同意修改。在用戶不確定是否同意修改時,為用戶提供足夠多的信息幫助用戶決定。阻止開機啟動項被惡意更改,防止系統(tǒng)被加入太多開機啟動項而導(dǎo)致系統(tǒng)開機緩慢、性能下降。本發(fā)明實施例還提供一種計算機,如圖3所示,該計算機包括驅(qū)動程序模塊210,用于Hook注冊表來修改API,并攔截對所述注冊表的修改操作,判斷所述修改操作的鍵值,判斷所述鍵值是否是開機啟動項的鍵值,如果不是,調(diào)用所述注冊表來修改API以完成修改操作,如果是,如果是,將所述修改操作對應(yīng)的進程掛起, 并通知應(yīng)用程序模塊220 ;應(yīng)用程序模塊220,用于獲取驅(qū)動并展示所述修改操作要修改的開機啟動項的信息和要修改寫入的開機啟動項,以便于用戶根據(jù)所述要修改的開機啟動項的信息和要修改
5寫入的開機啟動項同意或者拒絕所述修改操作。所述要修改的開機啟動項的信息包括要修改的開機啟動項的進程名、所在文件夾、是否有數(shù)字簽名、所屬公司和要修改寫入的開機啟動項。更為具體的實施例中,如圖4所示,該應(yīng)用程序模塊220還包括有用戶界面通信模塊、驅(qū)動程序模塊、進程信息查詢模塊以及展示模塊,即應(yīng)用程序模塊220的功能可以通過上述用戶界面通信模塊、驅(qū)動程序模塊、進程信息查詢模塊以及展示模塊來實現(xiàn),具體地用戶界面通信模塊提供用戶操作界面,負責(zé)加載驅(qū)動程序模塊并與其通信。驅(qū)動程序模塊用于驅(qū)動負責(zé)HOOK API并攔截修改開機啟動項鍵值的操作,并通知應(yīng)用程序,再根據(jù)返回的用戶選擇信息進行下一步操作。進程信息查詢模塊負責(zé)將攔截到所述修改操作要修改的開機啟動項的信息和要修改寫入的開機啟動項發(fā)送給進程后臺服務(wù)器,獲取更詳細信息。展示模塊將驅(qū)動層攔截到的所述修改操作要修改的開機啟動項的信息和要修改寫入的開機啟動項展示給用戶,并讓用戶選擇,選擇當(dāng)前操作是阻止執(zhí)行還是禁止執(zhí)行該修改操作。進程信息后臺服務(wù)器維護與收集盡可能多的進程信息,同時向進程信息查詢模塊提供查詢服務(wù)。在其他的實施例中,在上述實施例基礎(chǔ)上,進一步的,所述驅(qū)動程序模塊210,還用于接收用戶的查詢命令,根據(jù)所述查詢命令通過進程后臺服務(wù)器查詢并獲取所述要修改的開機啟動項的詳細信息。所述驅(qū)動程序模塊210,還用于記錄所述查詢命令。在其他的實施例中,在上述實施例基礎(chǔ)上,進一步的,所述驅(qū)動程序模塊210,還用于當(dāng)用戶同意該修改時,則調(diào)用所述注冊表來修改API,完成修改操作;當(dāng)用戶不同意該修改時,則返回所述修改操作對應(yīng)的修改的進程,并返回所述修改操作的失敗信息。上述實施例提供的計算機,讓在有程序修改開機啟動項時,實時通知用戶,讓用戶決定是否同意修改。在用戶不確定是否同意修改時,為用戶提供足夠多的信息幫助用戶決定。阻止開機啟動項被惡意更改,防止系統(tǒng)被加入太多開機啟動項而導(dǎo)致系統(tǒng)開機緩慢、性能下降。以上僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種實時監(jiān)控和保護注冊表開機啟動項方法,其特征在于,包括Hook注冊表來修改API ;攔截對所述注冊表的修改操作;判斷所述修改操作的鍵值是否是開機啟動項的鍵值,如果不是,調(diào)用所述注冊表來修改API以完成修改操作;如果是,將所述修改操作對應(yīng)的進程掛起,獲取驅(qū)動并展示所述修改操作要修改的開機啟動項的信息和要修改寫入的開機啟動項,以便于用戶根據(jù)所述要修改的開機啟動項的信息和要修改寫入的開機啟動項同意或者拒絕所述修改操作。
2.如權(quán)利要求1所述的方法,其特征在于,所述要修改的開機啟動項的信息包括要修改的開機啟動項的進程名、所在文件夾、是否有數(shù)字簽名和所屬公司。
3.如權(quán)利要求2所述的方法,其特征在于,所述獲取驅(qū)動并展示所述要修改的開機啟動項的信息和要修改寫入的開機啟動項,之后,進一步包括接收用戶的查詢命令;根據(jù)所述查詢命令通過進程后臺服務(wù)器查詢并獲取所述要修改的開機啟動項的詳細 fn息ο
4.如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述查詢命令通過進程后臺服務(wù)器查詢并獲取所述要修改的開機啟動項的詳細信息,之后,進一步包括記錄所述查詢命令。
5.如權(quán)利要求3所述的方法,其特征在于,當(dāng)用戶同意該修改時,則調(diào)用所述注冊表來修改API,完成修改操作;當(dāng)用戶不同意該修改時,則返回所述修改操作對應(yīng)的修改的進程,并返回所述修改操作的失敗信息。
6.一種計算機,其特征在于,包括驅(qū)動程序模塊,用于Hook注冊表來修改API,并攔截對所述注冊表的修改操作,判斷所述修改操作的鍵值,判斷所述鍵值是否是開機啟動項的鍵值,如果不是,調(diào)用所述注冊表來修改API以完成修改操作,如果是,如果是,將所述修改操作對應(yīng)的進程掛起;應(yīng)用程序模塊,用于獲取驅(qū)動并展示所述修改操作要修改的開機啟動項的信息和要修改寫入的開機啟動項,以便于用戶根據(jù)所述要修改的開機啟動項的信息和要修改寫入的開機啟動項同意或者拒絕所述修改操作。
7.如權(quán)利要求6所述的計算機,其特征在于,所述要修改的開機啟動項的信息包括要修改的開機啟動項的進程名、所在文件夾、是否有數(shù)字簽名和所屬公司。
8.如權(quán)利要求7所述的計算機,其特征在于,所述驅(qū)動程序模塊,用于接收用戶的查詢命令,根據(jù)所述查詢命令通過進程后臺服務(wù)器查詢并獲取所述要修改的開機啟動項的詳細 fn息ο
9.如權(quán)利要求8所述的計算機,其特征在于,所述驅(qū)動程序模塊,還用于記錄所述查詢命令。
10.如權(quán)利要求8所述的計算機,其特征在于,所述驅(qū)動程序模塊,還用于當(dāng)用戶同意該修改時,則調(diào)用所述注冊表來修改API,完成修改操作;當(dāng)用戶不同意該修改時,則返回所述修改操作對應(yīng)的修改的進程,并返回所述修改操作的失敗信息。
全文摘要
本發(fā)明涉及一種實時監(jiān)控和保護注冊表開機啟動項方法及計算機,該方法包括Hook注冊表來修改API;攔截對所述注冊表的修改操作;判斷所述修改操作的鍵值是否是開機啟動項的鍵值,如果不是,調(diào)用所述注冊表來修改API以完成修改操作;如果是,將所述修改操作對應(yīng)的進程掛起,獲取驅(qū)動并展示所述修改操作要修改的開機啟動項的信息和要修改寫入的開機啟動項,以便于用戶根據(jù)所述要修改的開機啟動項的信息和要修改寫入的開機啟動項同意或者拒絕所述修改操作。本發(fā)明在有程序修改開機啟動項時能實時通知用戶,讓用戶決定是否同意修改。
文檔編號G06F21/22GK102314577SQ201110286490
公開日2012年1月11日 申請日期2011年9月23日 優(yōu)先權(quán)日2011年9月23日
發(fā)明者賀輝超 申請人:深圳市萬興軟件有限公司