Найти - Пользователи
Полная версия: Как привязать к железу?
Начало » Python для экспертов » Как привязать к железу?
1 2 3 4
gizmo
evgenyl
Под какой осью ставиш ?
Linux
evgenyl
А вообще если действительно серьезно думаете защищать свой код на питоне, а не так чисто ради прикола, то имхо я считаю нужно брать исходники интерпретатора, всю защиту писать на С и встраивать в интерпретатор, в него же встраивать вашу программу, потом пакавать это все Armadillo - которая может сама уже привязыватся к оборудованию.
Это же какой монстр получится?
cybergrind
ну…. защитить можно попытаться.

1 - .pyc -> .py не самая тривиальная задача
2 - для приложений требующих доступа в инет - хорошо сделать проверку на стороне сервака.
3 - ну и достаточно громоздкий алгоритм зашивровывания/расшифровывания/eval'oв (но это типа как в ensymble.py)

ессно, предоставлять программу уже привязанную
evgenyl
gizmo
evgenyl
Под какой осью ставиш ?
Linux
evgenyl
А вообще если действительно серьезно думаете защищать свой код на питоне, а не так чисто ради прикола, то имхо я считаю нужно брать исходники интерпретатора, всю защиту писать на С и встраивать в интерпретатор, в него же встраивать вашу программу, потом пакавать это все Armadillo - которая может сама уже привязыватся к оборудованию.
Это же какой монстр получится?
gcc есть в системе ?
да ну монстр, вы ещё монстров не видели :)
ладно тогда просто python.{dll,so} хотябы свой сделать, а то модуль/функцию проверки подменил и все нет больше защиты
абфускация тоже не выход, на пол часа работы, хотя смотря какой проект

вопрос а вы его продавать будите ? какая примерно цена ? (чтобы понять какой класс защиты нужен)
просто если 1-3 бакса, то cpuid с головой хватит :)

простите что нет конкретных ссылок, просто защитить чтото на питоне достаточно не простая задача :(
gizmo
cybergrind
ну…. защитить можно попытаться.

1 - .pyc -> .py не самая тривиальная задача
2 - для приложений требующих доступа в инет - хорошо сделать проверку на стороне сервака.
3 - ну и достаточно громоздкий алгоритм зашивровывания/расшифровывания/eval'oв (но это типа как в ensymble.py)

ессно, предоставлять программу уже привязанную
1. .pyc не спасёт от запуска на другой машине.
2. приложение локальное.

предоставлять уже привязанное приложение, ИМХО не самый лучший вариант.

evgenyl
gcc есть в системе ?
да ну монстр, вы ещё монстров не видели
ладно тогда просто python.{dll,so} хотябы свой сделать, а то модуль/функцию проверки подменил и все нет больше защиты
абфускация тоже не выход, на пол часа работы, хотя смотря какой проект

вопрос а вы его продавать будите ? какая примерно цена ? (чтобы понять какой класс защиты нужен)
просто если 1-3 бакса, то cpuid с головой хватит

простите что нет конкретных ссылок, просто защитить чтото на питоне достаточно не простая задача
gcc разумеется установлен (куда на линуксе без него :))
Цена в районе $50.

Допустим я поборю pycpuid и привяжусь к нему. Это же надо будет каждому клиенту инсталлить его у себя или есть другие способы?
evgenyl
имхо поломают вашу прогу, ну ладно.

допустим есть у тебя модуль pycpuid, а в нем функция GetCPUID()
берем, читаем CPUID, на машине где стоит купленная ваша программа

копируем её(вашу программу) на другую машину, сносим модуль pycpuid
создаем файлик pycpuid.py с функцией GetCPUID() которая всегда возращает CPUID который был прочитан выше
все, вся защита коту под смарку, и не важно что это будет CPUID, мак адрес, серийник винта
все равно обходится на ура любой подобный вид защиты

именно поэтому я считаю что нужно менять сам интерпретатор под свою программу и делать защиту в нем, и запускать своим интерпретатором
например защифровать с помощью RSA свою программу а в интерпретаторе добавить возможность запускать RSA зашифрованные py модули, а ключ например запаролен параметрами компа темже CPUID.
Плюс расшифрофку RSA писать самим чтобы нельзя было перехватить ключ в стандартной библиотеке.

Вот ещё один пример защиты.

Это защита примерно на 50$, ломается - простым артмони покапатся в памяти вашего интерпретатора и найти уже декодированные модули.
Lexander
evgenyl
копируем её(вашу программу) на другую машину, сносим модуль pycpuid
создаем файлик pycpuid.py с функцией GetCPUID() которая всегда возращает CPUID который был прочитан выше
все, вся защита коту под смарку, и не важно что это будет CPUID, мак адрес, серийник винта
все равно обходится на ура любой подобный вид защиты
Какой вы хитрый механизьмъ придумали. Знали, небось, алгоритм защиты заранее :)
При такой стоимости ПО вполне достаточно простой защиты на основании данных о железе. Механизм - любой: от серверной проверки до генерации кода активации по принципу микрософта. Время специалиста по взлому будет стоить дороже.
evgenyl
Вы считаете что при условии того что исходники питона все открыты, будет проблемно узнать механизм защиты ?
Даже не нужно быть специаличтом в области взлома, эту задачу сможет решить обыкновенный студент, знающий С и Python.
gizmo
Именно по этой причине и хочется обойтись без сторонних модулей.
Например, в линуксе можно привязаться к UUID харда (ls /dev/disk/by-uuid/)
А есть ли что-то подобное под win?

Будут только *.pyc.
evgenyl
gizmo
Именно по этой причине и хочется обойтись без сторонних модулей.
Например, в линуксе можно привязаться к UUID харда (ls /dev/disk/by-uuid/)
А есть ли что-то подобное под win?

Будут только *.pyc.
Предпалагаю что в реестре должно быть.
evgenyl
Вот недолго поискав нашел сервис, не очень дорого делают из pyc обратно py
http://www.crazy-compilers.com/decompyle/orderp.html
или этим можно помурыжить
http://www.python.org/doc/2.4/lib/module-dis.html
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB