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

Конфигурация системы и типы составляющих ее устройств

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

Рассмотрим способы определения параметров системы, которые используются затем в КЧЗП.

Для IBM AT параметры системы хранятся в так называемой CMOS памяти. Она имеет 64 однобайтовых регистра, пронумерованных от 00 до 3Fh. Назначения некоторых регистров представлены в табл. 1.

Таблица 1 Назначение некоторых регистров CMOS памяти
РЕГИСТР НАЗНАЧЕНИЕ
00h Секунды
01h Second Alarm
02h Минуты
03h Minute Alarm
04h Часы
05h Hour Alarm
06h День недели
07h День месяца
08h Месяц
09h Год
10h Типы НГМД A: и B: (0000 - не установлен; 0001 - 360Кб; 0010 - 1.2Мб; 0011 - 1.44Мб)
12h Типы НЖМД C: и D: - для AT; D: - для PS/2
14h Байт установленной периферии
15h-16h Размер памяти на основной системной плате (0100h - 256Кб; 0200h - 512Кб; 0280h - 640Кб)
17h-18h Размер памяти канала ввода/вывода
30h-31h Размер дополнительной памяти сверх 1Мбайта

Регистр 10h содержит информацию о НГМД: его биты 7-4 описывают накопитель A, а биты 3-0 - накопитель B. Аналогично сведения о НЖМД помещаются в регистр 12h.

Информация о периферии хранится в байте 14h CMOS памяти. Для ее получения надо сначала записать номер регистра (в данном случае 14h) в порт с адресом 70h, а затем прочитать содержимое регистра через порт 71h. (Для записи какого-то значения в регистр CMOS памяти надо занести адрес регистра в порт с адресом 70h, а значение - в порт 71h.). Значения битов регистра 14h представлены в табл. 2.

Таблица 2 Назначение битов 14h-го регистра CMOS памяти
БИТ СОДЕРЖИМОЕ ЗНАЧЕНИЕ
7-6 00/01 Один/два НГМД
5-4 11/01/10 Видеорежим (монохромный/цветной 40*25/цветной 80*25)
3-2 Не используется
Имеется математический сопроцессор
0/1 Нет/имеется НГМД

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



Прерывание 21h DOS компьютера AT имеет функции 32h и 36h, связанные с определением характеристик установленных накопителей. Функция 36h сообщает текущие сведения о доступном пространстве на диске, номер которого загружается в регистр DL. Она возвращает:

  • число секторов на один кластер в регистре AX;
  • число незанятых кластеров - в BX;
  • число байтов в одном секторе - в CX;
  • число кластеров на диске - в DX.

Теперь легко узнать, каков объем диска, номер которого помещался в регистр DL. Для этого достаточно вычислить произведение значений регистров AX,CX,DX.

Функция 32h, позволяет получить таблицу с параметрами накопителя, номер которого загружен в регистр DL. Ее адрес будет содержаться в регистрах DX:BX. Подробное описание байтов этой таблицы можно найти в любом справочнике по прерываниям.

Состав установленного оборудования проверяется при загрузке, и результат проверки помещается в регистр статуса. Этот регистр занимает два байта, начиная с адреса 0040:0010, и в табл. 3 представлены значения его битов.

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

В языке Turbo C имеется специальная функция BIOSEQUIP из библиотеки стандартных функций <bios.h>, которая возвращает целое число, описывающее оборудование, входящее в систему. Возвращаемое значение интерпретируется набором битовых полей, как представлено в табл. 4.

Таблица 3 Регистр состава установленного оборудования
БИТ СОДЕРЖИМОЕ ЗНАЧЕНИЕ
0/1 Нет/есть НГМД
0/1 Нет/есть математический сопроцессор 80x87
2-3 Оперативная память 64 Кбайта (в AT не используется и всегда равна 11)
4-5 11/01/10 Начальный видеорежим (монохромный/цветной 40*25/ цветной 80*25)
6-7 00/01/10/11 Число НГМД, если бит 0 =1 (соответственно 1,2,3,4)
  XT/AT не используется (наличие микросхемы DMA)
9-11   Число адаптеров коммуникации RS232
Есть игровой адаптер (в AT не используется)
  XT/AT не используется
14-15   Число присоединенных принтеров

Еще одно прерывание BIOS - 15h через функцию C0h позволяет получить адрес в ПЗУ, определяемый регистрами ЕS:BX, по которому находится табл. 4.

Таблица 4
БАЙТЫ ЗНАЧЕНИЕ
0-1 Число байтов в таблице
Код модели компьютера (см. выше)
Различие между AT и XT/286 (подмодель)
Номер ревизии BIOS
80h - 3-й канал DMA, используется BIOS 40h - второй контроллер прерываний i8259 установлен 20h - таймер реального времени установлен 10h - int15h/AH=4Fh вызывается перед int 9h 8h - допустимо ожидание внешнего события 4h - расширение BIOS размещено в 640 Кбайтах 2h - шиной является Micro Channel вместо шины ISA 1h - резерв Замечание: 1/10/86 XT BIOS возвращает некорректное значение 5-го байта

Для определения типа дисплея надо проверить бит номер 1 байта, находящегося по адресу 0040:0087. Когда этот бит равен 1 - подсоединяется монохромный дисплей, а когда он равен 0 - цветной.

Получение инженерной информации жесткого диска

Контроллер IDE, SCSI имеет специальную команду выдачи информации о подключенном устройстве. Программа IdeInfo выдает блок 512 байт информации о жестком диске, если в системе есть контроллер IDE и жесткий диск. Информация содержит параметры диска и его серийный номер. Некоторые OS не дают доступ к этой информации.

Опрос справочников

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

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

Сравнение введенной информации (пароля) с соответствующей информацией из текста справочника может быть осуществлено двумя способами:

1. Путем поиска информации в текстовом файле, расположенном на магнитном носителе, по указанным координатам и сравнения ее с введенной. Например, программа выдает запрос: "Введите пятое слово третьего абзаца седьмой страницы." Пользователь вводит слово. Программа считывает из текста справочника пятое слово третьего абзаца седьмой страницы и сравнивает его с введенным.

2. Путем сравнения слова из определенной части текста, представленного распечаткой, с данными, содержащимися в защищающей программе. Этот случай является как бы обратным к случаю 1. Программа содержит информацию, что в тексте справочника такие-то слова находятся в таких-то местах (например, слово "программа" является пятым словом третьего абзаца седьмой страницы, слово "справочник" - первое слово второго абзаца пятой страницы и т.д). В ответ на запрос программы, описанный в первом способе, пользователь в тексте справочника по указанным координатам ищет слово и вводит его. Программа сравнивает полученное слово с информацией, которой она располагает.

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

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

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



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