Выполнение кода с оперативной памяти

Можно ли запустить код в Python, который будет сформирован в оперативной памяти? Есть зашифрованный мной python код и я не хочу чтобы любой мог увидеть реализацию, есть второй файл файл, который при вводе пароля должен расшифровать первый файл в оперативную память и запустить его. В итоге промежуточный расшифрованный файл не будет храниться на диске и при завершении работы второго файла просто "исчезнет". Можно ли такое реализовать? Другие языки не предлагать, библиотеки можно.


Ответы (3 шт):

Автор решения: eri

Самый простой способ - через eval:

eval(decrypt(secret, password).decode())

Есть ещё загрузчик кода, может кто напомнит как его там. Потом можно записать свой загрузчик модулей, который примет шифрованный код.

Но самое простое прогнать через cython и шифрование не нужно будет.

→ Ссылка
Автор решения: RubiniuM

Все решилось банально: Дешифруем файл в переменную и запускаем через exec. Всё.

→ Ссылка
Автор решения: AivanF.

К чему был вопрос насчёт ОС. На Юниксах (MacOSX, Linux) вместо eval и exec можно легко записать массив данных в оперативку по пути /tmp/*, а потом использовать importlib для загрузки и выполнения кода из множества взаимосвязанных нормальных Питонячих файлов, после чего их удалить. В принципе, на Винде можно сделать аналогично просто в какой-то скрытой локации на диске, от безопасности не сильно убудет: как высказывались другие участники, все упомянутые способы – такая себе защита от реальных злоумышленников и просто айтишников, но в целом варианты рабочие.

→ Ссылка