Я уже писал про существующие навесные защиты для шароварных программ. Как правило все они предлагают, как собствено защиту от взлома, так и встроенное управление лицензиями – создание\проверку регистрационных ключей. Штука это конечно мега-удобная, избавляет от кучи хлопот, необходимости думать\делать, ну и в целом делает жизнь гораздо проще, особенно если программу вы уже написали, выпустить ее не в терпежь, а слово криптография вгоняет в ступор 🙂
Но есть и минусы: навесные зашиты не идеальны, и возможно со временем вы захотите перейти на другую, а много ключей уже распозлось по счастливым клиентам. Или вы решите занятся экспансией и ворваться на рынки карманных устройств или альтернативных ОС. Ну или у вас просто нет денег на навесную защиту, а то, что вас будут ломать вы еще пока просто не верите. Я сам много лет назад использовал подобную схему и теперь, к сожалению, жестко привязан к выбранной тогда защите. Ее смена означает приличную нагрузку на саппорт по раздаче новых ключей все клиентам, удовольствие еще то…:(
В новом проекте я делаю свою систему лицензий, что дает гораздо большую свободу действий. Я могу использовать навесную защиты или нет, могу менять ее от версии к версии, а так же не боюсь того что я портирую программу под винмобайл 🙂
Ничего сложного или сверхестественного в собственной системе лицензий нет, самостоятельно написать ее под силу даже среднему программисту (даже я уже почти смог). Сразу оговорюсь, что речь идет только о регистрационных ключах и совсем не идет о защите от взлома. Наша цель сейчас не защита от кряка, но теоретическая невозможность создания кейгена. Все таки кейген намного хуже взломанной версии.
Первое, что надо сделать – придумать формат лицензии. Тут все просто – думаете какие данные вы хотите хранить в ключе, потом выбираете удобнуй формат записи. Дальше пишете код который собирает все это вместе и сериализует – для кейгена. И код который разбирает данные по косточками – для программы. На придумывания формата у меня ушло 10 минут, на написание кода и уточнения формата еще 2 дня:)
Дальше нас ждет мир крифтографии. Для наших целей совсем не нужно быть экспертом, все уже давно расчитанно, придумано, доказано и проверенно. Но об этом уже в следующей серии.