[發明專利]Windows系統注冊表保護方法無效
| 申請號: | 201110153644.0 | 申請日: | 2011-06-09 |
| 公開(公告)號: | CN102214287A | 公開(公告)日: | 2011-10-12 |
| 發明(設計)人: | 于曉軍;萬雪松;趙辰清 | 申請(專利權)人: | 北京思創銀聯科技股份有限公司 |
| 主分類號: | G06F21/22 | 分類號: | G06F21/22 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 王瑩 |
| 地址: | 100098 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | windows 系統 注冊表 保護 方法 | ||
技術領域
本發明涉及數據庫技術領域,特別涉及一種Windows系統注冊表保護方法。
背景技術
注冊表是Windows系統中的一個重要的數據庫,用于存儲系統和應用程序的設置信息。注冊表中存儲的信息與系統和應用程序的設置有著密切的關系,一旦注冊表被篡改或破壞,很可能會造成系統和程序的異常,甚至導致系統崩潰難以修復。由于以上原因,我們需要采取一些手段來保護某些注冊表鍵值不被惡意程序篡改或破壞。
現有的注冊表保護方式一般是對注冊表進行備份,一旦出現問題再行恢復?;蛘呔帉懸恍贸绦颍煌5牟樵兡承╂I值的狀態,一旦與原值不符,則將其修正。采用類似以上的手段來保護注冊表有如下幾個問題:1、采用定期備份方式,備份的時機不好掌握。通常用戶不知道什么時候注冊表會發生變化,應該備份。如果沒有及時備份,則可能有部分更新會被丟失;2、恢復注冊表存在風險。在恢復注冊表的時候,此時系統或應用程序可能已經發生變化,如果進行整體恢復可能會造成程序或系統異常;3、有些問題可能導致無法恢復。一些注冊表鍵值可能會關系到系統的正常運行,一旦被篡改或破壞,可能造成系統不可用,對普通用戶來說難以恢復;4、若采用定時查詢的方式也必須保留一份正常數據的備份,某些問題和定期備份方式類似;5、定時查詢方式如果間隔比較長,則無法做到短時間內恢復相應鍵值,此時有可能已經造成了一定程度的破壞;如果時間間隔較短,則可能耗費較多的系統資源;6、無論是備份恢復方式還是定時查詢方式都不夠靈活,如果用戶自己想修改注冊表,或某些操作確認是合法的,則需要關閉定時程序,或另作備份。
發明內容
(一)要解決的技術問題
本發明要解決的技術問題是:如何提供一種Windows系統注冊表保護方法,以便在注冊表被篡改或者破壞之前對相應的注冊表操作進行阻止。
(二)技術方案
為解決上述技術問題,本發明提供一種Windows系統注冊表保護方法,包括步驟:
S100:將注冊表操作函數的地址作為原始地址保存,使用Hook函數的地址替換所述注冊表操作函數的地址;
S200:當任一程序進行注冊表操作時,所述Hook函數獲取相應的操作信息,并將所述操作信息發送給應用層進行判斷,如果判斷結果顯示所述注冊表操作被允許,根據所述原始地址調用所述注冊表操作函數完成所述注冊表操作,否則,禁止所述注冊表操作。
優選地,所述步驟S100包括步驟:
S101:找到SSDT(System?Services?Descriptor?Table,系統服務描述符表)表基址,通過偏移量找到所述注冊表操作函數的地址,將所述地址作為所述原始地址保存;
S102:在所述SSDT表中,使用所述Hook函數的地址替換所述注冊表操作函數的地址。
優選地,所述注冊表操作函數包括函數ZwQueryValueKey、ZwSetValueKey和ZwDeleteValueKey。
優選地,所述注冊表操作包括對注冊表進行查詢、修改或者刪除操作。
優選地,所述操作信息包括所述注冊表操作的注冊表值路徑、進程路徑和操作類型。
優選地,在所述步驟S200之后,還包括步驟S300:在SSDT表中,將所述注冊表操作函數的地址恢復為所述原始地址。
優選地,在所述步驟S200中,將所述操作信息發送給應用層后,應用層根據操作策略表中包括的注冊表中各鍵值對不同程序的開放權限或者根據用戶指令,判斷所述注冊表操作是否被允許。
(三)有益效果
本發明的Windows系統注冊表保護方法,通過設置Hook函數對所有的注冊表操作進行過濾,對可能會破壞注冊表的惡意程序提前禁止。相比傳統的先破壞后修復的處理方法,本發明方法執行效率高,節省系統資源。
附圖說明
圖1是本發明的實施例所述Windows系統注冊表保護方法的流程圖。
具體實施方式
下面結合附圖和實施例,對本發明的具體實施方式作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。
圖1是本發明的實施例所述Windows系統注冊表保護方法的流程圖。如圖1所示,該方法包括步驟:
S101:找到SSDT表基址,通過偏移量找到注冊表操作函數的地址,將所述地址作為原始地址保存。所述注冊表操作函數包括函數ZwQueryValueKey、ZwSetValueKey和ZwDeleteValueKey。所述地址為所述注冊表操作函數在內存中的地址。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京思創銀聯科技股份有限公司,未經北京思創銀聯科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110153644.0/2.html,轉載請聲明來源鉆瓜專利網。





