-2

因为在英特尔 SGX enclave 内不能使用任何标准库。如何在 Enclave 内实现动态加载?例如,我有函数foo1(),并且foo2() 在一个扩展名为 .so 的文件中。

我需要在 Enclave 内动态加载一个函数。然后,Enclave 外部的 main 函数可以调用加载的函数。

应用程序.cpp

status = ecall_dynamicLoading(enclave_id,func); // func is a function pointer loaded from .so // for example, func = &foo1;

飞地.cpp

ecall_dynamicLoading(func){ (*func)(/* some inputs */); }

可能吗?

谢谢你。

4

1 回答 1

4

根据英特尔自己的文档,您不能在 ENCLAVE 中加载 shared_object (.so)。你需要把它变成一个静态库。

https://software.intel.com/en-us/node/708963 https://software.intel.com/en-us/node/708964

即使这样,静态库也有很多限制。

于 2017-12-01T14:15:36.257 回答