将图像加载到飞地记忆中

时间:2018-01-25 15:55:58

标签: windows visual-c++ msdn enclave

我试图使用新的Windows 1709功能,允许将DLL加载到安全区内存。

我没有找到任何文档或这样做的示例。 据我了解,这些是实现它的步骤:

  1. 使用IsEnclaveTypeSupported检查是否支持VBS(仅VBS支持安全区图像)安全区类型。

  2. 使用CreateEnclave功能创建安全区。

  3. 使用LoadEnclaveImage功能将图像加载到安全区内存中。

  4. 以下是我尝试使用的代码段:

    HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessPid());
    BOOL vbsSupport = IsEnclaveTypeSupported(ENCLAVE_TYPE_VBS); //returns TRUE
    ENCLAVE_CREATE_INFO_VBS vci = { 0 };
    vci.Flags = 1;
    LPVOID lpAddress = CreateEnclave(h, NULL, 0x10000, NULL, ENCLAVE_TYPE_VBS, &vci, sizeof(ENCLAVE_CREATE_INFO_VBS), NULL);
    

    调用CreateEnclave返回NULL并将最后一个错误代码设置为0x32(不支持请求)。

    任何想法如何使它工作?

1 个答案:

答案 0 :(得分:0)

是否启用了Hyper-V? 飞地需要工作。