簡體   English   中英

Vista \\ Win7中的模擬和注冊表處理

[英]Impersonation and Registry Manipulation in Vista\Win7

我需要創建在非管理員會話中運行時可以訪問HKLM的程序。 我可以訪問管理員憑據,因此可以選擇模擬。Win32調用的順序為:

  1. LogonUser的
  2. ImpersonateLoggedOnUser
  3. RegOpenKeyEx
  4. RegCreateKeyEx

該密鑰已在XP / 2003上成功創建,但在Vista / Win7上失敗並顯示“ Access Denied”。 在每種情況下,我都以相同的默認域用戶身份運行並模擬相同的域管理員。 RegCreateKeyEx正在生成“拒絕訪問”,並且顯然未創建密鑰。

任何人都知道為什么會這樣嗎?

如果您具有管理員用戶名/密碼,則可以使用CreateProcessWithLogonW()啟動幫助程序,並使用某種IPC(管道,共享內存和事件等)與其進行通信。

至於為什么它在NT6上失敗,也許您的冒充沒有給您帶來很高的IL

默認情況下,Windows Vista / 7上的管理員也不具有對HKLM的寫權限,必須首先提升權限。 有關啟動無法升級的新進程的詳細信息,請參見Vista UAC:權威指南

在Vista / Win7中,安全性已更改。 請參閱有關注冊表虛擬化的本文

要在Vista / Windows7中訪問HKLM的AFAIK,您必須具有管理員權限。 嘗試使用選項編譯程序-要求管理員特權,或者僅以管理員身份運行程序。

如Murray和Anders所建議的,要通過多種過程來實現這一目標。 首先,您將啟動一個進程,以使用具有管理員憑據的CreateProcessAsLoggedOnUser啟動另一個進程。 然后,您必須使用ShellExecute函數(將“ runas”指定為動詞)來啟動ANOTHER進程。 這樣無需UAC對話框即可進行模擬和提升。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM