bwВ моем понимании py2exe, все эти пункты и выполняет, кроме шифрования. Я и предложил чтобы в py2exe, появилать эта функция.
Я бы защищал код так:
1. Откомпилировал все в .pyc.
2. Зашифровал и, опционально, объеденил в один архив все эти модули.
3. Написал на нативном языке исполняемый модуль, запускающий наше приложение (подгружающий необходимые модули Python и передающий им управление). В нем же необходимо реализовать дешифровщик наших .pyc'ов (свой импортер модулей).
4. Опционально. Использовать одну из существующих “шифровалок” исполняемых файлов и динамических библиотек, что бы затруднить дизассемблирование и анализ нашего главного исполняемого модуля, динамической библиотеки Python и других нативных модулей Python.
Работы здесь на 3-5 дней. С проектированием, кодированием и тестированием.
bwЗаголовок данной темы “Шифрование кода Python”, а не “Как надо писать программ”, поэтому не подменяйте тему.
p.s. Андрей Светлов выше все правильно сказал про надежность защиты. Могу добавить, что некоторым людям стоит больше внимания уделять не защите своих гениальных алгоритмов, а тестированию, что бы, не дай бог, софтина у конечного пользователя не свалилась в самый неудачный момент.
Андрей СветловЯ согласен с этим, но в тоже время я согласен и с тем, что лучше дать выбор. По мне так ОпенСорса хватает за глаза, но вот некоторым нет.
Во первых, Питон - открытый язык, и появление “шифраторов” в большом количестве лично мне не очень-то по душе. Из эстетических соображений.
Андрей СветловПоясните. Мне кажется, что защита/шифрование чего-либо не зависит от того, что это.
Во вторых создание защиты - процесс творческий и сильно привязанный к защищаемому софту.
Андрей СветловМеня не правильно поняли. И похоже, что все.
В третьих и главных - никто, думаю, не хочет увидеть рядом с шифрующим py2exe такой же свободно распростроняемый и открытый дешифратор?
Андрей СветловЯ не согласен, но шевелится по этому поводу тоже не буду, потому что меня устравивает и отсутствие шифрования.
Текущего состояния дел в плане “API на плюсах” более чем достаточно
ZZZОчень интересно посмотреть, как можно зашифровать без ключа. Смысл в том, что бы не передавать ключ отдельно, а прятать его в самой программе.
P.S. Шифрование ключём здесь, конечно, возможно, но тогда вам придётся передавать этот ключь вместе с программой, иначе её никто не сможет запустить. :-)
slav0nicА можно смысл фразы прояснить?
single exe (py2exe вроде как уже умеет)+ криптор exe (которые так любят малварщики (вирьмейкеры в прошлом:] )), только не сильно красиво выйдет
lumen2000Я понял это. Но если программы будут различатся лишь ключём, то быстро будет написан алгоритм для его выдерания и использования.
Очень интересно посмотреть, как можно зашифровать без ключа. Смысл в том, что бы не передавать ключ отдельно, а прятать его в самой программе.
lumen2000Мдя… действительно странно написано…
А можно смысл фразы прояснить?
ZZZэм что не понятно? существует всякий софт аля asprotect которые усложняют реверсинг. аналогично существуют “крипторы” , которые в основном используются для шифрования вирусов\ботов\сплойтов и тп (для усложнения анализа антивирусом), названий не помню (гуглить по слову криптор\протектор,их в сети уже полно), вот например на васме http://wasm.ru/comment.php?srcid=320 и креклабе http://cracklab.ru/download.php?action=list&n=NDA= , на forum.web-hack.ru, forum.antichat.ru этого добра навалом, хотя для данных целей их не юзал, но думаю что сгодится.
Мдя… действительно странно написано…
Мне думается вот что. Есть программки, которые перекручивают другие программки так, чтобы максимально усложнить обратную разработку. Это очень интересная мысль.