Реализация защиты и ее взлом
Реализация защиты и ее взлом
Как видно из разд. "Виды защиты" этой главы, сегодня для shareware-рынка актуальны два типа защиты программ: ограничение по времени работы и ограничение по функциям. О демо-версиях говорить особенно не нужно, т. к. это очень простой и одновременно очень непопулярный вариант реализации защиты shareware-программ.
При ограничении по времени программа хранит в каком-нибудь файле дату первого запуска и при очередном запуске проверяет, сколько дней осталось до окончания ознакомительного срока. Если ограничение по времени исчисляется в количестве запусков, то программа при первом запуске записывает в файл начальное значение счетчика и при каждом последующем запуске это значение увеличивается па единицу и проверяется, не превышен ли лимит на число запусков, установленный автором. В случае положительного результата (ознакомительный срок закончен) программа перестает работать.
Что касается ограничения по функциям, то здесь тоже не нужно много объяснять. При старте программа проверяет, зарегистрирована ли она, и в зависимости от этого решает, разблокировать ли недоступные для незарегистрированных пользователей функции или нет.
В обоих случаях — при временном и функциональном ограничении — программа разблокируется посредством ввода регистрационного ключа. Эти ключи бывают двух видов: статические, которые заранее определены автором программы, и динамические, т. е. генерируемые в зависимости от каких-то исходных данных — чаще всего имени пользователя.
Как только программа появляется на shareware-рынке, она почти сразу привлекает внимание взломщиков, которые, немного потрудясь, выпускают к программе кряки.
Кряки делятся на две основные группы: патчи и кодогенераторы. Патч (patch) — это небольшая программка, которая модифицирует один или несколько файлов исходной программы таким образом, чтобы отключить защиту. Кодогенератор (keygen) — также небольшая программа, которая генерирует регистрационные ключи, введя которые можно разблокировать ту или иную shareware-программу (Рисунок 6.3). Иногда крякеры публикуют в Интернете не кодогенератор, а просто подобранный регистрационный номер (serial number, reg. code или просто serial code).