Сделай Сам Свою Работу на 5

Ведение логических дефектов в заданный сектор





Сначала необходимо сказать несколько слов о физическом и логическом строении дорожки на гибком диске. Как известно, начало дорожек на дискете отмечено индексным отверстием. Каждый сектор на дорожке имеет две части: секторный ID маркер и собственно данные. ID маркер имеет шесть байт и дополнительные байты, которые идентифицируют его для контроллера накопителя на гибких магнитных дисках (НГМД) как секторный маркер, а не как данные. Эти шесть байт следующие:

· 1-ый. Номер дорожки с 0 по 79 включительно.

· 2-ой. Номер стороны или номер головки. Верхняя сторона обозначается 0, нижняя - 1.

· 3-ий. Номер сектора на треке с 1 по 18 включительно.

· 4-ый. Размер сектора в байтах: 0,1,2 или 3 обозначают соответственно, 128-,256-,512- или 1024- байта в секторе. По умолчанию формат DOS имеет 512 байт в секторе.

· 5-ый и 6-ой. CRC байты для контроля при помощи циклического избыточного кода возможных искажений.

Четыре первых байта секторного ID маркера обозначаются как CHRN. CRC-байты фактически содержат 16-битную контрольную сумму CHRN-байт, которая вычисляется, когда сектор записывается. Когда же сектор читается, контрольная сумма перевычисляется для прочитанных из CHRN данных и сравнивается с данными из байтов CRC. Любое расхождение вызывает CRC-ошибку ID маркера.



Следующими за ID маркером идут несколько меточных байт маркера начала данных (BOD) и 512 байт собственно данных. Еще два проверочных байта CRC следуют за данными. Они содержат контрольную сумму 512 байт данных, вычисленную при записи сектора.

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

Теперь нам понятна идея метода защиты, основанного на использовании CRC-ошибки данных. Ее возникновение достигается следующим образом. Стандартная операция записи данных в сектор включает шесть шагов:

· Включение мотора НГМД и короткое ожидание его разгона.

· Выполнение операции поиска заданного сектора и ожидание прерывания, указывающего на завершение данной операции.

· Инициализация микросхемы прямого доступа в память (DMA) 8237 для пересылки данных из памяти.



· Посылка команды записи микросхеме контроллера НГМД 765 и ожидание прерывания, указывающего на окончание пересылки данных.

· Получение информации о статусе контроллера НГМД.

· Выключение мотора.

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

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

 

Изменение параметров дисковода

Одной из схем создания защиты от копирования используется другая скорость вращения диска. Стандартная скорость вращения - 300 об/мин. Если ее понизить, скажем, до 280 об/мин, в то время как данные для записи передаются с прежней скоростью, то это понижение увеличивает плотность хранения данных на дискете, и на каждой дорожке образуется место для дополнительного десятого сектора. Это обстоятельство является основой защиты, так как работа с информацией, записанной на дискете, вращающейся с новой скоростью, возможна только при соответствующей модификации параметров дисковода.



Технология «ослабленных» битов

 

Способом записи информации на дискету является ее представление в виде 0 или 1. Данный метод защиты использует запись некоторого участка дистрибутивной дискеты с неопределенным уровнем сигнала. Таким образом, получается участок «ослабленных» битов. Данные с этого участка при их чтении несколько раз подряд будут восприниматься различным образом ввиду того, что сигнал может преобразовываться только в два дискретных значения - 0 или 1.

При копировании дистрибутивной дискеты участок «неопределенных» данных примет какое-то фиксированное значение.

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

Физическая маркировка дискеты

Одной из наиболее известных технологий защиты от копирования является физическая пометка дискеты лазерным лучом путем ее прожигания. Такой дефект приводит к искажению данных в секторе и возникновению CRC ошибки данных при его чтении. При копировании пробивка не воспроизводится на принимающей дискете, хотя данные переписываются. Таким образом, CRC-ошибка данных при чтении сектора с копии не возникает.

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

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

Рассмотренная технология применяется фирмой Vault Corporation в средстве PROLOK и его дальнейших модификациях.

Применение физического защитного устройства

 

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

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

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

Один из наиболее распространенных в России защитных устройств это Hasp by «Алладин». Это небольшое устройство, подключаемое к параллельному порту компьютера. Существует несколько разновидностей ключей с памятью, с часами. Обращение к HASP происходит исключительно через API ключа и, к тому же, через одну и ту же точку. Соответственно, туда ставится подпрограмма – эмулятор ключа. Кроме того, возможно копирование самого ключа или аппаратная эмуляция.

Привязка» к компьютеру

 

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

Гораздо удобнее иметь необходимый программный продукт записанным на винчестере. Поэтому необходимо, чтобы контролирующая часть защищаемой программы (КЧЗП) «запомнила» свой компьютер и потом при запуске сравнивала имеющиеся характеристики с характеристиками «родного» компьютера. В случае их расхождения можно считать, что программа незаконно скопирована, и прервать ее выполнение.

Для этого надо найти какие-то параметры, которые бы индивидуально характеризовали каждую вычислительную систему. На самом деле это весьма нетривиальная задача, поскольку открытая архитектура построения компьютеров IBM PC подразумевает их обезличенность.

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

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.