Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 1, 2009 14:07:04

gizmo
От:
Зарегистрирован: 2009-03-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать к железу?

evgenyl
Под какой осью ставиш ?
Linux
evgenyl
А вообще если действительно серьезно думаете защищать свой код на питоне, а не так чисто ради прикола, то имхо я считаю нужно брать исходники интерпретатора, всю защиту писать на С и встраивать в интерпретатор, в него же встраивать вашу программу, потом пакавать это все Armadillo - которая может сама уже привязыватся к оборудованию.
Это же какой монстр получится?



Офлайн

#2 Апрель 1, 2009 14:13:04

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать к железу?

ну…. защитить можно попытаться.

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

ессно, предоставлять программу уже привязанную



Офлайн

#3 Апрель 1, 2009 14:24:27

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать к железу?

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

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

простите что нет конкретных ссылок, просто защитить чтото на питоне достаточно не простая задача :(



Отредактировано (Апрель 1, 2009 14:29:12)

Офлайн

#4 Апрель 1, 2009 15:09:03

gizmo
От:
Зарегистрирован: 2009-03-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать к железу?

cybergrind
ну…. защитить можно попытаться.

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

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

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

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

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

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

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



Офлайн

#5 Апрель 1, 2009 15:37:10

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать к железу?

имхо поломают вашу прогу, ну ладно.

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

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

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

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

Это защита примерно на 50$, ломается - простым артмони покапатся в памяти вашего интерпретатора и найти уже декодированные модули.



Отредактировано (Апрель 1, 2009 15:51:58)

Офлайн

#6 Апрель 1, 2009 16:05:10

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Как привязать к железу?

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



Офлайн

#7 Апрель 1, 2009 16:24:31

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать к железу?

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



Отредактировано (Апрель 1, 2009 16:29:22)

Офлайн

#8 Апрель 1, 2009 16:36:24

gizmo
От:
Зарегистрирован: 2009-03-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать к железу?

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

Будут только *.pyc.



Отредактировано (Апрель 1, 2009 16:37:20)

Офлайн

#9 Апрель 1, 2009 16:40:09

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать к железу?

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

Будут только *.pyc.
Предпалагаю что в реестре должно быть.



Офлайн

#10 Апрель 1, 2009 16:47:57

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать к железу?

Вот недолго поискав нашел сервис, не очень дорого делают из 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version