MS-DOS для программиста


Привязка к BIOS


Рассмотрим теперь использование BIOS для защиты от копирования программ с жесткого диска.

Программа может определить дату изготовления BIOS, прочитав 8 байт из области памяти, расположенной по адресу F000h:FFF5h.

Более подробную информацию о BIOS можно получить, воспользовавшись функцией C0h прерывания INT15h . Эта функция возвращает в регистрах ES:BX адрес таблицы конфигурации:

Смещение, байт Размер, байт Описание
0 2 Размер таблицы в байтах
2 1 Код модели компьютера
3 1 Дополнительный код модели
4 1 Версия изменений BIOS (0 - первая реализация, 2 - вторая и т. д.)
5 1 Байт конфигурации оборудования
6 2 Зарезервировано
8 2 Зарезервировано

Анализируя байт конфигурации оборудования, можно определить состав аппаратного обеспечения:

Бит Описание
0 Зарезервировано
1 Если этот бит установлен, компьютер оборудован шиной Micro Channel, в противном случае используется шина ISA, PCI или EISA
2 Используется расширенная область данных BIOS
3 BIOS способна ожидать внешние события
4 Каждый раз после вызова прерывания от клавиатуры INT 9h вызывается функция 4Fh прерывания INT 15h
5 В компьютере есть часы реального времени
6 Имеется второй контроллер прерываний
7 Для работы с диском BIOS использует канал 3 контроллера прямого доступа к памяти

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




- Начало -  - Назад -  - Вперед -