【问题标题】:CreateEnclave VBS Attempt To Access Invalid AddressCreateEnclave VBS 尝试访问无效地址
【发布时间】:2018-06-17 19:26:35
【问题描述】:

我正在尝试使用去年推出的 Hyper-V 的基于虚拟化的安全性创建一个简单的 Enclave,但是,我发现 MSDN 上缺少文档。因此,我无法正确诊断我遇到的问题。

这里的代码对我来说失败了,enclave == null 给了我Attempt to access invalid address. 我不太确定它无法访问什么。

if (IsEnclaveTypeSupported(ENCLAVE_TYPE_VBS))
{
    DWORD lpError = 0;
    ENCLAVE_CREATE_INFO_VBS vci = { 0 };
    vci.Flags = 1;

    PVOID enclave = CreateEnclave(GetCurrentProcess(),
        NULL,
        4096 * 2,
        NULL,
        ENCLAVE_TYPE_VBS,
        &vci,
        sizeof(ENCLAVE_CREATE_INFO_VBS),
        &lpError);

    if (enclave != NULL)
    {
        printf("Enclave created\n");
    }
    else
    {
        printf(GetLastErrorAsString().c_str());
    }
}
else {
    printf("VBS not supported\n");
}

【问题讨论】:

    标签: c++ enclave


    【解决方案1】:

    好的,我已经解决了,dwSize 似乎有一个最小大小,而且它只适用于偶数 Mb。

    例如1Mb、3Mb、5Mb等不工作,返回“尝试访问无效地址”。而 2Mb、4Mb、6Mb 等则按预期工作。

    【讨论】:

      猜你喜欢
      • 2013-12-16
      • 2021-12-08
      • 1970-01-01
      • 2021-05-03
      • 2015-09-27
      • 1970-01-01
      相关资源
      最近更新 更多