Существует ли способ защитить код написанный на Python?
=========================================================

 Собственно написана программа на Python. Делает что нужно с тем чем нужно. На это имеется спрос.  

  

Хочу каждую копию:  

1. либо привязать к железу  

2. либо продавать повремёнку, используя ключ, и чтобы через сайт прога проверяла, активна лицензия или её нужно продлить.  

3. ну или сочетание первого пункта со вторым.  

  

Сделать то я сделаю. Вопрос в том, как защитить код, чтобы потом эту "защиту" не выпилили?  

  

При этом задача защиты должна обладать следующими качествами.  

1. Чтобы это можно было сделать простому смертному программисту без "танцев с бубном" (а не после того, как прочитал кучу мануалов на английском, где нифига ничего не понятно и всё было написано ещё при царе горохе)  

2. Чтобы запускалось и работало на Windows 7-8-10. В идеале хотя бы чтобы был exe-лаунчер.  

  

С уважением.  

  

p.s. естественно Python 3 и скорее всего 64 bit 

 1) Запускать приложение у себя на сервере по платной подписке;  

2) Не использовать python;  

3) PyInstaller(код правда скорее всего не защитите, а вот проблем появится вагон и большая тележка).  

  

Короче, либо первый вариант, либо вариант - написать приложение на C/C++. Интерпретируемые ЯП не предназначены(несмотря на наличие костылей) для подобных дел.  

  

Сейчас мода пошла, накопировать много кода с разных уголков интернета, и добавить всё это в один файл. Это разумеется не работает - далее мамкины бизнесмены идут сюда с просьбой переписать код, потом приходят и спрашивают как защитить код)))  

Пример:  

![5f8f59873cc8b122678802.png](https://habrastorage.org/webt/5f/8f/59/5f8f59873cc8b122678802.png)  

Похожий вопрос - [Как защитить код?](https://qna.habr.com/q/776573) 

 Берёшь значит ситон. Выносишь значит критические части своей программы в отдельные модули. Потом значит ситоном преобразуешь свой питон код в .c, потом значит компилируешь в шаред обджект. И вот значит у тебя защищённый пайтон код.  

  

На linux как-то так:  

  

```
cython critical_business_rules.py -o critical_business_rules.c
gcc -shared -pthread -fPIC -fwrapv -O2 -Wl,--strip-all -Wall -fno-strict-aliasing -I/usr/lib64/python3.6 -o critical_business_rules.so critical_business_rules.c
```
  

  

Но флаги компайлеру конечно свои скармливай. 

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