$m1t
Май 20, 2009 17:02:18
Я понимаю, что вопрос во многом неправильный и хорошего ответа на него нет, но…
Если говорить точнее, то хотелось бы затруднить анализ алгоритмов использующихся в этом коде.
1. Какие еще возможности есть кроме применения обфускации?
2. Поможет ли мне py2exe и последующее пропускание экзешника через упаковщик?
3. Слышал, что python встраивается в C++. Возможно ли таким образом запихнуть весь код в С++ программу и потом скомпилировать?
4. SaaS не подходит, поскольку код слишком вычислительно-тяжелый. С питона так же не хотелось бы уходить, потому как код изначально разрабатывался для SaaS, но в последствии оказалось, что мощностей сервера не хватает и было решено переделать все в stand alone приложение.
5. Защита с помощью лицензий не подходит – у нас слишком мало ресурсов что бы с кем-то судиться…
Ferroman
Май 20, 2009 17:09:00
1. Jython, например. Вынос ключевых функций в библиотеки на С
2. Нет, не особо
3. Можно, в принципе
4. ???? Это вопрос или утверждение?
3. Посмотри Shed Skin.
Такой вопрос уже обсуждался, воспользуйся поиском. Вроде есть некие инструменты, которые собирают py-код в бинарь и шифруют его. Да и сделать подобное собственными силами не должно быть сложной задачей.
..bw
$m1t
Май 20, 2009 18:26:32
Ferroman4. Это утверждение, на случай если кто SaaS советовать будет. Сразу говорю, что не подойдет.
bwспасибо, сейчас посмотрю.
Поиском же пользовался. Он(посик) принес вот такую вот ссылку
http://stackoverflow.com/questions/261638/how-do-i-protect-python-code мораль которой сводится к тому, что лучше и не пытаться.
p.s.
Кстати, а если распространять *.pyc файлы созданные с помощью psyco?
Абсолютная защита в принципе не возможно. Мы можем рассуждать лишь о создании сложностей для рефакторинга.
Psyco не создает pyc'и.
Наиболее реалистичный сценарий, это упаковка pyc'ов в свой хитрый архив и использование своего двоичного запускальщика приложения. Для усложнения жизни хакерам, можешь изменить код интерпретатора так, что бы pyc'и отличались от стандартных, например, поменять байт-коды. Тогда и необходимость “прятать” pyc'и исчезнет. Но бинарь самого интерпретатора лучше носить не в отдельной либа, а статически компилировать с главным исполняемым, который можно и зашифровать проприетарными средствами.
Т.е. вариантов то куча :-). И, на мой взгляд, не такие и сложные.
..bw