【问题标题】:Remove PROCESS_TERMINATE access right from process, created by CreateProcessWithLogonW从由 CreateProcessWithLogonW 创建的进程中删除 PROCESS_TERMINATE 访问权限
【发布时间】:2014-01-05 08:03:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ windows security winapi process


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。老实说,我一直在寻找更详细的示例。
    • @kjen93,如果您正在寻找答案中的更多详细信息,那么您应该修改您的问题以包含您尝试过的代码并请求更多帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 2017-09-18
    • 2019-05-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    相关资源
    最近更新 更多