【问题标题】:Can low integrity process create a named mutant object?低完整性进程可以创建命名突变对象吗?
【发布时间】:2017-05-11 16:58:27
【问题描述】:

我正在尝试从低完整性进程中创建一个新的命名突变体。此代码在高完整性过程中运行良好,但在低完整性和中等完整性时失败。

RtlInitUnicodeString(&Name, L"\\MutantName");
InitializeObjectAttributes(&Attr, &Name, OBJ_INHERIT | OBJ_OPENIF, NULL, NULL);
NTStatus = NtCreateMutant(&Mutant, MUTANT_ALL_ACCESS, &Attr, 0);

我收到NTStatus = ERROR_ACCESS_DENIED (0xc0000022)

是否可以从低完整性进程创建突变体?如果是 - 有人知道我做错了什么吗?谢谢!

【问题讨论】:

    标签: windows winapi synchronization mutex


    【解决方案1】:

    低完整性进程只能在具有低强制标签的对象目录中创建对象。根对象目录没有这个标签。 \BaseNamedObjects 确实如此,因此您可以在其中通过低完整性流程创建您的突变体:

    RtlInitUnicodeString(&Name, L"\\BaseNamedObjects\\MutantName");
    

    【讨论】:

      猜你喜欢
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多