服務中訪問 HKEY CURRENT USER

2021-05-24 11:11:15 字數 854 閱讀 9254

很多人寫的服務都是以預設的 localsystem 帳號執行,該帳號在本機上有極高的許可權,但有幾個限制:

1. 不能訪問網路資源;

2. 沒有對應的 sid,不能訪問需要登入才能訪問的資源;

所以,這樣的服務不能直接訪問 hkey_current_user,讀取會失敗,寫入則會被重定向到 hkey_user/.default 下;

經過查資料,需要做兩件事:

1. 模仿乙個使用者登入;

handle  hlogontoken = null;

handle  hadmintoken = null;

if (!logonuser(m_strusername, _t("."), m_strpassword,

logon32_logon_interactive, logon32_provider_default, &hlogontoken))

if (!duplicatetokenex(hlogontoken, token_all_access, null,   

securityidentification, tokenprimary, &hadmintoken))

if (!impersonateloggedonuser(hadmintoken))

closehandle(hadmintoken);

closehandle(hlogontoken);

reverttoself();

2. 把 hkey_current_user 對映到當前模仿的使用者,這個工作需要程式設計師顯式地呼叫;

hkey hkey = hkey_current_user;

regopencurrentuser(key_all_access, &hkey);

瀏覽器中訪問vscode服務

1.場景一 在一台可訪問的伺服器x.x.x.x上,執行著docker映象系統a,對映埠3000,作ssh連線使用.web的vscode服務搭建 1.在映象系統a中執行code server code server extensions extensions port 8080 2.在本地機器上,使用...

硬體訪問服務

一 硬體介面描述檔案aidl 新增 frameworks base core j a android os iledservice.aidl 二 mk編譯指令碼 修改vi frameworks base android.mk 編譯命令及效果圖 編譯輸出 out target common obj j...

訪問區域網伺服器中的服務

單位有乙個伺服器還有幾台電腦,伺服器上部署的有arcgis server 和 ms sql server軟體,為了能在本機方位伺服器上的資源,需要進行一下操作 1 需要網線和路由器連線乙個區域網 2 需要進行如下設定 基礎篇 前言 1 需要是管理員許可權 2 所有區域網電腦都要在相同ip段,比如都為...