UEFI

Несколько слов о концепции использования UEFI BIOS. В ее основу положена функ­ци­о­наль­ность UEFI-интерфейса, ко­то­рый придуман как раз для взаимодействия пер­со­наль­ной платформы с программным обес­пе­че­ни­ем. Стоит на лю­бом из внешних загрузочных носителей с файловой системой FAT32 в ка­та­лог /efi/boot записать файл bootx64.efi (или bootia32.efi для 32-битных плат­форм) — и запуск оболочки обес­пе­чит вам доступ ко всем ресурсам UEFI BIOS. Пи­ши­те на этой палитре теми при­ло­же­ни­я­ми, которые принесут пользу, или удо­воль­ст­вие, или все сразу вместе. Про­буй­те, экс­пе­ри­мен­ти­руй­те!

Невероятно, но факт

Запускать UEFI-приложения можно из shell-оболочки как перемещаясь по дереву каталогов, так и с ис­поль­зо­ва­ни­ем умол­ча­ния, похожего на переменную окружения path, применяющуюся в MS-DOS. Такое умол­ча­ние позволяет из лю­бо­го мес­та за­пус­кать при­ложения с расширением efi, которые хранятся в директории с за­ре­зер­ви­ро­ван­ным именем /efi/tools.

Указанная возможность обнаружена экспериментально. Документальных под­тверж­де­ний этому нет и неизвестно, где задается (и как пополняется список) за­ре­зер­ви­ро­ван­ных каталогов. В любом случае — это работает!

Если не выполнить, то загрузить

Не все файлы с расширением .efi пригодны для запуска из shell-оболочки. Хорошо это или плохо? Ответ один — просто волшебно! Перед нами драйверный механизм, с по­мо­щью которого пользователь может получить самую не­о­жи­дан­ную функ­ци­о­наль­ность.

UEFI, например, работает только с носителями, отформатированными как FAT32. Для обслуживания NTFS разделов (гром­ко сказано — для обслуживания, пока что хотя бы для доступа к ним) есть и применяются соответствующие драй­ве­ры. Их-то как раз и не нужно запускать в shell-оболочке. Такой или подобный драйвер достаточно один раз за­гру­зить в UEFI командой load — и готово!

Инструментарий хакера: RU32.EFI

Инструментарий хакера: RU32.EFI

Проектирование технических устройств и систем нередко связано с необходимостью учета различных взаимно-противоречивых требова­ний. Софт-индустрия — не исключение из этой закономерности: перед разработчиками приложений стоит задача своевременной поддержки новых аппаратных платформ и операционных систем и в то же время — сохранения совместимости с устаревающей, а иногда и безнадежно устаревшей инфраструктурой.

Пособие для компьютерных диггеров

Пособие для компьютерных диггеров

Утилита RU32 позволяет просматривать дамп только для первых 256 байт конфигурационного пространства PCI для каждого устройства. Возможно, существуют некие недокументированные возможности для обхода такого ограничения, но нам не удалось их найти, хотя сов­ре­мен­ные процессоры, а также наборы системной логики и периферийные устройства используют механизм PCI Extended Configuration Space, позволяющий адресовать регистровые блоки, размером 4 килобайта. При этом за пределами видимости рассматриваемой утилиты ока­зы­ва­ют­ся достаточно важные характеристики устройства. Так, например, ряд регистровых полей, декларирующих поддержку технологий виртуализации, определены как PCI Extended Capabilities, и находятся за пределами первых 256 байт. Можно ли их увидеть, с помощью рассматриваемой утилиты?

Read Universal сохраняет скриншоты

Популярная утилита Read Universal расширила список предоставляемых сервисов за счет сохранения образов экрана на диск. Об этом говорится на сайте производителя Джеймса Ванга. К его чести, он не забыл поблагодарить тех, кто постарался, чтобы утилита RU стала лучше. В этом есть квант и нашей заслуги.

Read Universal сохраняет скриншоты

 

О детектировании виртуальных процессоров

О детектировании виртуальных процессоров

Существует мнение, что качественно реализованная виртуальная среда должна быть неотличима от физической. Изобретение методов «уличения» системы в эмуляции стало предметом своеобразного спортивного интереса среди программистов.

А между тем, подобно известной истории про «неуловимого Джо», ответ прост и лежит на поверхности. Согласно сайту sandpile, принадлежащего Кристиану Людлоффу, идентификация виртуального процессора ничуть не сложнее аналогичной процедуры для процессора физического и выполняется с помощью инструкции CPUID, ряд функций которой резервируются для эмуляции гипервизором.

NVM Express: загрузка по умолчанию

NVM Express: загрузка по умолчанию

Компания American Megatrends давно стала, чуть ли не главным дей­ству­ю­щим лицом на рынке низкоуровневого программного обеспечения. Ее UEFI BIOS хорошо известен пользователям серверов, ноутбуков и, тем более, – настольных компьютеров. В последние дни октября компания выпустила пресс-релиз, в котором отчиталась о проделанной работе по обслуживанию NVMe-интерфейса персо­наль­ных платформ.

UEFI, виртуальные машины и отладка

UEFI, виртуальные машины и отладка

Сегодня мы изучим процесс отладки приложений в среде UEFI x64 с помощью отладочного инструмента FDBG от автора Feryno. Чтобы такая работа не превратилась в банальную и монотонную, параллельно будем решать еще одну задачу – запустив FDBG на виртуальной машине в среде Oracle VirtualBox, проанализируем системные объекты, находящиеся в адресном пространстве виртуальной машины. Акцент сделаем на низкоуровневых аппаратных различиях между виртуальной и реальной платформами.

Уязвимость UEFI делает компьютер беззащитным

Специалисты по компьютерной безопасности Рафаил Войчук и Кори Каленберг продемонстрировали на 31-м Всемирном конгрессе хакеров два кейса уязвимости UEFI-интерфейса, открывающих неограниченные возможности для зловредных вирусов. Знаменательное событие для всех, кто увлекается реверсным программированием, состоялось в канун 2015 года в Кёльне под эгидой компьютерного клуба «Хаос» (Chaos Computer Club).

Низкоуровневое исследование UEFI BIOS ноутбука ASUS T100T

Низкоуровневое исследование UEFI BIOS ноутбука ASUS T100T

Известно, что попытка сделать несколько дел одновременно обычно да­ет негативный результат. Тем не менее, мы решили совместить низ­ко­у­ров­не­вое исследование UEFI BIOS ноутбука ASUS T100T, оказавшегося в на­шей тестовой лаборатории с процессом отладки и тестирования на­ше­го нового программного продукта UEFImark EBC Edition, ведь ра­бо­тая на уровне регистров, ячеек памяти и ассемблерного кода мож­но уви­деть много такого, о чем не говорится на презентациях…

Файловые операции в UEFI

Файловые операции в UEFI

Около 30 лет назад разработчики персональной платформы IBM PC, определяя ар­хи­тек­ту­ру функций дискового сервиса BIOS, приняли очевидное и логичное ре­ше­ние, согласно которому процедуры firmware, находящиеся в постоянном за­по­ми­на­ю­щем устройстве системной платы, должны работать с гибкими и жесткими дисками исключительно на уровне секторов, дорожек и цилиндров. Таким об­ра­зом, для BIOS была отведена роль «исполнительного механизма», умеющего толь­ко читать и писать сектора, по заданиям от операционной системы, которая, в свою оче­редь, осуществляет поддержку файловых операций, каталогов, таблиц FAT32 и других подобных структур. Появление UEFI разрушило эту модель, се­го­дня ми­кро­код «умеет» работать с файлами. С чем связано такое изменение подходов?

Отладка EFI Byte Code

Отладка EFI Byte Code

Для отладки EFI Byte Code или EBC-приложений непосредственно в среде UEFI, ком­па­ния Intel предлагает продукт EBC Debugger, доступный для загрузки на офи­ци­аль­ном сайте UEFI — http://www.uefi.org. Продукт существует в трех реализациях для следующих процессорных архитектур:

IA32 (Intel Architecture 32)
x64 (x86 64-bit extension, синонимы Intel64 и AMD64)
IPF (Itanium Processor Family, синоним IA64)