Альтернативный набор команд

редактировать

Альтернативный набор команд (AIS) - это вторая 32-битная архитектура набора команд, встречающаяся в некоторых процессорах x86 производства VIA Technologies. На этих процессорах VIA C3 доступ ко второму скрытому режиму процессора осуществляется путем выполнения инструкции x86 ALTINST(0F 3F). Если режим AIS был включен, процессор выполнит JMP EAX и начнет выполнение инструкций AIS по адресу регистра EAX. Использование AIS обеспечивает собственный доступ к ядру Centaur Technology RISC внутри процессора.

Содержание
  • 1 Формат команд
  • 2 Доступность
  • 3 Повышение привилегий
  • 4 Ссылки
  • 5 Дополнительная литература
Формат инструкции
Отображение регистров между AIS и x86
номер AISимя x86
R0EAX
R1ECX
R2EDX
R3EBX
R4ESP
R5EBP
R6ESI
R7EDI
R8 ‒ R15

Производитель описывает альтернативный набор команд как «расширенный набор целых чисел, MMX, с плавающей точкой и 3DNow! вместе с дополнительными регистрами и некоторыми более мощными формами команд ". Каждая инструкция AIS имеет префикс из 3-х байтовой последовательности 0x8D8400, за которой следует 32-битная инструкция; эта форма префикса для инструкций AIS делает их похожими на инструкции x86 Загрузить эффективный адрес (LEA). В 2018 году исследователь Кристопер Домас сообщил, что префикс 0x620405(x86 BOUND) также работал.

Предложение, сделанное в 2002 году о добавлении поддержки AIS в Netwide Assembler (NASM), было частично отклонено в 2005 году на том основании, что NASM был ассемблером x86, а AIS - отдельной инструкцией. задавать. Ассемблер доступен из исследования Domas 2018.

В 2007 году в патенте некоторые инструкции микрокода были названы loadи storeв / из основной RAM и loadPRAMи хранят PRAMв / из частной RAM внутри процессора. Группа проверки Centaur Technologies в статье 2014 года о VIA Nano включила несколько коротких списков микроинструкций, включая ADDIG, JLINK, JMP_ALL, MVIG, NLOOPE, STORE_PRAM, а также микрооперации XADDи XSUB. Было показано, что микрооперации имеют формат, который включает поля opcode, exec unit, src width, src1, . src2, ширина адресата, адресат, флаги записи?и конец подпрограммы?.

Доступность

Из x86 В этом режиме доступность альтернативного набора команд можно определить, выполнив CPUID с регистром EAX, установленным на 0xc0000001, а затем проверив регистр EDX. Если бит 0 EDX установлен в 1, то поддерживается AIS. Если бит 1 EDX также установлен в 1, то AIS включен. Если ЦП поддерживает AIS, то его состояние можно проверить и изменить с помощью регистров, зависящих от модели, путем проверки и настройки регистра управления функциями (FCR, регистр 0x1107). Если бит 0 («ALTINST») установлен в 1, то AIS включен.

Ядро Microsoft Windows NT KiGetFeatureBits ()функция инициализации заранее отключает альтернативную инструкцию режим при загрузке. Если команда перехода x86 ALTINSTвыполняется, когда режим AIS отключен, процессор сгенерирует исключительную ситуацию с недопустимой инструкцией. Для установки бита с включенным AIS требуется привилегированный доступ, и его следует устанавливать с помощью последовательности read-modify-write.

Повышение привилегий

В 2018 году Кристофер Домас обнаружил, что некоторые Процессоры Samuel 2 поставлялись с включенным по умолчанию альтернативным набором инструкций, и что, выполняя инструкции AIS из пользовательского пространства, можно было получить повышение привилегий с кольца 3 до кольца 0. У Домаса было частично реконструировал набор команд AIS с использованием автоматического фаззинга для кластера из семи тонких клиентов. Домас использовал термины «глубоко встроенное ядро» (DEC) плюс «глубоко встроенный набор инструкций» (DEIS) для набора инструкций RISC, «инструкция запуска» для ALTINST, «инструкция моста» для оболочки префикса x86., «регистр глобальной конфигурации» для Регистра управления функциями (FCR) и задокументировал повышение привилегий с именем «Rosenbridge ".

Ссылки
Дополнительная литература
Последняя правка сделана 2021-06-11 02:46:58
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте