Уроки по Delphi



         

Урок23. Защита программы от бесплатного использования. Испытательный срок. - часть 4


01.gif (2216 bytes)

procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

Sleep(5000); //Ждать 5 секунд, после чего процедура закрытия окна продолжится

end;

2. Отказ от работы после истечения заданного срока. Довольно большой процент программ, имеющих изначально не тронутую хакерами защиту, имеют такой способ испытательного срока.

Слабым местом для этого вида защиты есть то, где вы храните информацию о первом запуске программы (дата, время, количество запусков и т.п.). Наиболее оптимальным местом хранения такой информации есть реестр windows. Реже - ini файлы, еще реже - другие файлы.

Почему реестр, а не другое место. На мое мнение, для чайников туда место закрыто (некоторые даже не знают что это такое), обилие информации, среди которой можно затерять вашу скрытую информацию. Самым идеальным будет совместное использование как реестра, так и INI файла. Если в одном из них информация уничтожена начинающим хакером, то вы всегда можете это обнаружить и программно наказать. Сразу скажу, что есть хорошо известные многим программы, которые отслеживают любые изменения в реестре, предательски выдавая добавленные строки. Достаточно их удалить и произойдет сброс счетчика дней.

Программа с таймером в реестре работает по такому принципу. Первый запуск программы, поиск в реестре вашей специальной записи. Если таковой нет (первый запуск), то она создается. Запись включает в себя дату и время запуска.

ВНИМАНИЕ! Многие хакерские примочки не что иное, как простой запускатель программы с переводом времени (переводится время назад и программа запускается). Поэтому повторяем операцию записи последнего запуска обязательно и при завершении работы программы, возможно даже после определенного времени работы, скажем в 5 минут.

Последующие запуски сводятся к чтению данных и исправление их на текущее, за одним исключением. Если текущее время меньше, чем было в прошлом запуске (время было переведено назад), то, во-первых, оно переписывается под текущее (время перевели, например, чтобы в бухгалтерской программе провести задним числом документ, многие программы неправильно решают, что их пытаются обмануть и блокируют свою работу), во-вторых увеличивается специальный штрафной балл на единицу, соответственно, срок использования программы увеличивается на единицу дней.




Содержание  Назад  Вперед