private void btnOK_Click(object sender, EventArgs e) { try { if (radioCurrentProcess.Checked) { Token = OpenImpersonationToken(); } else if (radioSpecificProcess.Checked) { if (listViewProcesses.SelectedItems.Count < 1) { throw new InvalidOperationException("Please select a process from the list"); } Token = ((NtToken)listViewProcesses.SelectedItems[0].Tag).DuplicateToken(SecurityImpersonationLevel.Identification); } else if (radioAnonymous.Checked) { Token = TokenUtils.GetAnonymousToken(); } if (checkBoxSetIL.Checked) { Token.SetIntegrityLevel((TokenIntegrityLevel)comboBoxIL.SelectedItem); } if (checkBoxLocalAccess.Checked) { AccessRights |= COMAccessRights.ExecuteLocal; } if (checkBoxRemoteAccess.Checked) { AccessRights |= COMAccessRights.ExecuteRemote; } if (!_process_security) { if (checkBoxLocalLaunch.Checked) { LaunchRights |= COMAccessRights.ExecuteLocal; } if (checkBoxRemoteLaunch.Checked) { LaunchRights |= COMAccessRights.ExecuteRemote; } if (checkBoxLocalActivate.Checked) { LaunchRights |= COMAccessRights.ActivateLocal; } if (checkBoxRemoteActivate.Checked) { LaunchRights |= COMAccessRights.ActivateRemote; } if (!_process_security) { Principal = COMSecurity.UserToSid(textBoxPrincipal.Text).ToString(); } } DialogResult = DialogResult.OK; Close(); } catch (Exception ex) { Program.ShowError(this, ex); } }
private void btnOK_Click(object sender, EventArgs e) { try { if (radioCurrentProcess.Checked) { Token = OpenImpersonationToken(); } else if (radioSpecificProcess.Checked) { NtProcess process = selectProcessControl.SelectedProcess; if (process == null) { throw new InvalidOperationException("Please select a process from the list"); } using (var token = NtToken.OpenProcessToken(process, false, TokenAccessRights.Duplicate)) { Token = token.DuplicateToken(TokenType.Impersonation, SecurityImpersonationLevel.Impersonation, TokenAccessRights.GenericAll); } } else if (radioAnonymous.Checked) { Token = TokenUtils.GetAnonymousToken(); } if (checkBoxSetIL.Checked) { Token.SetIntegrityLevel((TokenIntegrityLevel)comboBoxIL.SelectedItem); } if (checkBoxLocalAccess.Checked) { AccessRights |= COMAccessRights.ExecuteLocal; } if (checkBoxRemoteAccess.Checked) { AccessRights |= COMAccessRights.ExecuteRemote; } if (!_process_security) { if (checkBoxLocalLaunch.Checked) { LaunchRights |= COMAccessRights.ExecuteLocal; } if (checkBoxRemoteLaunch.Checked) { LaunchRights |= COMAccessRights.ExecuteRemote; } if (checkBoxLocalActivate.Checked) { LaunchRights |= COMAccessRights.ActivateLocal; } if (checkBoxRemoteActivate.Checked) { LaunchRights |= COMAccessRights.ActivateRemote; } if (!_process_security) { Principal = COMSecurity.UserToSid(textBoxPrincipal.Text).ToString(); } } DialogResult = DialogResult.OK; Close(); } catch (Exception ex) { EntryPoint.ShowError(this, ex); } }