Имитация всего компьютера выглядит очень медленным способом выполнения нативного кода.Множество операций с загрузкой, поиском, выполнением, хранением и т. Д. Только для одной нативной инструкции.
Я бы попытался выполнить хотя бы несколько блоков кода.Подумайте о следующем коде.
int sum = 0;
for (int i = 0; i < 10; i++)
{
sum += i;
}
Этот код полностью безопасен для выполнения в вашей виртуальной машине.Просто убедитесь, что вы вводите обратный вызов к коду вашей виртуальной машины.
Но я постараюсь пойти еще дальше и выполнить весь код изначально, за исключением вызовов библиотеки / операционной системы.Перед загрузкой изолированного приложения просмотрите файл и замените все «опасные» вызовы вызовами обработчиков на вашей виртуальной машине.
Код
printf("Hello World\n");
будет заменен вызовами в вашу библиотеку
myVM_printf("Hello World\n");
Тогда вы сможете выполнить всю программу на собственной скорости и при этом иметь возможность обрабатывать весь опасный код на вашей виртуальной машине.