private NtToken CreateRestrictedToken(NtToken token) { FilterTokenFlags flags = FilterTokenFlags.None; if (checkBoxDisableMaxPrivs.Checked) { flags |= FilterTokenFlags.DisableMaxPrivileges; } if (checkBoxMakeLuaToken.Checked) { flags |= FilterTokenFlags.LuaToken; } if (checkBoxSandboxInert.Checked) { flags |= FilterTokenFlags.SandboxInert; } if (checkBoxWriteRestricted.Checked) { flags |= FilterTokenFlags.WriteRestricted; } return(token.Filter(flags, GetGroupFromList(listViewDisableSids.CheckedItems.OfType <ListViewItem>()), GetPrivileges(), GetGroupFromList(listViewRestrictedSids.Items.OfType <ListViewItem>()))); }
public static extern NtStatus NtFilterToken(SafeKernelObjectHandle ExistingTokenHandle, FilterTokenFlags Flags, SafeTokenGroupsBuffer SidsToDisable, SafeTokenPrivilegesBuffer PrivilegesToDelete, SafeTokenGroupsBuffer RestrictedSids, out SafeKernelObjectHandle NewTokenHandle);