Безопасное выполнение расшифрованного кода в текущем файлеPython

Программы на Python
Anonymous
Безопасное выполнение расшифрованного кода в текущем файле

Сообщение Anonymous »

Я пишу программу защиты кода и столкнулся с очень досадной ошибкой. Чтобы выполнить код, мне нужно его расшифровать, и я делаю это в отдельном файле, где он расшифровывается и выполняется. С однофайловыми проектами все работает нормально, но с многофайловыми проектами я получил сообщение об ошибке: модуль «include» не имеет атрибута «foo».
Репозиторий GitHubТакое случается, потому что код выполняется в script_12529881.py, но include.py импортируется, и мне нужно выполнить его там, но если я использую exec, это будет небезопасно, потому что хакеры могут просто заменить его на распечатайте и получите исходный код.
Иерархия файлов:

Код: Выделить всё

│   include.py
│   main.py
│
└───PySheild
script_12529881.py
Зашифрованный файл:

Код: Выделить всё

from PySheild.script_12529881 import PySheild
PySheild(b'x\x')
Файл для расшифровки:

Код: Выделить всё

class PySheild:
def __init__(self, code):
self.code = code
self.farnetKey = b''
self.DeObfuscate()
def DeObfuscate(self):
self.DecryptFernet()
self.BaseDecrypt()
exec(self.code)

Метод, который работает, но небезопасен:

Код: Выделить всё

exec(PySheild(b'x\v').Exec)# Exec returns code
Будем рады любой помощи

Подробнее здесь: https://stackoverflow.com/questions/788 ... rrent-file

Вернуться в «Python»