Форум сайта python.su
evgenylLinux
Под какой осью ставиш ?
evgenylЭто же какой монстр получится?
А вообще если действительно серьезно думаете защищать свой код на питоне, а не так чисто ради прикола, то имхо я считаю нужно брать исходники интерпретатора, всю защиту писать на С и встраивать в интерпретатор, в него же встраивать вашу программу, потом пакавать это все Armadillo - которая может сама уже привязыватся к оборудованию.
Офлайн
ну…. защитить можно попытаться.
1 - .pyc -> .py не самая тривиальная задача
2 - для приложений требующих доступа в инет - хорошо сделать проверку на стороне сервака.
3 - ну и достаточно громоздкий алгоритм зашивровывания/расшифровывания/eval'oв (но это типа как в ensymble.py)
ессно, предоставлять программу уже привязанную
Офлайн
gizmogcc есть в системе ?evgenylLinux
Под какой осью ставиш ?evgenylЭто же какой монстр получится?
А вообще если действительно серьезно думаете защищать свой код на питоне, а не так чисто ради прикола, то имхо я считаю нужно брать исходники интерпретатора, всю защиту писать на С и встраивать в интерпретатор, в него же встраивать вашу программу, потом пакавать это все Armadillo - которая может сама уже привязыватся к оборудованию.
Отредактировано (Апрель 1, 2009 14:29:12)
Офлайн
cybergrind1. .pyc не спасёт от запуска на другой машине.
ну…. защитить можно попытаться.
1 - .pyc -> .py не самая тривиальная задача
2 - для приложений требующих доступа в инет - хорошо сделать проверку на стороне сервака.
3 - ну и достаточно громоздкий алгоритм зашивровывания/расшифровывания/eval'oв (но это типа как в ensymble.py)
ессно, предоставлять программу уже привязанную
evgenylgcc разумеется установлен (куда на линуксе без него :))
gcc есть в системе ?
да ну монстр, вы ещё монстров не видели
ладно тогда просто python.{dll,so} хотябы свой сделать, а то модуль/функцию проверки подменил и все нет больше защиты
абфускация тоже не выход, на пол часа работы, хотя смотря какой проект
вопрос а вы его продавать будите ? какая примерно цена ? (чтобы понять какой класс защиты нужен)
просто если 1-3 бакса, то cpuid с головой хватит
простите что нет конкретных ссылок, просто защитить чтото на питоне достаточно не простая задача
Офлайн
имхо поломают вашу прогу, ну ладно.
допустим есть у тебя модуль pycpuid, а в нем функция GetCPUID()
берем, читаем CPUID, на машине где стоит купленная ваша программа
копируем её(вашу программу) на другую машину, сносим модуль pycpuid
создаем файлик pycpuid.py с функцией GetCPUID() которая всегда возращает CPUID который был прочитан выше
все, вся защита коту под смарку, и не важно что это будет CPUID, мак адрес, серийник винта
все равно обходится на ура любой подобный вид защиты
именно поэтому я считаю что нужно менять сам интерпретатор под свою программу и делать защиту в нем, и запускать своим интерпретатором
например защифровать с помощью RSA свою программу а в интерпретаторе добавить возможность запускать RSA зашифрованные py модули, а ключ например запаролен параметрами компа темже CPUID.
Плюс расшифрофку RSA писать самим чтобы нельзя было перехватить ключ в стандартной библиотеке.
Вот ещё один пример защиты.
Это защита примерно на 50$, ломается - простым артмони покапатся в памяти вашего интерпретатора и найти уже декодированные модули.
Отредактировано (Апрель 1, 2009 15:51:58)
Офлайн
evgenylКакой вы хитрый механизьмъ придумали. Знали, небось, алгоритм защиты заранее :)
копируем её(вашу программу) на другую машину, сносим модуль pycpuid
создаем файлик pycpuid.py с функцией GetCPUID() которая всегда возращает CPUID который был прочитан выше
все, вся защита коту под смарку, и не важно что это будет CPUID, мак адрес, серийник винта
все равно обходится на ура любой подобный вид защиты
Офлайн
Вы считаете что при условии того что исходники питона все открыты, будет проблемно узнать механизм защиты ?
Даже не нужно быть специаличтом в области взлома, эту задачу сможет решить обыкновенный студент, знающий С и Python.
Отредактировано (Апрель 1, 2009 16:29:22)
Офлайн
Именно по этой причине и хочется обойтись без сторонних модулей.
Например, в линуксе можно привязаться к UUID харда (ls /dev/disk/by-uuid/)
А есть ли что-то подобное под win?
Будут только *.pyc.
Отредактировано (Апрель 1, 2009 16:37:20)
Офлайн
gizmoПредпалагаю что в реестре должно быть.
Именно по этой причине и хочется обойтись без сторонних модулей.
Например, в линуксе можно привязаться к UUID харда (ls /dev/disk/by-uuid/)
А есть ли что-то подобное под win?
Будут только *.pyc.
Офлайн
Вот недолго поискав нашел сервис, не очень дорого делают из pyc обратно py
http://www.crazy-compilers.com/decompyle/orderp.html
или этим можно помурыжить
http://www.python.org/doc/2.4/lib/module-dis.html
Отредактировано (Апрель 1, 2009 16:50:12)
Офлайн