設定方法是先取得一個Process的Token(可以直接從自己的Process用DuplicateTokenEx複製一個來用),透過SetTokenInformation的TokenIntegrityLevel來進行設定,使用CreateProcessAsUser使用這個Token建立Process
值得一提的是,TOKEN_MANDATORY_LABEL結構中SID_AND_ATTRIBUTES的SID要被指定為Integrity Level SID,以Windows Vista和Windows 7來說
- System Level:S-1-16-16384
- High Level:S-1-16-12288
- Medium Level:S-1-16-8192
- Low Level:S-1-16-4096
- Untrusted Level:S-1-16-0
一個經過Integrity Level設定的Process,被指定為Low Level
相關文件:http://msdn.microsoft.com/en-us/library/bb625960.aspx
PS:
文件中的Starting a process at low integrity範例,它的Low Integrity Level SID
WCHAR wszIntegritySid[20] = L"S-1-16-1024";
似乎是錯誤的,正確應為S-1-16-4096
No comments:
Post a Comment