Я сам довольно долго использовал эту характеристику для защиты одной из своих программ. Насколько мне известно, десятки попыток нелегального переноса этой программы окончились неудачей. Тем не менее такой способ защиты нельзя считать идеальным по многим причинам. Проверка номера кластера выполняется далеко не так просто, как проверка типа ПК или даты изготовления ПЗУ, поскольку в стандартном Турбо Паскале нет средств для работы с дисками на физическом уровне. Однако главный недостаток заключается в другом: любое изменение местоположения файла даже в пределах одного каталога приводит к тому, что ранее установленная копия становится нелегальной. Это крайне неудобно для пользователя, в особенности если он часто прибегает к процедуре переупорядочения файловой структуры с помощью утилиты типа программы П.Нортона Speed Disk.

Для проверки номера кластера можно использовать модуль F_Disk, описанный в гл.3. В него входит процедура GetDirItem, возвращающая элемент каталога для заданного имени файла. Параметр FirstC этого элемента содержит интересующий нас номер.

Следующая программа выведет номер кластера для «своего» файла (т.е. ЕХЕ— файлйг в котором она расположена). Для нормальной работы программы в среде Турбо Паскаль она должна компилироваться на диск.

Uses F_Disk;

var

DI: Dir_Type;

begin

GetDirItem(ParamStr(0),DI) ;

WriteLn('Файл ',ParamStr(0),

' начинается с кластера ',DI.FirstC) end.

Если Вы считаете, что номер единственного кластера не обладает необходимой степенью индивидуальности, Вы можете проверять цепочку кластеров по таблице FAT или начальные кластеры нескольких файлов.

Разумеется, такая проверка может использоваться для защиты только стационарных программ.

7.2.4. Проверка состава аппаратных средств

Программа может проверить объем доступной оперативной памяти, наличие и объем расширенной памяти, тип центрального процессора и приблизительную скорость его работы, наличие математического сопроцессора, количество и тип дисководов для гибких дисков, параметры физического жесткого диска, количество логических дисков, количество и тип каналов для подключения внешних устройств. Вот, пожалуй, и все. Каждая из этих характеристик может повторяться в тысячах других ПК, однако все они в комплексе будут достаточно индивидуальны и поэтому могут с успехом использоваться для защиты стационарных программ.

Некоторые иностранные фирмы для защиты мобильных программ выпускают так называемые электронные ключи — относительно дешевые