Найти - Пользователи
Полная версия: Шифрование кода Python
Начало » Python для новичков » Шифрование кода Python
1 2 3 4 5 6
cybergrind
хе. смотря что называть закрытием… даже ехе - не сильно сокрытие кода - машинный код то остается. самое тру-сокрытие: SaaS.
lumen2000
bw
Я бы защищал код так:

1. Откомпилировал все в .pyc.
2. Зашифровал и, опционально, объеденил в один архив все эти модули.
3. Написал на нативном языке исполняемый модуль, запускающий наше приложение (подгружающий необходимые модули Python и передающий им управление). В нем же необходимо реализовать дешифровщик наших .pyc'ов (свой импортер модулей).
4. Опционально. Использовать одну из существующих “шифровалок” исполняемых файлов и динамических библиотек, что бы затруднить дизассемблирование и анализ нашего главного исполняемого модуля, динамической библиотеки Python и других нативных модулей Python.

Работы здесь на 3-5 дней. С проектированием, кодированием и тестированием.
В моем понимании py2exe, все эти пункты и выполняет, кроме шифрования. Я и предложил чтобы в py2exe, появилать эта функция.
Если вы предлагаете написать новый собственный py2exe с возможностью шифрования, да еще за 5 дней, флаг вам в руки.


bw
p.s. Андрей Светлов выше все правильно сказал про надежность защиты. Могу добавить, что некоторым людям стоит больше внимания уделять не защите своих гениальных алгоритмов, а тестированию, что бы, не дай бог, софтина у конечного пользователя не свалилась в самый неудачный момент.
Заголовок данной темы “Шифрование кода Python”, а не “Как надо писать программ”, поэтому не подменяйте тему.
ZZZ
Андрей Светлов
Во первых, Питон - открытый язык, и появление “шифраторов” в большом количестве лично мне не очень-то по душе. Из эстетических соображений.
Я согласен с этим, но в тоже время я согласен и с тем, что лучше дать выбор. По мне так ОпенСорса хватает за глаза, но вот некоторым нет.

Андрей Светлов
Во вторых создание защиты - процесс творческий и сильно привязанный к защищаемому софту.
Поясните. Мне кажется, что защита/шифрование чего-либо не зависит от того, что это.

Андрей Светлов
В третьих и главных - никто, думаю, не хочет увидеть рядом с шифрующим py2exe такой же свободно распростроняемый и открытый дешифратор?
Меня не правильно поняли. И похоже, что все.
Я имел ввиду не опцию типа “shifrovanie = True”, а именно API для написания шифратора-дешифратора. Т.о. откытый дешифратор возможен только тогда, когда вы сами захотели его открыть. Ну или его у вас спёрли… :-)

Андрей Светлов
Текущего состояния дел в плане “API на плюсах” более чем достаточно
Я не согласен, но шевелится по этому поводу тоже не буду, потому что меня устравивает и отсутствие шифрования.
И, взгляните, Андрей, какой размер у этой нити. Проблема-то актуальна. Хоть пиши упаковщик/шифровальщик ("уповальщик") и продавай его… :-)

P.S. Шифрование ключём здесь, конечно, возможно, но тогда вам придётся передавать этот ключь вместе с программой, иначе её никто не сможет запустить. :-)
slav0nic
single exe (py2exe вроде как уже умеет)+ криптор exe (которые так любят малварщики (вирьмейкеры в прошлом:] )), только не сильно красиво выйдет
lumen2000
ZZZ
P.S. Шифрование ключём здесь, конечно, возможно, но тогда вам придётся передавать этот ключь вместе с программой, иначе её никто не сможет запустить. :-)
Очень интересно посмотреть, как можно зашифровать без ключа. Смысл в том, что бы не передавать ключ отдельно, а прятать его в самой программе.

slav0nic
single exe (py2exe вроде как уже умеет)+ криптор exe (которые так любят малварщики (вирьмейкеры в прошлом:] )), только не сильно красиво выйдет
А можно смысл фразы прояснить?
ZZZ
lumen2000
Очень интересно посмотреть, как можно зашифровать без ключа. Смысл в том, что бы не передавать ключ отдельно, а прятать его в самой программе.
Я понял это. Но если программы будут различатся лишь ключём, то быстро будет написан алгоритм для его выдерания и использования.
Андрей правильную мысль дал – нужен не сколько шифратор, сколько архиватор с зактытым алгоритмом для того, чтобы сломать было дороже, чем купить.

lumen2000
А можно смысл фразы прояснить?
Мдя… действительно странно написано…
Мне думается вот что. Есть программки, которые перекручивают другие программки так, чтобы максимально усложнить обратную разработку. Это очень интересная мысль.
Если это работает только в одну сторону и достаточно стабильно, то больше ничего не нужно! Разве что slav0nic+1 за то, что подумал не так как все.
Андрей Светлов
bw С моей точки зрения - полностью совпадает с моими же предложениями. Только изложено чуть иначе.

Ребята, вам что нужно? Если защитить свои исходники, чтобы парень из соседнего подъезда не смог их прочитать - “замотайте” их каким-нибуть примитивным способом и сделайте примитивный же import hook. Соседу будет лень ковырятся - он быстрее напишет все сам с нуля.

Если же требуется серьезная защита программы от копированя - не избежать “тонкой” работы по созданию этой самой защиты. Алгоритмы надежного шифрования известны и открыты, но полноценная защита ими не ограничивается - она с этого начинается. И всегда привязана к бизнес-схеме распространения продукта. Основной критерий - выручка/потери.
slav0nic
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 этого добра навалом, хотя для данных целей их не юзал, но думаю что сгодится.

также может прокатить простой вариант с пакерами, когда файл пакуется например через upx после чего изменяется заголовок файла, подробностей не помню ибо давно дело было;)

но опять же, всё надо пихать в 1 ехе, что не очень красиво=\, как это сделать - читать на http://www.py2exe.org/index.cgi/SingleFileExecutable
Madnezz
UP Не нашли за это время способ скрытия исходника?
Андрей Светлов
Достойный способ сокрытия был и три года назад. С тех пор ничего не изменилось.
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