русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Средства защиты носителей информации. Запись за пределами поля форматирования. Изменение длины сектора. Чередование секторов

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

  • нанесением магнитной метки;
  • нанесением физической метки.

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

  • Вынос метки за пределы стандартного поля копирования;
  • Нестандартная разметка дорожки (дорожек) дискеты;
  • Привязка к временным параметрам чтения/записи;
  • Комбинированные методы (сочетание первых трех).

Для этого можно применить также прерывание INT 13h, изменив соответствующим образом таблицу базы гибкого диска. Ссылка на таблицу базы диска находится по адресу: (0000:0078h)
Стандартное содержание таблицы базы диска для дискет 1.44 Мбайт:


Смещение:

0

1

2

3

4

5

6

7

8

9

10

Содержание:

DF

02

25

02

12

FF

54

F6

01

08

Из параметров базы диска наиболее интересны следующие:

  • размер сектора (0 —128 байт, 1 — 256 байт, 2 — 512 байт, 3 — 1024 байта);
  • номер последнего сектора на дорожке;
  • межсекторный интервал для операций чтения и записи;
  • межсекторный интервал для операции форматирования.

Времянезависимые способы защиты от копирования

Инженерные дорожки

Создание дорожек за пределами рабочей зоны диска, например создание 41 дорожки для дискеты емкостью 360 Кбайт или 81 дорожки для дискеты емкостью 1,2 Мбайт.
Другой пример - использование нестандартного номера дорожки. Программа форматирует дорожку (стандартным образом) с номером 81. Обычно считается, что дискеты могут содержать 40 или 80 дорожек, соответственно с номерами 0...39 или 0...79, однако возможно использование и дорожек с большими номерами. Обычные программы копирования будут копировать только 40 или 80 дорожек, "не заметив" нашей лишней дорожки.
Из-за недостатков и ограничений всех вышеперечисленных способов защиты наибольшее распространение в нашей стране получил способ идентификации программы и носителя с помощью записи идентифицирующей информации на инженерные цилиндры. Инженерными называются цилиндры, которые формируются при нестандартных параметрах форматирования. Если цилиндры нумеруются от нуля, для дискет объемом 360 Кбайт инженерными будут являться цилиндры с номерами начиная с 40, а для дискет 1,2 Мбайт - начиная с 80. Поскольку информация об этих цилиндрах для DOS отсутствует, они не копируются стандартными средствами (например, командой DISKCOPY). Поэтому само наличие инженерных цилиндров говорит о том, что программа находится на легальном носителе. В качестве полезной информации на такие цилиндры может записываться разрешенное число копий, которое уменьшается на единицу после каждой инсталляции.
Как уже было отмечено, дискеты с паролем на инженерных цилиндрах нельзя скопировать стандартными средствами, но существуют специальные инструментальные средства, достаточно широко распространенные (например, программы EXPLORER или COPYWRIT), которые позволяют это сделать. Программисты из группы 2В (Велюр В.А., Серегин В.В., Сидоров В.А.) в своей статье показали, как с помощью этих средств скопировать дискеты, защищенные программами JAWS, НОТА, SHIELD или системой защиты СП "Диалог". Тем не менее, находятся разработчики, пытающиеся использовать защиту, основанную на записи различных параметров на инженерные цилиндры.

Нестандартная длина сектора

Форматирование отдельных дорожек с размером сектора, отличным от стандартного для MS-DOS, например с размером 128 байт или 1024 байт.
Самое простое, что можно сделать, - изменить размер секторов на дорожке. Приведем простую программу, которая форматирует двадцатую дорожку диска, создавая на ней сектора размером 256 байт. После форматирования программа записывает в первый сектор нестандартной дорожки строку, введенную с клавиатуры. Затем для контроля содержимое этого сектора считывается и отображается на экране. Обратите внимание на изменения в таблице параметров дискеты - они необходимы для использования нестандартного размера сектора.
Сформатированную таким образом дорожку можно прочитать только при знании параметров таблицы базы диска.
Интересным методом является создание на дорожке дискеты сектора большой длины. В этом случае последовательно выполняются 2 шага:

  • форматирование дорожки с большим числом секторов малой длины, но в таблице форматирования указывается, что будет сформатирован один или несколько секторов большой длины;.
  • производится запись в сектор с большой длиной. При этом, разумеется, Вам понадобятся 2 таблицы базы диска.

Способы защиты, опирающиеся на временные параметры

Все PC оснащаются относительно хорошим чипом таймера, Intel 8253 или его функциональным эквивалентом. Работая с частотой 1 193 180 Гц, он позволяет измерять интервалы времени с разрешением 840 наносекунд (т.е. он может измерить время выполнения ОДНОЙ команды деления на 16 МГц-ном 386, которое может составлять до 2.4 мс). Такой таймер более чем соответствует требованиям измерения интервалов времени для гибкого дисковода (передача одного байта данных на самой быстрой из возможных скоростей (500 KBS) занимает 16 мс), так что точность подобных измерений ограничивается не разрешением таймера, а случайными колебаниями скорости вращения диска.
Форматирование отдельных дорожек с использованием фактора чередования секторов и с последующим анализом времени доступа к секторам для обычных стандартных дорожек и для нестандартных дорожек. Нарушение последовательности секторов. Этот подход заключается в нарушении стандартной последовательности секторов, т. е. сектора на дорожке в процессе форматирования нумеруются не последовательно, начиная с единицы, а в другом порядке (вообще номера секторов могут выбираться произвольно). Можно нарушать и другие значения в параметрах CHRN сектора. Нарушение последовательности секторов и другие нарушения в параметрах CHRN проверяются при выполнении команды «Чтение идентификатора».
Нарушение стандартного значения поля N позволяет читать/записывать данные за пределами реального сектора. Следует отметить, что программа COPYIIPC неверно копирует дорожку, на которой последний сектор имеет N, большее или равное 6. При копировании разрушаются первые сектора на дорожке.
Более интересный способ защиты дискет от копирования связан с использованием при форматировании нестандартного чередования секторов на дорожке.

Проверка чередования секторов на дорожке

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

Просмотров: 8179

Вернуться в оглавление:Шпаргалки по компьютеру




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.