Реферат: Система защиты от несанкционированного копирования

VESAVersion – версия VBE (VESA BIOS Extension);

VideoMemory – объём видеопамяти;

VESAOEMString – информация производителя видеокарты.


Рассмотрим теперь процесс определения этих характеристик.


??????????? ????? ????.

В области данных BIOS по адресу 0:0410h хранится двухсловная переменная, называемая списком оборудования. Список оборудования включает в себя число НГМД. Список оборудования заполняется компьютером во время POST (Power-On Self-Test), ROM-программы, выполняемой во время включения ПЭВМ. Биты 6-7 содержат число НГМД, уменьшенное на единицу.


??????????? ???? ??????????? ????, ?????? ??????? ? ??????????? ??????.

В современных компьютерах для хранения текущей конфигурации аппаратных средств используется энергонезависимая память CMOS. Эта память с точки зрения программиста состоит из набора ячеек, доступ к которым для чтения и записи выполняется через порты ввода-вывода с адресами 70h и 71h. Процедура чтения ячейки CMOS состоит из двух шагов. На первом шаге программа записывает в выходной порт с адресом 70h номер ячейки, из которой необходимо прочитать информацию. На втором шаге программа читает содержимое данной ячейки из входного порта с адресом 71h. В памяти CMOS хранится текущее время и дата, сведения о конфигурации системы, результат тестирования при включении питания и другая информация. В том числе в ячейке с адресом 10h хранится тип накопителей НГМД, в ячейках с адресами 15h-16h – объём основной памяти и в ячейках с адресами 17h-18h – объём расширенной памяти (это значение дублируется в ячейках 30h-31h).


??????????? ???? ??????? ROM-BIOS.

Дата издания ROM-BIOS в коде ASCII хранится в области данных BIOS по адресу F000:FFF5 и занимает 8 байт.


??????????? ???? ???????????? ?????????? ? ??????????, ??????????????? ??? ???????????.

Для определения процессоров младше Pentium использована методика, изложенная в [14].

Способ распознавания процессоров Intel 8086/8088 основан на том факте, что биты 12-15 регистра FLAGS всегда установлены в единицу. Прежде всего программа переписывает текущее содержимое регистра FLAGS в регистр AX. Для этого используется стек:

PUSHF

POP AX


Далее программа пытается записать нулевые значения в биты 12-15 регистра FLAGS:


AND AX,0FFFh

PUSH AX

POPF


Теперь нужно проверить, изменилось ли содержимое указанных битов регистра FLAGS. Для этого новое содержимое регистра FLAGS переписывается через стек в регистр AX, а затем после наложения маски 0F000h, сравнивается со значением 0F000h:


PUSHF

POP AX

AND AX,0F000h

CMP AX,0F000h

JE this_8086


Если биты 12-15 остались установленными в единичное значение, программа работает на процессоре Intel 8086/8088, если нет – в компьютере установлена более старшая модель процессора.

Программные коды для определения других типов процессора не приводятся, так как они аналогичны приведённым.

В процессоре Intel 80286, когда он работает в реальном режиме адресации, биты 12-15 регистра FLAGS всегда сброшены в нуль, что можно использовать для обнаружения этой модели процессора.

Для того, чтобы отличить процессор Intel 80386 от процессоров старших моделей, можно попробовать установить в регистре EFLAGS бит 18. Этот бит был впервые определён в процессоре Intel 80486 для сигнализации ошибки выравнивания. Его невозможно установить в процессоре Intel 80386.

Отличительная особенность процессора Intel 80486 – невозможность изменения состояния бита 21 регистра EFLAGS. Этот бит используется процессорами Intel Pentium и более старшими моделями процессоров Intel для определения возможности вызова команды идентификации процессора CPUID.


В новых процессорах фирмы Intel (включая все процессоры Pentium и старше) появилась новая команда CPUID, специально предназначенная для определения модели процессора. В программе эту команду можно определить в виде макроса следующим образом:


CPUID MACRO

DB 0Fh

К-во Просмотров: 405
Бесплатно скачать Реферат: Система защиты от несанкционированного копирования