Все же, что нажито непосильным трудом, все пропало!
А.С. Шпак, пострадавший от взлома
Я думаю, что на месте обокраденного Шпака боится оказаться каждый программист, даже начинающий разработчик, только-только оттестировавший последнюю версию своего продукта и выложивший его на продажу на одном из shareware-серверов.
А может, не взломают? Это единственная мысль, занимающая головы новичков. Взломают. Если программа актуальна и нужна пользователям, ее обязательно взломают — такова печальная статистика.
Конечно, хорошо, если вашим продуктом пользуются многие, но совсем хорошо, когда за его использование еще и платят. Недели и месяцы, проведенные перед монитором за отладкой программы и поиском багов, стоят не только морального удовлетворения от популярности продукта, но и материального вознаграждения.
Собственно, вопрос даже не в том, как защитить программу со стопроцентной гарантией, а в том, как успеть получить прибыль до взлома. Ответ прост: во-первых, усложнить защиту, чтобы на ее взлом ушло больше времени, а во-вторых, не затягивать с выпуском следующей версии.
Хотя на самом деле есть еще один вариант. Можно положиться на честность сограждан и понадеяться на помощь пиратов. То есть никаких особенных механизмов защиты не придумывать, а оставить все как есть. И тогда благодаря пиратам ваш продукт (разумеется, при условии его нужности и полезности людям) станет бешено популярным среди населения. А вам останется лишь собирать дань с наиболее честных пользователей, готовых выложить небольшую сумму за легальный софт.
Но большинство разработчиков предпочитает защититься. Конечно, и вы можете попробовать защитить свое детище, причем самыми современными алгоритмами и программами. Но подумайте, во сколько раз вырастет стоимость продукта и будут ли его за такие деньги покупать? Запомните самое важное правило: стоимость защиты должна быть соизмерима со стоимостью самого продукта!
Поскольку сегодня мы говорим о защите недорогих shareware-продуктов, давайте сразу определим те подходы, которые в этом случае наиболее уместны. Самым рациональным представляется использование программных методов. Судите сами: вы не распространяете продукт на физических носителях (оптических дисках), следовательно, защищаться от их копирования вам не надо. Затем, вряд ли стоимость вашей программы настолько велика, что в нее безболезненно можно включить стоимость электронного ключа. Значит, и этот метод отпадает. Что остается? Только защита программного модуля с помощью лицензионных ключей.
Собственно, в общем случае схема понятна и известна давно — программа работает (или устанавливается) только при указании пользователем регистрационного ключа (серийного номера). Для того чтобы одним ключом мог воспользоваться один пользователь (не будем рассматривать здесь корпоративные лицензии), ключ надо активировать.
Сделать это можно как минимум двумя способами.