Защита программ от нелегального копирования 199

7.4. МОДУЛЬ F_Prot ДЛЯ ЗАЩИТЫ ПРОГРАММ

В заключение рассмотрим программный модуль F_Prot, реализующий некоторые из описанных мер борьбы с нелегальным копированием (прил.ПЮ.2). Разумеется, было бы неразумно в книге, рассчитанной на массового читателя, излагать все подробности сложной системы защиты. Средства, используемые в модуле, вызовут улыбку у профессионалов, тем не менее они достаточны, чтобы отпугнуть многих любителей легкой наживы.

7.4.1. Описание модуля

Модуль рассчитан на защиту как мобильных, так и стационарных программ. Основной процедурой модуля является процедура ProtCheck, осуществляющая контроль копии. Легальность мобильного варианта программы устанавливается за счет контроля скрытого сектора на ключевой дискете, в случае стационарного варианта проверяется дата создания ПЗУ. Две другие подпрограммы модуля позволяют установить защиту файла на жестком диске (подпрограмма SetOnHD) и снять защиту со стационарного варианта программы (подпрограмма RemoveFromHD).

Поскольку до сих пор мы почти не касались разницы в способах защиты мобильного и стационарного вариантов программы, имеет смысл рассмотреть эту проблему более подробно. Как уже говорилось, стационарная программа учитывает индивидуальные характеристики компьютера и может исполняться только на одном конкретном ПК. Защита таких программ обычно не вызывает серьезных проблем, во всяком случае для этого программист может использовать очень большой набор индивидуальных признаков (см. n.7.2J. Наоборот, мобильная программа не может связываться с конкретным ПК и должна учитывать какие—то привносимые признаки, т.е. признаки, которые относительно просто создать на любом ПК на время работы программы. Здесь выбор признаков намного беднее: чаще всего для этих целей используются дополнительные аппаратные устройства (ключевая дискета или аппаратный ключ), которые придаются каждой легальной копии и без которых программа не может работать нормальным образом. Если отбросить достаточно экзотичный для отечественного рынка способ защиты с помощью аппаратного ключа, в распоряжении программиста остается единственный вариант защиты мобильной программы — с помощью эталонной (ключевой) дискеты. Именно этот вариант и реализуется в модуле F_Prot.

Для создания легальной копии программы должна использоваться особая технология подготовки дискеты. Эта особенность в данном случае заключается в том, что на стандартной дискете диаметром 5'/4 дюймов, рассчитанной на емкость 360 Кбайт, создается дополнительная дорожка из нестандартных 256—байтных секторов. Один из секторов этой дорожки используется для записи ключевой информации. В процессе проверки легальности копии программы процедура ProtCheck считывает этот сектор и контролирует его содержимое. Для создания ключа можно использовать программу Diskette, описанную в п.7.2,5.