Исследование системных областей дисков, страница 9

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

Большинство операций с диском для семейства PC достаточно легко можно выполнить с помощью служб, обеспечиваемых выбранным вами языком программирования. Однако имеется два очевидных обстоятельства, при которых могут потребоваться более сложные методы. Одно из них имеет место, когда программирование включает управление диском на том же уровне, на котором это делает система DOS. К этому уровню пришлось бы обратиться, если бы вы писали программу, аналогичную программе CHKDSK системы DOS или программам Norton Utilities. Другое обстоятельство имеет отношение к защите от копирования. Так или иначе, все схемы защиты от копирования для дискеты включают некоторые типы нестандартных операций ввода-вывода. Данный тип управления обычно ведет к использованию служб ROM BIOS, однако может также контроллера дисковода.

Защита от копирования

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

Имеется множество способов добиться защиты от копирования для дискет. Вероятно, наиболее распространенные методы включают переформатирование секторов на отдельных дорожках дискеты с помощью программ форматирования ROM BIOS. Так как система DOS не в состоянии прочитать секторы, характеристики которых не соответствуют требованиям для конкретных форматов, то команда COPY не может копировать диск, который имеет сектор с нестандартным размером, расположенный среди обычных секторов. Данное ограничение системы DOS вдохновляет некоторые компании на создание программ копирования, которые могут читать и копировать секторы любых размеров. Поэтому данные методы не являются особенно эффективными средствами защиты от копирования.

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

Многие методы защиты для дискет не пригодны для фиксированных дисков в основном из-за того, что пользователям фиксированных дисков необходимо иметь возможность выполнять архивное копирование программ, расположенных на их дисках. Это значит, что вам следует избегать использования схем защиты от копирования, которые не позволяют создавать копии фиксированных дисков, так как для систем DOS или ROM BIOS становится невозможным чтение отдельных частей диска. Большинство схем защиты от копирования для фиксированных дисков, используемых в настоящее время, основываются на применении методов шифрования данных, которые отбивают охоту заниматься пиратством в области программного обеспечения, не запрещая при этом делать легальное копирование.

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

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