0
當我使用C#時,我只能訪問用戶模式的註冊表訪問。C++可能訪問內核模式註冊表項訪問?
使用C++訪問內核模式註冊表訪問非常困難嗎?
我記得我讀過的地方可能需要創建一個虛擬的Windows驅動程序或其他東西嗎?
編輯:基本上作爲一個業餘愛好項目,我希望創建一個簡單的註冊表監視器。但是,我確實想要捕獲內核模式(以及用戶模式)註冊表訪問.....上次我做到了這一點,使用C#我無法訪問內核模式活動。
當我使用C#時,我只能訪問用戶模式的註冊表訪問。C++可能訪問內核模式註冊表項訪問?
使用C++訪問內核模式註冊表訪問非常困難嗎?
我記得我讀過的地方可能需要創建一個虛擬的Windows驅動程序或其他東西嗎?
編輯:基本上作爲一個業餘愛好項目,我希望創建一個簡單的註冊表監視器。但是,我確實想要捕獲內核模式(以及用戶模式)註冊表訪問.....上次我做到了這一點,使用C#我無法訪問內核模式活動。
有兩種方法來實現這一目標:
構建一個registry filter driver - 這是現在鼓勵的方式來解決這個問題,並且是流程監視器的工作方式。您也可以用這種方法構建文件系統過濾器驅動程序從本質上講,你只需要通過信息反饋給用戶空間,其歸結爲:
IoRegisterDevice(...somewhere in \Devices\YourDriverName...)
IoCreateSymbolicLink(\\DosDevices\Name -> \Devices\YourDriverName)
然後是C,C++,C#應用程序應該能夠打開文件\\.\YourDriverName
和DeviceIoControl
它和接收響應。
這是可以使用C++編寫內核驅動程序,但see this before you embark on doing so。更清楚的是,你需要非常小心內核模式下的內存(分頁,非分頁),並且你不能訪問大部分標準庫。
順便說一句,你應該知道:
\Registry\System
,而用戶訪問HKLM
。
無論你在說什麼?你能否進一步解釋你想要完成的事情?或舉一個例子? – paulsm4
這可能會幫助你:http://stackoverflow.com/questions/508614/create-a-new-windows-registry-key-using-c – doctorless
什麼是「內核模式註冊表訪問」,以及如何訪問它? – avakar