Глава 11. Привязка к носителям информации | Телекоммуникации вчера, сегодня, завтра

Последовательность действий при создании объекта радиосвязи

Бланк формы №1 ТАКТИКО-ТЕХНИЧЕСКИЕ ДАННЫЕ РЭС

Поставка оборудования обеспеченного радиочастотами

Витрина



Глава 11. Привязка к носителям информации

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

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

В отдельных случаях требуется некоторый способ создания и контроля уникального носителя.

11.1. Ключевые дискеты

Во времена DOS существовало несколько способов создания дискет.

Один из способов — использование дорожек с нестандартным размером сектора. По историческим причинам почти все перезаписываемые носители информации на компьютерах, которые назывались IBM-совместимыми, имели размер сектора, равный 512 байтам. В базовую подсистему ввода-вывода (Basic Input-Output System, BIOS) были встроены возможности работы с секторами других размеров, но для DOS в пределах одного диска все сектора должны были иметь один и тот же размер.

Защита заключалась в том, что одна из дорожек, не содержащая полезных данных, форматировалась с нестандартным размером сектора, например 128 или 256 байт, и на нее записывалась ключевая информация. Для DOS, уверенной в неизменности размера сектора не протяжении всего диска, эта дорожка выглядела поврежденной, но программа через BIOS могла читать и записывать на нее необходимые данные. Очевидно, что такой подход позволял довольно легко повторять манипуляции на уровне BIOS и тиражировать ключевые дискеты.

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

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

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

Защита пыталась читать или писать заранее известную область диска, и если запрос проходил без ошибки, то дискета не признавалась подлинной.

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

Несмотря на то, что дискеты практически вышли из обихода с появлением перезаписываемых компакт-дисков, последний раз защиту, основанную на использовании испорченных секторов на дискете, мне довелось увидеть в январе 2001 года. Так был защищен один из пакетов программ, предназначенных для восстановления забытых паролей.

Самый продвинутый способ создания ключевых дискет реализовывается на уровне портов ввода-вывода контроллера гибких дисков — самом низком уровне, доступном программисту. Используя хитрые методы записи информации, например форматирование дорожки, прерываемое в ходе выполнения, удавалось создавать дискеты с такими характеристиками, которые практически невозможно было повторить даже с помощью специальных контроллеров, например платы Option Board Deluxe, разработанной компанией Central Point Software.

Но в начале 90-х годов появилась программа FDA (Floppy Disk Analyser), разработанная российской компанией Мединком. Эта программа была способна анализировать содержимое дорожек дискеты и с высокой степенью точности создавать копии. Большая часть защищенных дискет копировалась в автоматическом режиме, а для особо сложных случаев был предусмотрен режим ручного управления копированием.

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

Однако с появлением операционной системы Windows NT, под которой прямая работа с контроллером жестких дисков из прикладной программы стала невозможной (для этого требовалась установка драйвера), ключевые дискеты практически перестали применяться для защиты от копирования. К тому же, им на смену пришли компакт-диски.



Поиск по сайту


Смотрите также