@ARSEnaiL

Допустим у меня есть массив byte[] bytes и этот массив символизирует машинныый код программы, могу ли я запустить эту програму из своего кода?

Массив состоит из 16 ричных значений типа: 0xA1, 0x00, 0xC, и так далее
  • Вопрос задан
  • 234 просмотра
Решения вопроса 3
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Да, можете. Как-то так: https://keestalkstech.com/2016/05/how-to-add-dynam...
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Можно скопировать в TMP и загрузить оттуда assembly вот как тут пишут

https://stackoverflow.com/questions/465488/can-i-l...
Ответ написан
Комментировать
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
Тут 2 варианта:

1. Это IL, тогда нужно создать новую сборку, сохранить и запустить (примеры были выше).
2. Это машинные инструкции (нативные). Тут сложнее, т.к. для запуска необходимо выделить память с флагом EXECUTABLE, либо создать исполняемый файл (здесь не только сам исполняемый код - нужно правильно оформить в соответствии с форматом этого файла, например ELF или PE)

UPD: вот тут есть 2 ответ (решает задачу), но это C, а не C#, поэтому надо будет юзать интероп (не знаю есть ли средства в .NET подобные)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы