从CreateProcessWithLogonW创建的进程中删除PROCESS_TERMINATE访问权限

时间:2014-01-05 08:03:20

标签: c++ windows security winapi process

我使用以下代码创建具有其他用户安全权限的进程:

CreateProcessWithLogonW(
    Username,
    Domain ? Domain : L".",
    Password,
    LOGON_WITH_PROFILE,
    ApplicationName,
    CommandLine,
    CREATE_SUSPENDED | CREATE_UNICODE_ENVIRONMENT,
    Environment,
    CurrentDirectory,
    &StartupInfo,
    ProcessInfo);

但是这个过程可以使用TerminateProcess函数来终止调用进程。我已经读过我必须从此过程中删除PROCESS_TERMINATE访问权限,但我无法找到有关如何执行此操作的信息。

1 个答案:

答案 0 :(得分:2)

PROCESS_INFORMATION结构中返回生成的进程句柄。将其传递给GetSecurityInfo()以检索进程的SACL / DACL,构建一个拒绝PROCESS_TERMINATE的新进程,然后调用SetSecurityInfo()来应用它。