我正在尝试使用新的 Windows 1709 功能,该功能允许将 DLL 加载到 enclave 内存中。
我没有找到任何文档或示例。据我了解,这些是实现它的步骤:
检查是否支持 VBS(仅 VBS 支持 enclave 映像)使用
IsEnclaveTypeSupported
.使用
CreateEnclave
函数创建飞地。使用
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(不支持该请求)。
任何想法如何使它工作?