April 14, 2022

Шифруемся - обфускация Python кода

Всех приветствую!

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

Представим что мы имеет какую-либо программу на языке Python, но крайне не хотим что бы ее код кто-то прочитал или изменил, либо использовал в своих целях.

В этом нам поможет инструмент "обфускатор". Он шифрует код и делает его недоступным для других людей.

Таких инструментов достаточно много, давайте посмотрим основные. Некоторые из них есть в online версии, т.е сайт

Данный обфускатор отличается простотой и скоростью в использовании, но его алгоритмы шифрование не слишком сильны. Посмотрим его в действии.

Имеем код:

import requests
for i in range(100):
r = requests.get("https://google.com")
r = r.text.split("<")
print(r[0])
def main():
x = 0
while True:
print(1 + 1)
x = x + 1
print(str(x))

Давайте посмотрим, как его преобразит наш инструмент.

Вставляем код в поле, предварительно удалив старый и нажимаем кнопку "OBFUSCATE"

Видим зашифрованный результат:

Как мы можем увидеть - инструмент наделил код пробелами, лишней табуляцией и напрочь зашифровал переменные.

Это достаточно сильный инструмент, однако всегда найдется рыбка покрупнее!

Переходим к обфускатору, уже больее серьезного типа.

Данный обфускатор уже более серьезен, и сейчас мы посмотрим его работу.
Сохраняем наш код в файл формата .py, чтобы далее загрузить его на сайт инструмента

Как видите - данный инструмент уже требует загрузку файла, и результат так же выдает в файловом формате.

После сохранения кода в файл - загрузим его и следом нажмем кнопку Obfuscate
Код в нашем файле обфусцирован (зашифрован). Скачаем его и проверим это.
Наш код зашифрован надежнейшим образом

В этой статье мы наглядно увидели обфускацию Python кода онлайн-инструментами. Ссылки на все инструменты оставляем ниже:

  1. https://pyob.oxyry.com/
  2. https://development-tools.net/python-obfuscator/

С вами были E7! Всем удачи и увидимся в следующих постах!

for i in range(100):
r = requests.get("https://google.com")
r = r.text.split("<")[0]
print(r)