Учитывая этот код:
class module {
public:
virtual void run(void (*callback)(int)) = 0;
byte* memory;
}
int main() {
module m1 = loadSomeUntrustedModule();
module m2 = loadSomeUntrustedModule();
m1.memory[31] = 5;
//m1.run(); //?
return m1.memory[32];
}
Я хочу выполнить run
в module
, который не может получить доступ к коду вне себя, изолируя его с помощью собственной области памяти, доступной только из основного процесса,Защищен от утечек памяти и, возможно, от вредоносного кода.Код не нуждается в доступе ни к чему, кроме своей собственной памяти.Я намерен, чтобы этот код был кроссплатформенным, компилировался и работал для Linux, Windows, Mac, Android и т. Д. *
Это довольно простой вопрос;Как запустить песочницу / защищенный код в C ++ с требованиями, о которых говорилось выше?Но один гораздо более сложный для ответа, я бы предположил.Тот, который я предположил бы содержать сборку.