Вот что я понял из вашего вопроса и ваших комментариев:
- Вы хотите знать, возможно ли выполнить исполняемый файл, встроенный в вашу программу, без предварительного извлечения его на диск
- Ваша программа .NET-программа
- Исполняемый файл, который вы хотите запустить, не является программой .NET
Ответ на этот вопрос: да
Однако ответ на этот вопрос также это очень, очень, трудно
Что вам нужно сделать, и заметьте, что я не знаю всех подробностей об этом, так как я не делаю этого, но в любом случае:
- Загрузка исполняемого кода в память
- Переопределить все адреса в двоичном образе, чтобы они были правильными по отношению к базовому адресу, который вы загрузили в исполняемый файл в
- Возможно загрузить внешние ссылки, т.е. другие библиотеки DLL, которым требуется исполняемый файл
- Переопределить адреса этих ссылок
- Возможно загрузить ссылки, необходимые для только что загруженной ссылочной библиотеки DLL
- Remape те DLL
- Повторяйте с 3 по 6 до завершения
- Позвоните по коду
Я предполагаю, что ваш вопрос "могу ли я сделать 1 и 8", и ответ на этот вопрос нет .