Sunday, June 6, 2010

ImpersonateLoggedOnUser 與 Mr. Scruff

今天終於發現了ImpersonateLoggedOnUser這個對我的程式極為關鍵的API

MSDN:
The ImpersonateLoggedOnUser function lets the calling thread impersonate the security context of a logged-on user. 


它簡單的解決了我呼叫CreateProcessWithLogonW後,無法取得該Process的Token問題(會出現操作不允許錯誤),原因應該在於CreateProcessWithLogonW後的Process運行在另一個User下,所以無法去OpenProcessToken它,不過透過ImpersonateLoggedOnUser模仿(Impersonate)該User的 security context 就解決了此問題


就在今天,我從Windows範例音樂中的Kalimba這首歌開始尋找,找到了Mr. Scruff這位DJ兼插畫家,他的專輯封面立刻吸引了我,簡單有力的線條,帶給人十分簡單又活潑的感覺,就像他的音樂帶給人的感受


不像很多電子音樂,他使用豐富的元素混音,讓人不會有呆版單調的感覺,我喜愛的另一位電子音樂團體Daft Punk正有此特色


Mr. Scruff個人網站:http://www.mrscruff.com/showscreen.php?site_id=9&screentype=site&screenid=9


使用CreateProcessWithLogonW讓程式啟動在另一個User(ACLUser1),而不是原來的User(user)




經過特殊權限設定的a.txt,讓ACLUser1只能讀取它




當notepad.exe嘗試寫入a.txt時,引發了權限錯誤




透過ImpersonateLoggedOnUser+OpenProcessToken得來的Token,Remove掉了notepad.exe的所有Privilege(如SeShutdownPrivilege,我想應該沒有人會使用notepad來關閉電腦吧)




希望ImpersonateLoggedOnUser和Mr. Scruff帶給你的感覺和我一樣,簡單

No comments:

Post a Comment