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