2

我正在尝试使用新的 Windows 1709 功能,该功能允许将 DLL 加载到 enclave 内存中。

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

  1. 检查是否支持 VBS(仅 VBS 支持 enclave 映像)使用IsEnclaveTypeSupported.

  2. 使用CreateEnclave函数创建飞地。

  3. 使用LoadEnclaveImage函数将图像加载到 enclave 内存中。

这是我尝试使用的代码片段:

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(不支持该请求)。

任何想法如何使它工作?

4

1 回答 1

0

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

于 2018-02-10T16:50:28.173 回答