Лекция 30 Использование недокументированных инструкций и недокументированных возможностей процессора
Один из подходов, используемый для затруднения отладки и дизассемблировании программ, заключается в привлечении редко используемых инструкций центрального процессора (ЦП), недокументированных инструкций, или инструкций, имеющих скрытый результат [Error: Reference source not found]. Не все злоумышленники хорошо знакомы с подобными инструкциями и скрытыми возможностями ЦП, что затрудняет исследование ими программ. Недостаток данных методов – жесткая привязка к процессору. Кроме этого, не гарантируется поддержка недокументированных инструкций в будущих процессорах, а значит совместимость с ними разработанных защит.
Достаточно часто для защиты ПО от исследования используют недокументированное использование префиксов инструкций.
Префиксы в кодах инструкций делятся на следующие типы:
Префиксы блокировки и повторения – говорят о том, что код инструкции относится к действиям блокировки или повторения.
Префиксы переопределения сегмента - указывают на то, с каким сегментом должна осуществляться работа команды. Соответствие между значениями префиксов и сегментами приведено в таблице 8.2.
Табл. 8.2. Соответствия префиксов и кодируемых ими сегментов
Значение префикса | Сегмент |
2Eh | CS |
36h | SS |
3Eh | DS |
26h | ES |
64h | FS |
65h | GS |
3. Префиксы переопределения размеров операндов (префикс 66h). Данный префикс используется в 16-разрядном режиме для манипулирования с 32-битными операндами и наоборот.
4. Префиксы переопределения размеров адреса (префикс 67h).
Если в процессорной инструкции используется более одного префикса из одной группы, то ее действие документально не определено. Приведем наиболее типичные приемы использования недокументированных команд и недокументированных возможностей процессора INTEL.
1. Недокументированное использование префикса переопределения размеров операндов. Согласно стандарту он используется только при наличии в команде каких-либо операндов. Однако на практике для реального процессора данный префикс может быть поставлен перед любой командой, и это будет работать на реальном процессоре. Например, реальный процессор примет инструкцию 0x66 CLI (использование префикса перед оператором запрещения прерываний). В связи с тем, что данная возможность не документирована, то, как правило, отладчики и дизассемблеры не принимают подобные инструкции и отказываются корректно интерпретировать подобный код.
2. То же самое следует сказать и про префиксы переопределения размеров адреса. Данные префиксы согласно документации используются только в командах, оперирующих с адресами памяти. Их использование с другими командами не документировано, но процессор будет выполнять эти команды. В качестве примера такой инструкции можно привести инструкцию 0x67 STI.
3. Префиксы переопределения сегментов также могут встречаться перед любой командой, в том числе и в командах, не обращающихся к памяти. Например, команда CS:NOP корректно выполняется, а многие дизассемблеры сбиваются при ее интерпретации.
4. Использование дублирующих префиксов, то есть запись префиксов вида 0x66, 0x66 непосредственно перед командой. Хотя фирма INTEL не гарантирует корректную работу своих процессоров при обнаружении такого рода инструкций, но фактически все процессоры правильно интерпретируют данные ситуации. Иное дело – отладчики и дизассемблеры, которые спотыкаются и начинают некорректно вести себя.
Следует отметить также, что процессором INTEL корректно выполняются и инструкции вида DS:FS:CS:Mov ax, [100] (последний префикс перекрывает все остальные), а многие отладчики и дизассемблеры сбиваются при их анализе.
5. Обращение к недокументированным регистрам. В процессорах INTEL регистры в настоящее время кодируются тремя битами следующим образом (таблица 8.3).
Табл. 8.3. Кодирование регистров в инструкциях
-
Код
Инструкция
000
ES
001
CS
010
SS
011
DS
100
FS
101
GS
110
Зарезервирован
111
Зарезервирован
Две последние кодовые комбинации (110 и 111) в настоящее время зарезервированы и не используются. При попытке их использования вызывается исключительная ситуация 06h, которую можно перехватить. Отладчики же и дизассемблеры при встрече с подобными инструкциями начинают вести себя странно и непредсказуемо. Одни не генерируют при этом прерывания, чем и выдают себя, другие начинают некорректно работать. Поведение же дизассемблеров в этом случае тоже разнообразно. Ниже приведен пример того, как различные дизассемблера воспринимают подобные инструкции.
HIEW 8E ??? F8 clc C3 retn | Qview 8EF8 mov !s, ax C3 ret
| IDA Pro Db 8E Db 0F8 DB C3 |
Несуществующие регистры можно эмулировать в обработчике прерывания int 06h.
- Министерство образования и науки российской федерации
- Лекция 1
- Предмет и задачи программно-аппаратной защиты информации.
- Лекция 2
- Информационная безопасность
- В компьютерных системах
- Компьютерная система как объект защиты информации
- Понятие угрозы информационной безопасности в кс
- Классификация и общий анализ угроз информационной безопасности в кс
- Лекция 3 Случайные угрозы информационной безопасности
- Лекция 4 понятие политики безопасности в компьютерных системах
- 1. Разработка политики информационной безопасности
- 2. Методология политики безопасности компьютерных систем
- 3. Основные положения политики информационной безопасности
- 4. Жизненный цикл политики безопасности
- 5. Принципы политики безопасности
- Лекция 5 Идентификации субъекта. Понятие протокола идентификации. Идентифицирующая информация. Пароли. Программно-аппаратные средства идентификации и аутентификации пользователей
- Идентификация и аутентификация. Основные понятия и классификация
- Лекция 6 Простая аутентификация
- 1. Аутентификация на основе многоразовых паролей
- 2. Аутентификация на основе одноразовых паролей
- 3. Аутентификация, на основе сертификатов
- Лекция 7
- 2. Строгая аутентификация
- 2.1. Протоколы аутентификации с симметричными алгоритмами шифрования
- 2.2. Протоколы, основанные на использовании однонаправленных ключевых хэш-функций
- Лекция 8 Аутентификация с использованием асимметричных алгоритмов шифрования
- Электронная цифровая подпись (эцп). Аутентификация, основанная на использовании цифровой подписи
- Протоколы аутентификации с нулевой передачей значений
- Упрощенная схема аутентификации с нулевой передачей знаний
- Лекция 9 системы идентификации и аутентификации
- Классификация систем идентификации и аутентификации
- Комбинированные системы
- Лекция 10 Бесконтактные смарт-карты и usb-ключи
- Гибридные смарт-карты
- Биоэлектронные системы
- 1. Ключи. Организация хранения ключей
- Утверждение о подмене эталона
- Защита баз данных аутентификации операционных систем класса Windows nt.
- Алгоритм вычисления хэша lanman
- Хэш ntlm
- 2. Распределение ключей
- Лекция 12 Использование комбинированной криптосистемы
- Метод распределения ключей Диффи-Хеллмана
- Протокол вычисления ключа парной связи ескер
- Лекция 13 Основные подходы к защите данных от нсд. Защита пэвм от несанкционированного доступа
- 1) Физическая защита пэвм и носителей информации;
- 1. Полностью контролируемые компьютерные системы.
- Программная реализация функций кс.
- Аппаратная реализация функций кс.
- 2. Частично контролируемые компьютерные системы.
- Основные элементы и средства защиты от несанкционированного доступа. "Снег-2.0"
- Лекция 15 Устройства криптографической защиты данных серии криптон.
- Устройства для работы со смарт-картами.
- Лекция 16 Программные эмуляторы функций шифрования устройств криптон
- Системы защиты информации от несанкционированного доступа Система криптографической защиты информации от нсд криптон –вето
- Лекция 17 Комплекс криптон -замок для ограничения доступа компьютеру.
- Система защиты конфиденциальной информации Secret Disk.
- Система защиты данных Crypton Sigma.
- Лекция 18 Модель компьютерной системы. Методы и средства ограничения доступа к компонентам эвм. Понятие изолированной программной среды.
- 1. Понятие доступа и монитора безопасности
- 2. Обеспечение гарантий выполнения политики безопасности
- 3. Методология проектирования гарантированно защищенных кс
- Лекция 19 Метод генерации изолированной программной среды
- Лекция 20
- Модели управления доступом
- Системы разграничения доступа
- Диспетчер доступа
- Списки управления доступом к объекту
- Списки полномочий субъектов
- Атрибутные схемы
- Лекция 21
- 1. Подходы к защите информационных систем Устойчивость к прямому копированию
- Устойчивость к взлому
- Аппаратные ключи
- 2. Структура системы защиты от несанкционированного копирования
- Блок установки характеристик среды
- 3. Защита дискет от копирования
- Лекция 22 Электронные ключи hasp
- Лекция 23
- 1. Разрешения для файлов и папок
- 2. Шифрующая файловая система (efs)
- 2.1. Технология шифрования
- 2.2. Восстановление данных
- Лекция 24
- 1. Драйвер еfs
- 2. Библиотека времени выполнения efs (fsrtl)
- 4. Win32 api
- 11.4. Взаимодействие файловой системы защиты ntfs и защиты ресурса общего доступа (Sharing)
- 11.5. Типовые задачи администрирования
- Оснастка Локальные пользователи и группы (Local Users and Groups)
- 11.6. Администрирование дисков в Windows 2000
- Лекция 25
- 2. Обзор современных средств защиты
- Лекция 26 Защита файлов от изменения. Защита программ от изучения. Защита от дизассемблирования. Защита от отладки. Защита от трассировки по прерываниям. Защита от исследований.
- Обычные проблемы хакера
- Защита от исследований на уровне текстов
- Защита от исследований в режиме отладки.
- Защита программ от трассировки
- Лекция 27
- 1. Базовые методы нейтрализации систем защиты от несанкционированного использования
- 2. Понятие и средства обратного проектирования
- Лекция 28 Локализация кода модуля защиты посредством отлова WinApi функций в режиме отладки
- Базовые методы противодействия отладчикам
- Лекция 29 Базовые методы противодействия дизассемблированию по
- Защита от отладки, основанная на особенностях конвейеризации процессора
- Лекция 30 Использование недокументированных инструкций и недокументированных возможностей процессора
- Шифрование кода программы как универсальный метод противодействия отладке и дизассемблированию
- Основные модели работы рпв
- Компьютерные вирусы.
- Классификация вирусов
- Лекция 32 Механизмы заражения компьютерными вирусами
- Признаки появления вирусов
- Методы и средства защиты от компьютерных вирусов
- Лекция 33
- Ibm antivirus/dos
- Viruscan/clean-up
- Panda Antivirus
- Профилактика заражения вирусами компьютерных систем
- Антивирус. Алгоритм работы
- Проверочные механизмы
- Постоянная проверка и проверка по требованию
- Лекция 34 Структура антивирусной защиты предприятия
- Функциональные требования
- Общие требования
- Пример вируса
- Список литературы Основная литература
- Дополнительная литература
- Периодические издания
- Методические указания к лабораторным занятиям
- Методические указания к практическим занятиям
- Методические указания к курсовому проектированию и другим видам самостоятельной работы