По приглашению товарища Highlander решил написать на этот форум о своем крайнем проекте - UEFITool.
Это кроссплатформенный (написан на С++/Qt) просмотрщик и редактор образов UEFI BIOSов с открытым исходным кодом (BSD, LGPL).
В данный момент поддерживается экспорт, добавление, удаление, перестроение секций, файлов и томов, разбор заголовков UEFI-капсулы и Flash-дескриптора.
Сборки для Windows и OS X
выкладываются сюда, сборку для Debian 7 x64 тестирую, но выкладывать пока не собираюсь - пусть себе каждый соберет сам для своей версии Qt и тулчейна.
Программа в активной фазе разработки, поэтому не исключены баги.
Прошу потестировать и поделиться мнением, что следует улучшить, что исправить, и нужно ли оно вообще кому-нибудь.
Спасибо заранее.
Если разгребу завал на работе до НГ, то поковыряю в среде Debian'а, а пока оставлю это здесь коммент, чтобы было проще найти потом.
И твоя голова всегда в ответе за то куда сядет твой зад...
Спасибо, посмотрим.
А можно ли как-либо добавлять PE-шки, которые больше по размеру, чем исходные, в Volume-ы? Если можно, пожалуйста, CodeRush, напиши, как это можно сделать.
Добавлять можно, если хватит места в том корневом томе, в который этот самый исполняемый файл добавляется. Можно либо сделать из PEшки FFS-файл при помощи утилиты GenFFS из EDK2, а потом вставить получившийся файл через "Insert", либо заменить содержимое PE32-секции в одном из существующих файлов через "Replace body".
Если же в корневых томах места нет, то придется его взять из другого корневого тома (если оно там есть) или откусить немного от региона МЕ (там обычно есть свободное место в конце), но такие модификации деляют БИОС несовместимым со стандартными утилитами, и его придется шить программатором.
Большое спасибо Николаю за утилитку и вообще, его просветительство в области EFI/BIOS-строения и не только.
Да пожалуйста.
Чем больше людей разберется в UEFI, тем проще будет справиться с идиотскими ограничениями типа белых списков оборудования, отключенного AES-NI, закрытых на запись MSRов и NVRAM'а и прочими радостями.
У меня сейчас самый разгар магистрской работы, поэтому быстро добавлять все фичи, которые в голову приходят, я не могу, но некоторые мелкие приятности думаю сделать через 1-2 версии:
1. Отображать при выборе региона Descriptor информацию о настройках доступа к регионам и содержимом таблицы VSCC (т.е. модели совместимых с этим образом SPI-чипов)
2. Заменять содержимое всех объектов в дереве, а не только томов, файлов и секций. Оказалось, что это удобнее, чем править в Hex-редакторе.
Версию 0.16.5 удалось оттестировать на нескольких AMI Aptio и Phoenix SCT, оба загружаются и работают после достаточно серьезных модификаций. Не скажу, что багов нет, но теперь их не сразу видно.
Прошу активнее включаться в тестирование, тут у каждого первого программатор в кармане, а отчетов об ошибках никто не шлет.
Могу добавить "важное как минимум для меня" - собирать базу названий EFI-модулей, ибо безликие GUID-ы никак не добавляют желания разбираться кому тому, кто плохо понимает. А кто понимает - только раздражает.
Ибо вот, решил воспользоваться вашей полезной утилиткой для вскрытия одного из стареньких пациентво на предмет структуры Intel ME - а толку, прям китайская грамота.
Пришлось доставать из шуфлядки старый недоделанный биоспатчер7, где таки показываются эти названия - он прекрасно показал нужную информацию о составе областей, где по косвенным половым признакам, записанный ещё от каких-то i945 GUID - выдал мне ME-составляющую.
С удовольствием поделюсь накопленными для внедрения в вашу полезную программулю (плюс, конечно, нужно добавить отображение названий для тех, которые их имеют в текущем биосе).
п.с. Заранее прокомментирую потенциальный вопрос "так а почему BIOS Patcher 7...?" - он не работает под 64-бит, давно заброшен, потому приходится запускать в виртуалке - ваша программулина однозначно перспективней, да ещё и мультиплатформенная.
О, Роман проснулся и заинтересовался. Это есть хорошо.
А кому счас легко...
Судьба так повернулась, что снова нужно ковырять BIOS-ы и на очень серьёзном уровне. Правда - Intel only (точней - Intel ME).
Тексты, которые есть в UI-секциях, отображаются уже сейчас, если колонки по ширине подогнать:
Информация пригодится любая, т.к. реальность сильно отличается от того, что описано в спецификациях с uefi.org.
Отправить комментарий