Exemplo n.º 1
0
        public static void SetPrivilege(AccessTokenHandle handle, string privilege, bool enabled)
        {
            var newPrivs   = new List <ATPrivilege>();
            var attributes = (uint)(enabled ? Constants.SE_PRIVILEGE_ENABLED : Constants.SE_PRIVILEGE_DISABLED);

            newPrivs.Add(ATPrivilege.FromValues(privilege, attributes));

            AccessTokenPrivileges.AdjustTokenPrivileges(handle, newPrivs);
        }
Exemplo n.º 2
0
 private void InnerEnablePrivileges()
 {
     foreach (var privName in Enum.GetNames(typeof(PrivilegeConstants)))
     {
         var privs = new List <ATPrivilege>();
         privs.Add(ATPrivilege.CreateEnabled(privName));
         try
         {
             AccessTokenPrivileges.AdjustTokenPrivileges(this.TokenHandle, privs);
         }
         catch
         {
         }
     }
 }
Exemplo n.º 3
0
        private void InnerElevateProcess(params PrivilegeConstants[] privs)
        {
            var hToken     = AccessTokenHandle.GetCurrentProcessTokenHandle();
            var privileges = AccessTokenPrivileges.FromTokenHandle(hToken);

            foreach (var priv in privs)
            {
                if (!privileges.IsPrivilegeEnabled(priv))
                {
                    //Due to current bug, i can only adjust one privilege at a time.
                    var newPriv = new List <ATPrivilege>();
                    newPriv.Add(ATPrivilege.CreateEnabled(priv));
                    AccessTokenPrivileges.AdjustTokenPrivileges(hToken, newPriv);
                }
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// Retrieves all current thread privileges, and enables the
 /// ones that are possible.
 /// </summary>
 public static void SetAllPrivileges(AccessTokenHandle hToken, bool enabled)
 {
     foreach (var priv in Enum.GetNames(typeof(PrivilegeConstants)))
     {
         var attributes = enabled ? Constants.SE_PRIVILEGE_ENABLED : Constants.SE_PRIVILEGE_DISABLED;
         var newPriv    = new List <ATPrivilege>();
         newPriv.Add(ATPrivilege.FromValues(priv, (uint)attributes));
         try
         {
             AccessTokenPrivileges.AdjustTokenPrivileges(hToken, newPriv);
         }
         catch
         {
             continue;
         }
     }
 }