Привязка к 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 контроллера прямого доступа к памяти |
Программа установки программного обеспечения может прочитать эти поля и записать их в зашифрованном виде, например, в один из файлов защищаемого программного пакета.