2013-08-03 23 views
-1

我正在用C++開發一個應用程序,用戶可以從應用程序中禁用任務管理器(以及更多的功能)。 以下是我做到了在Visual C++:從有限/來賓帳戶禁用任務管理器

HKEY regHandle; 

DWORD dwValue = 1; 
BYTE* data = (BYTE*)&dwValue; 

RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", 0, NULL, NULL, KEY_WRITE | KEY_WOW64_32KEY,NULL , &regHandle ,NULL); 
RegSetValueEx(regHandle,"DisableTaskmgr",0, REG_DWORD,data ,sizeof(DWORD)); 

它在管理員帳戶運作良好。但是在有限的用戶帳戶和來賓帳戶中,它不起作用。它試圖將UAC級別更改爲管理權限/最高可用級別。兩者都不起作用。我也檢查了我是否可以通過將REG值寫入HKEY_LOCAL_MACHINE來完成。可悲的是,這也失敗了。

我已經使用Google搜索並搜索了stackoverflow,但沒有找到解決方案。手動編輯組策略/註冊表完全不是解決方案,我必須在需要時從應用程序內部執行。在此先感謝您的幫助。

+0

如果你沒有權利這麼做,那麼編輯註冊表會是一個相當嚴重的安全漏洞,你不覺得嗎?換句話說,您在問「如何繞過Windows中的安全性」,並希望人們告訴您(以防有人知道......)。 –

+0

我想爲TaskMan可執行文件的DACL添加一個「拒絕執行」(或「拒絕全部」)記錄。 –

+0

@MatsPetersson,我不認爲這是一個安全漏洞。很少有應用程序需要禁用taskmanager。如果應用程序使用有限帳戶的管理員權限運行,爲什麼不這樣做?那是爲什麼windows有UAC? – Jasir

回答

2

我想這是因爲你通過註冊表修改組策略選項:

enter image description here

但組策略並未生效。 Microsoft says you have to reboot.

也許迫使組策略更新

運行gpupdate/force

會使其生效。

這是安裝程序會執行的一種操作,然後提醒用戶必須在安裝完成之前重新啓動計算機。或者,也許,因爲它只是HKCurrentUser,註銷和登錄將起作用。