2011-07-13 206 views
4

我知道我可以使用RegNotifyChangeKeyValue監視註冊表更改。我想知道的是,如果它可能攔截並可能阻止閱讀和寫入註冊表。我知道一些病毒程序,比如Norton Anti-Virus,會彈出一個警告,詢問是否可以修改註冊表,因爲我只能假設必須有辦法做到這一點。攔截註冊表更改

最好,我寧願一個管理方式,使用C#,但是,如果任何人有任何想法如何做到這一點,即使其使用一些WINAPI功能,我會接受這個問題的答案了。

感謝,提前

回答

1

看一看Easyhook - 這被稱爲繞行現有的微軟研究項目的一個託管版本。這應該做你想做的。

+0

你的回答暗示Detours已經過時了。這不是真的。 EasyHook是一種選擇,Detours是另一種選擇,還有其他幾種可以實現這一功能的掛鉤機制。 – OSH

0

幾年前,我寫一個驅動程序(SYS)做了它在Windows XP上。在32位版本的Windows上,我找到了帶有函數地址的表格,並用我自己的替換了它們。當然,驅動程序從內部調用原始的註冊表API函數。

不知道它如何在Vista/7和x64系統上工作。也許你必須對此做一些研究。

如果你這樣做,不要驚訝,如果一些反病毒軟件報告你的驅動程序爲惡意軟件。

+0

有趣的方式去。這個「帶有函數地址的表」是什麼,以及如何找到它們? – Icemanind

+0

該表實際上是一個服務描述符表(SDT)。我會查找該代碼並在一兩天內給你一些指導。我知道我有那個司機的地方。在此之前,這裏有些東西可以幫助你:http://www.security.org.sg/code/sdtrestore.html正如你所看到的,有一個導出的符號「KeServiceDescriptorTable」等等......我會得到回到一些真正的答案,如何做到這一點... – 2011-07-14 08:54:28

+0

謝謝!我很感激 – Icemanind