Как поставить разлоченный биос. Как разблокировать скрытые функции BIOS

КРИС КАСПЕРСКИ

Модифицируем BIOS

BIOS-моддинг таит в себе практически неограниченные возможности: экстремальный разгон системы, разблокирование скрытых возможностей, исправление ошибок разработчиков, украшения на свой вкус – это высший пилотаж хакерства, требующий знания железа и умения держать дизассемблер в руках. Это дремучий лес, в котором очень легко заблудиться, но я покажу вам кратчайший путь.

Если процессор – это сердце компьютера, то BIOS – его душа. Качество прошивки определяет все! К сожалению, качественные прошивки в живой природе встречаются достаточно редко. Разработчики допускают грубые ошибки, блокируют многие полезные возможности, в общем, по отношению к потребителю ведут себя нехорошо. Древние модели материнских плат, выпущенные до 2000 года, зачастую вообще не имеют свежих прошивок и с новым оборудованием (например, жесткими дисками большого объема) они уже не работают, а ведь могли бы…

Многие качественные материнские платы умышленно препятствуют разгону, имеют скудный диапазон допустимых значений или слишком грубый шаг их изменения. Разумеется, очень многое зависит и от «железной» части, но без правильной прошивки – никуда! В сети можно найти множество улучшенных прошивок, модернизированных энтузиастами, однако все они ориентированы на вполне конкретную модель материнской платы (как правило, уже устаревшую), и раздобыть прошивку для своего оборудования весьма затруднительно, к тому же нет никаких гарантий, что под видом «улучшенного» BIOS вам не подсунут заживо похороненную или, что еще хуже, умышленно троянизированную версию.

А моддинг? Разве не заманчиво заставить компьютер перемигиваться клавиатурными огоньками во время загрузки или выводить красочный логотип на экран?! Одним словом, модифицировать BIOS не только можно, но и нужно. Главным образом мы будем говорить об Award BIOS. В AMI все сильно по-другому… Однако когда-нибудь мы доберемся и до них. Кстати говоря, фирма Award была выкуплена Phoenix и в настоящее время существует только как бренд. А это значит, что последние версии Phoenix-BIOS устроены точно так же, как и Award, поскольку их разрабатывает одна и та же фирма, правда, на старые прошивки это утверждение не распространяется. Впрочем, существуют готовые редакторы и для них, но не будет заострять внимание на мелочах, а сразу перейдем к делу.

Что нам понадобится

Для экспериментов нам потребуется материнская плата с Award-BIOS на борту. Опознать микросхему BIOS очень легко – на ней обычно наклеена голографическая этикетка, которую необходимо оторвать, чтобы обнажить маркировку. Маркировка представляет последовательность цифр наподобие «28F1000PPC-12C4».

Как ее расшифровать? Идем на http://www.datasheetarchive.com , заполняем строку запроса и получаем pdf-файл с подробным описанием чипа (так называемый datasheet). Теперь необходимо найти идентичный или совместимый чип FLASH-памяти, над которым мы, собственно, и будем экспериментировать. Его можно приобрести в специализированном радиомагазине или вытащить с поломанной материнской платы. Большого дефицита эти чипы не представляют, поскольку в материнских платах используются серийные микросхемы, выпускаемые независимыми поставщиками.

Для «горячей» замены BIOS (т.е. выдергивания микросхемы с работающей платы) русские умельцы аккуратно обвязывают микросхему нитками, а затем осторожно тянут вверх (можно, конечно, просто подковырнуть отверткой, но при этом легко что-то закоротить), а вот иностранцы после эпидемии «чиха» придумали специальные приспособления – chip extractor (съемщик чипов) и BIOS savior (BIOS-спаситель). По сути дела, это одно и то же приспособление, только торговые марки разные. Приобрести их можно в радиомагазинах или заказать по Интернету (см. рис. 1-6).


Рисунок 2. Набор BIOS Savior kit для безопасного извлечения микросхемы BIOS с материнской платы и «кроватка»

для резервного BIOS с переключателем, устанавливаемым на заднюю панель

Еще нам потребуется документация на чипсет материнской платы. Компании Intel и AMD бесплатно выкладывают все, что нужно на сайт. Другие производители (VIA, SiS) держат документацию под спудом и отдают только за деньги плюс подписку о неразглашении. В частности, на дисках, рассылаемых компанией AMD, встречается много интересной документации со штампом «confidential», пролистывая которую, ощущаешь волнующее чувство причастности к тайне.

Комплект утилит для прошивки BIOS можно найти на сайте разработчика конкретного BIOS или производителя материнской платы. Некоторые производители (например, ASUS) вносят в BIOS большое количество изменений, в результате чего «родные» утилиты от Award перестают с ними работать и приходится использовать инструментарий, поставляемый вместе с материнской платой. Обычно там содержится:

  • awdflsh.exe – «прожигатель»;
  • modbin – простой редактор BIOS;
  • cbrom – просматривает содержимое BIOS и добавляет новые модули в прошивку.

Все эти утилиты можно найти на сайте http://www.rom.by . Там же находится замечательный «патчер» BIOS – BP.exe (сокращение от «BIOS Patсher»), исправляющий ошибки в известных ему прошивках и разблокирующий многие заблокированные возможности. Нашим основным инструментом будет интерактивный редактор BIOS Award BIOS Editor, который можно бесплатно скачать c .

Как мы будем действовать

Модификация BIOS – очень рискованное занятие. Малейшая ошибка – и система отказывается загружаться, выдавая унылый черный экран. Большинство современных материнских плат снабжено защитой от неудачных прошивок, однако обычно она срабатывает лишь тогда, когда BIOS действительно поврежден (например, не соответствует контрольная сумма).

Вот для этих целей нам и требуется второй BIOS! Запускаем материнскую плату, считываем содержимое прошивки соответствующей утилитой (или скачиваем обновленную версию с сайта производителя), модифицируем ее по своему вкусу, затем, не выключая компьютера, аккуратно вынимаем оригинальный чип, откладывая его в сторону, и вставляем чип, над которым мы будем экспериментировать. Остается запустить AWDFLASH.EXE и зашить модифицированную прошивку в BIOS. Теперь, случись вдруг что, мы всегда сможем вернуть оригинальный чип на место, исправить ошибку в экспериментальной прошивке и повторить всю процедуру вновь. Другими словами, мы будем экспериментировать только над «нашим» чипом, оставляя родной BIOS в неприкосновенности.

Насколько такая процедура безопасна? По правде говоря, опасности нас подстерегают на каждом шагу. Микросхема может выскользнуть из рук и упасть на плату, малейшая ошибка в прошивке может вывести оборудование из строя (например, переключить стабилизатор на повышенное напряжение, выбрать слишком большую тактовую частоту и т. д.). До приобретения боевого опыта лучше всего экспериментировать над старыми материнскими платами, которые все равно идут в утиль (например, Pentium-155).

Первые эксперименты

Запускаем Award BIOS editor (кстати говоря, он запускается только из-под GUI, а под FAR просто «слетает»), в меню File выбираем файл с прошивкой, которую мы будем модифицировать (предварительно ее необходимо скачать с сайта производителя или запустить AWDFLASH.EXE с ключом /sy, чтобы сохранить текущую прошивку в файл). В левой колонке выбираем пункт «System BIOS» и смотрим, что хорошего тут можно изменить. А изменить тут можно очень многое! Например, имя BIOS, высвечивающееся при загрузке (в моем случае это: Award Modular BIOS v6.00PGN), дату выхода и название чипсета (03/29/2001-i815-W83627F-6A69RI3DC-00) и другие идентификационные строки подобного типа. А давайте напишем «assembled at military-industrial USA factory», чтобы потом подшучивать над приятелями (см. рис. 7).

Точно так же можно заменить все надписи в «BIOS Setup» (они находятся во вкладке «BIOS Options») и отредактировать значения по умолчанию (те самые, что загружаются по команде «load default BIOS configuration») под свой вкус. Наибольший интерес представляют пункты, помеченные как «Disabled». Это и есть опции, заблокированные производителем! Простым переводом радиокнопки в состояние «Active» мы разблокируем их! Разумеется, никакой гарантии, что система после этого заработает, у нас нет. Чаще всего блокируются недоделанные или нестабильно работающие режимы и возможности. Реже – производитель просто не хочет, чтобы материнские платы начального уровня конкурировали с дорогими моделями, вот и тормозит их. Нестабильно работающая материнская плата способна разрушить содержимое жесткого диска еще в процессе загрузки Windows, поэтому экспериментировать на своем рабочем винчестере недопустимо! Используйте запасной жесткий диск, на котором нет ничего ценного. Запустите несколько тестирующих программ и дайте им поработать несколько суток. Если за это время не произойдет ни перезагрузок, ни зависаний, можно переходить на основной жесткий диск, на всякий случай, предварительно зарезервировав его содержимое (см. рис. 8).

А хотите изменить логотип, высвечивающийся в северо-восточном углу экрана? Это совсем несложно сделать. Старые BIOS хранили картинку в секции «LOGO» в нестандартном формате, условно называемом logo-форматом. С ним была связана куча ограничений, и требовался специальный конвертор, иногда прилагаемый к материнской плате, но чаще его приходилось писать самостоятельно.

Сейчас же секция «LOGO» в большинстве случаев пуста, а картинка хранится в секции «EPA pattern» в стандартном BMP-формате. Ограничений на размер и глубину цветности нет никаких, однако не все BIOS поддерживают слишком большие и цветастые картинки. Что произойдет, если подсунуть BIOS картинку, которую он не в состоянии обрабатывать? Ничего страшного! Система либо откажется выводить ее на экран или выведет с искажениями. Чтобы не попасть впросак, рекомендуется отталкиваться от уже существующей картинки: извлекаем оригинальный логотип в файл (в Award BIOS Editor за это отвечает команда «Export as Windows BMP»), загружаем его в Paint и правим в свое удовольствие без изменения глубины цветности и размеров. Один из примеров такой работы приведен ниже.

При желании можно зашить в BIOS полноэкранный логотип, высвечиваемый при загрузке. Этим занимается одноименная утилита от Award, входящая в штатный комплект поставки многих материнских плат ASUS. Однако в некоторых BIOS задержка вывода полноэкранного логотипа столь мала, что ряд CRT-мониторов просто не успевают прогреться за это время! Но ведь не переходить же ради этого на LCD-монитор? Разумеется, нет! Достаточно найти величину задержки в настойках BIOS и увеличить ее! А для этого нам вновь пригодится Award BIOS editor (см. рис. 9).

Рисунок 9 . Изменение стандартного логотипа, выводимого при загрузке на экран

А вот еще один трюк. Запустив уже упомянутую утилиту BP.EXE с ключом /c, мы сможем вручную задать имя процессора, высвечивающееся при загрузке, и его тактовую частоту. Реальная тактовая частота отображаться уже не будет. Почему бы не написать «AMD Pentium-V 666 GHz beta» и не похвастаться перед друзьями?

Да много чего можно придумать! В умелых руках BP.EXE и Award BIOS editor творят настоящие чудеса! Как бы там ни было, после всех издевательств прошивка должна быть залита в BIOS. О том, как это сделать, можно прочитать в документации на материнскую плату (см. рис. 10).

Рисунок 10 . Прожигание BIOS специализированной утилитой от ASUS

Настройка PCI-регистров

Конфигурирование чипсета осуществляется специальными регистрами, доступными через шину PCI. При загрузке системы BIOS настраивает процессор, контроллер системной шины, контроллер оперативной памяти и всю прочую периферию в соответствии с настройками, выбранными в «BIOS Setup». Однако практически ни один BIOS не дает доступа ко всем настройкам чипсета или умышленно ограничивает диапазон доступных значений. Как быть, что делать?

Запускаем Award BIOS editor, заходим в System BIOS, находим вкладку «Chipset Registers» и открываем документацию на чипсет. Где-то там должен быть раздел «PCI Configuration Registers» или что-то в этом роде. Для каждого из регистров будет указано устройство (device), к которому он «подключен», номер функции (function) и номер самого регистра, также называемый смещением (offset). Все регистры 8-битные, однако несколько последовательных регистров могут объединяться в слова или даже двойные слова.

Сравнение конфигурационных возможностей чипсета с BIOS Setup показывает, что часть настроек в ней отсутствуют. Даже в заблокированных возможностях (о которых мы уже говорили выше) их нет! В частности, мой любимый AMD 761 поддерживает намного больший диапазон таймингов, чем указано в BIOS Setup. Взять хотя бы величину tPR (time to precharge), определяющую время закрытия DRAM-страницы, в процессе которого происходят возврат данных в банк памяти и его перезарядка. По умолчанию BIOS ставит 3 такта и не дает его изменять. Чтобы сократить tPR до 1 такта, необходимо модифицировать 8 и 7 биты регистра Dev 0:F0:0x54, присвоив им значение 2 («10» в двоичной нотации). Остальные биты не трогать! А как это сделать? Необходимо наложить маску (mask), которая в данном случае будет выглядеть так: «XXXX XXX1 1XXX XXXX». Как видно, 8 и 7 биты установлены в единицу, остальные помечены знаком «Х», указывающим BIOS, что данный бит необходимо оставить без изменений (см. рис. 11).

Рисунок 11 . Страничка из документации на чипсет, описывающая конфигурационные регистры

Запись «Dev0:F0:0x54» обозначает: Device 0:Function 0:Register 0x54. На самом деле этих регистров целых два. Регистр 0x54 хранит младшую, а 0x55 – старшую половину слова. Следовательно, в 0x54 необходимо занести 80h («10.00.00.00»), а в 0x55 – 01h. Соответственно в первом случае маска будет равна 80h («1X.XX.XX.XX»), а во втором 01h.

Возвращаемся к Award BIOS Editor, находим регистр с номером 0x54 и, кликнув правой клавишей мыши, выбираем пункт «modify». В появившемся окне первые три поля (Register, PCI, PCI) оставляем без изменений (это номер регистра, устройства и функции), а вот с двумя последующими полями «Resister» и «Value» придется разобраться особо. Мы не можем просто взять и записать значение 0x80, поскольку в этом регистре уже хранятся какие-то параметры, модифицирующие остальные поля. Мы должны устанавливать лишь «наши» биты (в данном случае это бит 7), а над остальными выполнить операцию логическое «OR» по маске. Аналогичным образом настраивается и регистр 55h (см. рис. 12 ).

Рисунок 1 2 . Разгон системы при помощи редактирования конфигурационных регистров

Залив обновленную прошивку в BIOS и установив качественные модули памяти, мы с удовлетворением замечаем, что быстродействие системы ощутимо возросло, особенно на операциях хаотичного доступа к памяти, когда закрытие DRAM-страниц происходит чуть ли не на каждом шагу.

Аналогичным образом можно редактировать и остальные регистры, отсутствующие в BIOS Setup, однако наши возможности будут довольно ограничены.

Заключение

Кроме Award BIOS editor существуют и другие программы для редактирования BIOS или расширения его возможностей. Они перечислены во врезке.

В рамках одной-единственной статьи просто невозможно охватить все подробности этого увлекательного процесса целиком, поэтому не воспринимайте ее как законченный путеводитель. Скорее это пригласительный билет в удивительный мир, скрытый в недрах небольшой микросхемы. И пускай кто-то скажет, что редактирование BIOS носит скорее познавательный, чем практический характер (устанавливать «разблокированный» BIOS в ответственный сервер я бы не рискнул)! Но должны же у администратора быть хоть какие-то развлечения, тем более что экспериментировать со списанными материнскими платами никто не запрещает!

Приложение

Как прожигают BIOS

AMI BIOS имеют специальный интерфейс, позволяющий работать с микросхемой FLASH-памяти (читать или прожигать), доступный через прерывания INT 15h и INT 16h (подробности– в Interrupt List Ральфа Брауна). Award BIOS такой возможности не имеют и программируются через порты ввода/вывода.

Конструктивно FLASH-микросхема подключена к южному мосту чипсета, поэтому описание интерфейса взаимодействия с BIOS, следует искать именно в документации на южный мост. Как вариант, можно воспользоваться готовым программатором, с которым поставляется все необходимое программное обеспечение.

Рисунок 13 . Микросхема FLASH-памяти, подключенная к южному мосту

DUAL-BIOS своими руками

Каждый радиолюбитель, умеющий держать паяльник в руках, может доработать материнскую плату, установив на нее сразу две микросхемы FLASH–памяти. Тогда между ними можно будет переключаться без труднодоступного и притом весьма дорогостоящего chip-extractor. Как видно из рис. 14, ничего сложного в DUAL-BIOS нет.

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

Введение и еще один отказ от ответственности

Не хочу повторять свою тираду про необходимость SPI-программатора и тот факт, что все модификации вы делаете на свой страх и риск, поэтому если вдруг вы ее не читали - прочтите и возвращайтесь.
С этого момента я полагаю, что с восстановлением после неудачной прошивки у вас пролем нет, и с UEFITool"ом вы тоже знакомы, поэтому останавливаться на технических вопросах типа «Как мне вытащить из образа файл» и «как потом его вставить обратно» не буду.

Необходимые инструменты

Чтобы успешно модифицировать ваш образ UEFI BIOS, могут потребоваться следующие инструменты:

  1. Hex-редактор на ваш выбор.
  2. Редактор образов UEFI, в качестве которого я, по понятным причинам, буду использовать UEFITool, но вы также можете использовать PhoenixTool (универсальный и хорошо отлаженый, но не без ограничений) или MMTool (более или менее сносно работает только с образами AMI Aptio).
  3. Если для необходимой модификации не нашлось постоянного паттерна, могут потребоваться ассемблер и дизассемблер с поддержкой x86-64. Ассемблера вполне досточно онлайнового , а вот дизассемблер нужен нормальный, иначе поиски точки модификации могут сильно затянуться.
    К сожалению, бесплатная версия IDA Pro не поддерживает разбор 64-битных PE-файлов, поэтому для Windows я рекомендую использовать утилиту dumpbin, входящую в набор компиляторов Microsoft, а для MacOS X - либо objdump, либо пробную версию Hopper Disassembler.
  4. Если модификация может быть выполнена утилитой от производителя UEFI-платформы, пусть ей она и будет выполнена - это надежнее, чем вручную. К сожалению, «узок круг этих революционеров и страшно далеки они от народа», поэтому чаще всего подходящей утилиты от производителя не существует.

Модификации

CPU PM patch, MSR 0xE2 lock removal

Что : обход установки бита LOCK (0x0F) в регистр MSR_PMG_CST_CONFIG_CONTROL (0xE2) после прохождения POST
Зачем : открытый регистр 0xE2 необходим для работы подсистемы CPU Power Management в MacOS X, при закрытом происходит kernel panic. Если вы не планируете её уставновку или в вашем UEFI BIOSе присутсвует настройка «Unlock C-State MSR» - эта модификация вам не нужна.
Где искать : в UEFI-драйверах, относящихся к CPU PM. В старых БИОСах код установки лока находится в модуле CpuPei, в новых - в модуле PowerManagement (может также называться PowerManagement2.efi или PowerMgmtDxe.efi).
Способ модификации : В CpuPei код, который нужно модифицировать, выглядит примерно так:

81 FB D0 06 02 00 cmp ebx,206D0h 75 0C jne FFFE426E 0D 00 80 00 18 or eax,18008000h ; Бит 15 (LOCK) ставится здесь EB 05 jmp FFFE426E 0D 00 80 00 00 or eax,8000h ; Или здесь 6A FF push 0FFFFFFFFh 6A F8 push 0FFFFFFF8h 6A 00 push 0 50 push eax 56 push esi E8 DC 0F 00 00 call FFFE5257 ; А внутри этой функции находится wrmsr

Достаточно заменить в этом месте 00800018 на 00000018 и 00800000 на 00000000, чтобы обойти установку лока.

В PowerManagement код выглядит иначе, чаще всего вот так:

80 FB 01 cmp bl,1 ; Если BL == 1 75 08 jne 0000000180002700 ; Перепрыгнуть две следующие команды 0F BA E8 0F bts eax,0Fh ; Установить бит 15 (LOCK) 89 44 24 30 mov dword ptr ,eax ; Сохранить результат в переменную на стеке 48 8B 54 24 30 mov rdx,qword ptr ; Загрузить значение из этой переменной в RDX B9 E2 00 00 00 mov ecx,0E2h ; А номер MSR в ECX E8 79 0C 00 00 call 0000000180003388 ; И вызвать функцию с wrmsr внутри

Можно заменить JNE на JMP, BTS на BTR или просто «занопать» весь код установки лока. Проще всего сделать первое, т.е. поменять 75 08 на EB 08.

Если такого кода в вашем UEFI BIOS не нашлось, ищите в драйверах, относящихся к CPU Power Management, значение 0xE2, и проверяйте весь код на предмет установки 15-го бита. В последних версиях BIOSов для некоторых современных десктопных плат AMI перестали лочить этот регистр, поэтому такого кода в них уже не найти - считайте, что производитель сделал этот мод за вас.

AES NI unlock

Что : обход установки бита LOCK (0x01) в регистр MSR 0x13C
Зачем : включение аппаратного ускорения AES на системах с экспортными ограничениями
Где искать : в UEFI-драйверах, относящихся к CPU PM, чаще всего в PowerManagement
Способ модификации : мало чем отличается от PM patch"а (и уже был описан на хабре), поэтому останавливаться подробно на нем не буду.

Whitelist removal

Что : обход белого списка совместимого оборудования, который использую в своих UEFI BIOS"ах некоторые производители ноутбуков.
Зачем : идея производителя понятна - можно продать обладателям «несовместимого» оборудования еще и ребрендированное совместимое втридорога. Если вы сами хотите решать, что какое оборудование совместимо с вашим ноутбуком - эта модификация для вас.
Где искать : в UEFI-драйверах, относящихся к PCIe-устройствам. У HP это драйвер обычно называется BiosLockPcie, у Lenovo - LenovoWmaPolicyDxe.efi, но может называться и иначе.
Способ модификации : т.к. производители ноутбуков стараются менять код проверки Whitelist почаще, то описать какой-то постоянный способ довольно трудно.
Общая стратегия поиска такова:

  1. Вставить несовместимую карту в нотбук, дождаться сообщения о невозможности загрузки и запомнить его.
  2. Найти это сообщение в одном из FFS-файлов.
  3. Найти код, который ссылается на это сообщение.
  4. Исследовать этот код и попробовать изменить его так, чтобы проверка всегда заканчивалась успешно. Сделать это можно двумя способами: либо пропатчить переход, либо добавить свои Vendor ID и Device ID в белый список.

Подробности модификации на примере HP хорошо описаны широко известным в кругах моддеров товарищем Donovan6000 , а я опишу вариант модификации на примере Lenovo X121E.
Проверка осуществляется драйвером LenovoWmaPolicyDxe.efi, попасть необходимо вот сюда:

44 38 0D F0 0F 00 00 cmp byte ptr ,r9b 75 18 jne 0000000000000C1A E8 35 FD FF FF call 000000000000093C 48 85 C0 test rax,rax 4C 8B C8 mov r9,rax 0F 88 77 FF FF FF js 0000000000000B8A C6 05 D6 0F 00 00 01 mov byte ptr ,1 49 8B C1 mov rax,r9 E9 68 FF FF FF jmp 0000000000000B8A

Все переходы к этому коду необходимо пропатчить на безусловные, а в самом коде необходимо «занопать» первую и вторую строки, после чего проверка всегда будет заканчиваться успешно.

BIOS lock removal

Что : снятие защиты от прошивки модифицированных образов UEFI встроенным программатором.
Зачем : при большом количестве экспериментов с UEFI доставать каждый раз программатор быстро надоедает, да и прошивка встроенным программатором происходит быстрее (засчет работы по протоколу QuadSPI вместо обыкновенного SPI в случае внешнего программматора).
Где искать : в драйверах чипсета, чаще всего в PchInitDxe (другой вариант мода - в BiosWriteProtect)
Способ модификации : вариант модификации PchInitDxe полностью описан на английском, поэтому я приведу только идею. Необходимо найти запись бита BIOS Lock Enable (BLE) в регистр BIOS_CNTL чипсета и предотвратить её. Сделать это можно в нескольких местах, например, вот здесь:

48 8B 4C 24 40 mov rcx,qword ptr ; Загрузить в RCX адрес структуры PchPlatformData 48 8B 41 50 mov rax,qword ptr ; А в RAX - адрес дочерней структуры LockdownConfig F6 00 10 test byte ptr ,10h ; Проверить, установлен ли пятый бит (BiosLock) 74 25 je 0000000180001452 ; Если не установлен, перепрыгнуть весь код ниже 8A 50 01 mov dl,byte ptr B9 B2 00 00 00 mov ecx,0B2h ; E8 A2 5A 00 00 call 0000000180006EDC 4C 8D 87 DC 00 00 00 lea r8, ; В RDI лежит базовый адрес регистров LPC чипсета, а 0xDC - смещение регистра BIOS_CNTL 33 C9 xor ecx,ecx 4C 8B CD mov r9,rbp 33 D2 xor edx,edx 4C 89 44 24 20 mov qword ptr ,r8 E8 AA 76 00 00 call 0000000180008AFC ; Установить лок

Можно изменить JE на JMP, но иногда вместо короткого прыжка попадается длинный, у которого приходится дополнительно вычислять смещение, поэтому лучше изменить test на любую команду, устанавливающую флаг ZF, например на xor rax, rax (48 31 C0), а возможную разницу в размерах команд исправить добавлением NOP"ов.
Если в PchInitDxe нужного кода не нашлось, можно изменить драйвер BiosWriteProtect таким образом, чтобы обойти регистрацию находящегося в нем SMI-обработчика, который устанавливает бит BLE при попытке его сброса, после чего для разблокировки прошивки достаточно сбросить этот бит. У меня отлично работает вышеописаный способ, поэтому этот вариант я пока не пробовал и потому подробно описывать не буду.

Advanced settings unlock

Что : разблокировка доступа к скрытым настройкам BIOS Setup.
Зачем : среди эти настроек может попасться что-то интересное, но обычно их скрывают не просто так.
Где искать : для Phoenix и Insyde меню хранится в HII-файлах с именами вроде SetupMain, SetupAdvanced и т.п. Для AMI меню хранится в файле Setup, а настройки - в AMITSE. Более того, AMI предоставляет пороизводителям end-user продуктов свою программу AMIBCP, версии которой частенько утекают в публичный доступ. Работа с ней достаточно проста, поэтому описывать её я не вижу смысла - скачайте и попробуйте.
Способ модификации : для AMI - открываем образ в AMIBCP, меняем настройки по умолчанию, сохраняем, прошиваем, выполняем сброс настроек, готово. Для Insyde и Phoenix все немного сложнее. Если доступ на запись в NVRAM не запрещен, хорошо работает метод товарища Falseclock , описаный в этой его статье , а вот если доступа нет - придется либо разбирать формат HII Form File вручную, либо предоставить это либо скрипту, описанному в вышеупомянутой статье, либо утилите Universal IFR Extractor , которую необходимо натравить на извлеченные из образа UEFI файлы HII. После этого достаточно изменить в извлеченном файле HII Form условия SUPRESS_IF так, чтобы они никогда не выполнялись, и все меню станут доступны.

CPU Microcode, OptionROM, drivers and images update

Что : обновление микрокодов CPU, прошивок различных переферийных устройств, EFI-драйверов и отображаемых при загрузке и в BIOS Setup картинок.
Зачем : иногда обновление помогает исправить ошибки в работе системы, иногда добавляет поддержку важной фичи (работу TRIM для SSD в RAID0, к примеру), но чаще всего обновление производится потому, что наконец вышла новая версия.
Где искать : сильно зависит от производителя, EFI-драйверы можно найти просто по имени (SataDriver, например), микрокод можно найти по Model ID процессора, для которого он предназначен, OROMы - по VID/DID устройств, которые они обслуживают, картинки в формате JPEG можно найти по строке «JFIF», в GIF - по «GIF8» и т.п.
Способ модификации : прост как мычание - найти новую версию в свободном доступе, найти, где в образе лежит старая, и заменить одно на другое. Для AMI товарищем LS_29 был написан набор для автоматического обновления на основе утилиты MMTool, скачать можно из нашей темы на оверах . Об автоматизированных решениях для Phoenix или Insyde я пока не слышал.
Замена картинок может быть сделана либо утилитами вроде AMI ChangeLogo, либо вручную, но чаще всего не подготовленная специальным образом картинка вызывает зависание, т.к. декодеры форматов изображений бывают сильно ограничены. В общем, данные EXIF лучше удалить заранее.

Заключение

В этой статье я описал только те моды, которые успешно делал своими руками. Если у вас есть какие-то замечания и дополнения - буду рад вашим комментариям.
Еще раз смиренно попрошу администрацию Хабра и лично НЛО о создании хаба UEFI, ибо это очень широкая тема, а статьи по ней буквально некуда приткнуть.
Спасибо за внимание, желаю вам удачных модификаций.

Здесь предоставлен перевод и небольшие дополнения статьи:

Если у вас кривые руки - сначала ровняете руки, потом лезете к технике. Если что-то поломаете - это ваши проблемы, не пишите и не звоните. Консультаций не даю. Пожелания и исправления высылайте на почту (в конце статьи).

Да, кстати, видеокарты с модифицированным биосом гарантии не подлежат. Делайте все на свой страх и риск.

Что нам нужно для модифицирования биоса видеокарты:

  1. для сохранения биоса и заливки нового в карту
  2. GPU-Z чтобы получить детальную информацию о видеокарте, типе памяти и тд
  3. Anoraks ATOMBIOSReader для получения детальной информации из биоса видеокарты
  4. Anoraks VBIOS CRC checker для подсчета корректной чексуммы для модифицированного биоса
  5. , собственно говоря, редактор в котором мы будем шаманить

У меня в подопытных будет видеокарта SAPPHIRE NITRO RADEON RX 480 4G с партномером 299-2E347-400SA, с частотами 1266 МГц по чипу и 1750 МГц по памяти. Память Elpida:

1. Запускаем ATIWinFlash, сохраняем биос в надежное место. Создаем копию на всякий пожаный.

Даже самый последний PolarisBIOSEditor не понимает эту память, что, собственно, и заставило меня начать колдовать:

2. Теперь для модификации расковыриваем биос и раскладываем по полочкам нужные значения. Для всех биосов существует мастер список таблиц с командами и значениями. Чтобы получить эту таблицу используем Anoraks-ATOMBIOSReader, открываем сохраненный биос:

И получаем в папке с биосом тесктовый файл с нужными нам значениями:

3. Далее юзаем HEX Workshop. Запускаем, открываем сохраненный биос, получаем такой вот беспредел (не очкуйте, щас разберемся что к чему):

Кратко. Окно программы разделена на 4 части. Вехнее левое (основное) - это окно-координатная система, которая позволяет вам попасть в нужную часть биоса. Можно сравнить ее с шахматной доской с ее клетками. Слева у вас номер строки, сверху - номер колонки, ну а комбинация номеров строки и колонки дает адрес ячейки (вау!). А в основном поле вы видите актуальные значения в шестнадцатеричной системе. Вот это мы и будем менять.

Справа у нас окошко с «понятными» значениями - это перевод с шестнадцатеричной системы в читаемую форму.

Снизу справа окно поиска, закладок и тд, к нему вернемся позже

4. Теперь раскурачиваем биос и собираем полезную информацию.

В текстовом поле видим информацию для какой карточки этот биос был создан. В нашем случае это ATOMBIOS для Sapphire Ellesmere (Polaris) GPU c 4GB видеопамяти. И версия биоса VER015.050.000.000.000000.347. Ну я подозреваю что вы то знаете какая у вас каточка и сколько там памяти, но эта информация подверждает, что мы работаем таки с правильным файлом.

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

Поэтому открываем текстовый файлик, полученный из данных биоса (из пункта 2).

В таблице 4 колонки с командами и 5ая колонка со значениями.

Первая колонка показывает номер ряда в шестнадцатеричном (HEX) значении, вторая стартовый адрес записаного значения, третья - длина строки/записаного значения, четвертая - название команды/значение. 5 колонка - перевод 4 колонки в читаемый вид.

Короче говорят, нам нужно VRAM_Info - который нам укажет на номер типа памяти.

У меня это:

001c: a44e Len 073f Rev 02:02 (VRAM_Info)

Чтобы найти какая у нас память ищем начальный адрес из VRAM_Info - у нас это a44e .

Идем в HEX Workshop. Жмем , или переходим по меню Edit -> Goto... В окошке вставляем адрес и жмем Go и курсор перемещается на нужный адрес:

Справа в текстовом поле среди всякого бреда видим два вменяемых набора символов.

H5GC4H24AJR и EDW4032BABG

Первая - это HYNIX

Вторая - это Micron либо Elpida

Вот она наша Элпида!

Биос написан под 2 типа памяти сразу - Micron и Elpida. Именно поэтому в него и прописаны настройки для обоих производителей.

5. Ищем и меняем тайминги.

Мы будем делать так называемый мемшифт или, говоря нормальным языком, сдвигать/прописывать тайминги от меньшей на более высокую частоту. Это решение позволяет увеличить производительность в майнинге Эфира (Ethereum).

Ближе к телу, как говорил классик.

Нам нужен стандартный виндовый калькулятор в режиме ТыЖПрограммист:

Так-с, давайте переведем значение частоты 1500 в шестнадцатеричную систему исчисления (далее HEX). На калькуляторе клацаем на DEC чтобы перевести калькулятор в десятеричную систему исчисления. Далее нужно ввести 1500 умноженное на 100, то есть 150 000. И в поле HEX видим значение 249F0 - это 1500 в шестнадцатеричной системе исчисления.

HEX редактор показывает значения в реверсированном/перевернутом виде. По сему мы тоже перевернем полученное в калькуляторе значение. Как это делается: число переворачивается символами по парам.

Последняя пара F0 стает первой, потом 49 , последняя 2 одна, поэтому добавляем 0 в хвост.

Получаем .

Идем в HEX редактор и ищем F04902: жмем Ctrl + f , или через меню Edit -> Find… открывается окно поиска. Для Type выбираем Hex Values и в value вписываем F04902. Ставим птичку на Find all Instances и жмем Ок.

В нижнем правом окне отобразятся все совпадения. Нам нужно значение, которое идет после значения типа памяти:

В нашем случае у нас биос под двоих производителей памяти, первый - Hynix, второй - Elpida:

После значения идут 00, 01, 02 - которые соответвуют типу памяти.

У нас элпида, ставим себе закладку. Выделяем , клик правой кнопкой Add Color Mapping..., выбираем Background Color (у меня красный)

1625 умножить на 100 это 162500 в DEC и переводится как 27AC4 в HEX. После реверса добавляем 02 в конец (напомню, у нас элпида, второй тип памяти по счету в биосе) получаем C47A0202

Получается что-то такое:

Теперь начинаем модифицирование.

Чаще всего записывают тайминги от 1500 МГц в 1625/1750/2000 МГц.

Не фанатейте, не нужно записывать совсем низкие тайминги - это может привести к ошибкам в вычислениях, что привет к так называемым реджекнутым шарам (rejected shares). Отслеживайте ошибки через HWiNFO64 (под нагрузкой):

По-хорошему, ошибок не должно быть вообще.

Чтобы перезаписать тайминги, мы берем стоку, которая между значениями 1500 и 1625 (те, которые мы цветом отметили) и вставляем эту строку в 1625-1750, 1750-2000.

Также иногда зашивают частоты от 1425 в 1500, и от 1375 в 1425 (мемшифт)

Получаем такую картину:

Сохраняем биос под новым именем. Например, bios_new.rom

6. Исправляем чексумму CRC (CRC checksum).

Перед тем, как заливать биос в видик, необходимо сделать еще одну маленькую манипуляцию. Исправить чексумму в файле биоса.

Что такое чексумма CRC (CRC checksum)? Чексумма - это значение либо строка, которая рассчитывается исходя из содержимого файла. Если оригинальный файл изменяется, также изменяется CRC для этого файла. Чексумму CRC можно сравнить с быстрым индикатором изменялся ли файл.

Каждый биос видеокарты содержит CRC чексумму внутри своего файла. Как только мы изменили биос, CRC поменялся и он перестал соответствовать сохраненному в файле.

Если мы зашьем такой биос с кривым CRC, программа прошивки покажет ошибку. Даже если прошьете, драйвер откажется работать с таким устройством, а в худшем случае, вы превратите карту в кирпич.

Так давайте же посчитаем правильный CRC.

Для этого нам нужен Anoraks-AMD-VBIOS-CRC-checker.

Запускаем его, жмем Check CRC, выбираем сохраненный модифицированный биос bios_new.rom и видим:

Новый CRC отличается от сохраненного.

Идем опять в наш HEX редактор, нам нужна первая строка кода. Наша чексумма записана по адресу , идем туда:

Бессовестно меняем ее на правильную (expected checksum из Anoraks-AMD-VBIOS-CRC-checker):

Сохраняем биос в файлик bios_new2.rom

Еще раз проверяем его на правильность CRC чексуммы.

Зашиваем в видик. Это не описываю, тут и так миллион мануалов есть:

Запускаем Wattools + HWiNFO64 (следим за ошибками памяти). У меня память заработала на 1950 МГц и выдавала немного ошибок. Ошибки - плохо, будут реджекнутые шары. Совсем без ошибок работала на частоте 1900 МГц.

Изначально каточка выдавала около 22 мегахешей в соло в эфире на Claymore 8.0

После манипуляций над биосом получили:

На даунвольте 27.8 ETH + 415 DCR потребление 92 Ватта, температура GPU 74 градуса (в комнате 20), память работает на 1950 МГц:

Без даунвольта получилось около 28,5 Мх в эфире + 450 в декрете, потребление больше 140 Ватт, только кому оно такое надо?

Что ж, это не мега-результат, учитывая, что хорошая 470 с памятью Самсунг выдает 30+ в эфире + 450 в декрете, но мы не стесняемся своих достижений.

  • UEFI
    • Tutorial

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

    В PowerManagement код выглядит иначе, чаще всего вот так:

    80 FB 01 cmp bl,1 ; Если BL == 1 75 08 jne 0000000180002700 ; Перепрыгнуть две следующие команды 0F BA E8 0F bts eax,0Fh ; Установить бит 15 (LOCK) 89 44 24 30 mov dword ptr ,eax ; Сохранить результат в переменную на стеке 48 8B 54 24 30 mov rdx,qword ptr ; Загрузить значение из этой переменной в RDX B9 E2 00 00 00 mov ecx,0E2h ; А номер MSR в ECX E8 79 0C 00 00 call 0000000180003388 ; И вызвать функцию с wrmsr внутри
    Можно заменить JNE на JMP, BTS на BTR или просто «занопать» весь код установки лока. Проще всего сделать первое, т.е. поменять 75 08 на EB 08.

    Если такого кода в вашем UEFI BIOS не нашлось, ищите в драйверах, относящихся к CPU Power Management, значение 0xE2, и проверяйте весь код на предмет установки 15-го бита. В последних версиях BIOSов для некоторых современных десктопных плат AMI перестали лочить этот регистр, поэтому такого кода в них уже не найти - считайте, что производитель сделал этот мод за вас.

    AES NI unlock

    Что : обход установки бита LOCK (0x02) в регистр MSR 0x13C
    Зачем : включение аппаратного ускорения AES на системах с экспортными ограничениями
    Где искать : в UEFI-драйверах, относящихся к CPU PM, чаще всего в PowerManagement
    Способ модификации : мало чем отличается от PM patch"а (и уже ), поэтому останавливаться подробно на нем не буду.

    Whitelist removal

    Что : обход белого списка совместимого оборудования, который использую в своих UEFI BIOS"ах некоторые производители ноутбуков.
    Зачем : идея производителя понятна - можно продать обладателям «несовместимого» оборудования еще и ребрендированное совместимое втридорога. Если вы сами хотите решать, что какое оборудование совместимо с вашим ноутбуком - эта модификация для вас.
    Где искать : в UEFI-драйверах, относящихся к PCIe-устройствам. У HP это драйвер обычно называется BiosLockPcie, у Lenovo - LenovoWmaPolicyDxe.efi, но может называться и иначе.
    Способ модификации : т.к. производители ноутбуков стараются менять код проверки Whitelist почаще, то описать какой-то постоянный способ довольно трудно.
    Общая стратегия поиска такова:
    1. Вставить несовместимую карту в нотбук, дождаться сообщения о невозможности загрузки и запомнить его.
    2. Найти это сообщение в одном из FFS-файлов.
    3. Найти код, который ссылается на это сообщение.
    4. Исследовать этот код и попробовать изменить его так, чтобы проверка всегда заканчивалась успешно. Сделать это можно двумя способами: либо пропатчить переход, либо добавить свои Vendor ID и Device ID в белый список.
    Подробности модификации на примере HP хорошо описаны широко известным в кругах моддеров товарищем Donovan6000 , а я опишу вариант модификации на примере Lenovo X121E.
    Проверка осуществляется драйвером LenovoWmaPolicyDxe.efi, попасть необходимо вот сюда:
    44 38 0D F0 0F 00 00 cmp byte ptr ,r9b 75 18 jne 0000000000000C1A E8 35 FD FF FF call 000000000000093C 48 85 C0 test rax,rax 4C 8B C8 mov r9,rax 0F 88 77 FF FF FF js 0000000000000B8A C6 05 D6 0F 00 00 01 mov byte ptr ,1 49 8B C1 mov rax,r9 E9 68 FF FF FF jmp 0000000000000B8A
    Все переходы к этому коду необходимо пропатчить на безусловные, а в самом коде необходимо «занопать» первую и вторую строки, после чего проверка всегда будет заканчиваться успешно.

    BIOS lock removal

    Что : снятие защиты от прошивки модифицированных образов UEFI встроенным программатором.
    Зачем : при большом количестве экспериментов с UEFI доставать каждый раз программатор быстро надоедает, да и прошивка встроенным программатором происходит быстрее (засчет работы по протоколу QuadSPI вместо обыкновенного SPI в случае внешнего программматора).
    Где искать : в драйверах чипсета, чаще всего в PchInitDxe (другой вариант мода - в BiosWriteProtect)
    Способ модификации : вариант модификации PchInitDxe полностью описан на английском, поэтому я приведу только идею. Необходимо найти запись бита BIOS Lock Enable (BLE) в регистр BIOS_CNTL чипсета и предотвратить её. Сделать это можно в нескольких местах, например, вот здесь:
    48 8B 4C 24 40 mov rcx,qword ptr ; Загрузить в RCX адрес структуры PchPlatformData 48 8B 41 50 mov rax,qword ptr ; А в RAX - адрес дочерней структуры LockdownConfig F6 00 10 test byte ptr ,10h ; Проверить, установлен ли пятый бит (BiosLock) 74 25 je 0000000180001452 ; Если не установлен, перепрыгнуть весь код ниже 8A 50 01 mov dl,byte ptr B9 B2 00 00 00 mov ecx,0B2h ; E8 A2 5A 00 00 call 0000000180006EDC 4C 8D 87 DC 00 00 00 lea r8, ; В RDI лежит базовый адрес регистров LPC чипсета, а 0xDC - смещение регистра BIOS_CNTL 33 C9 xor ecx,ecx 4C 8B CD mov r9,rbp 33 D2 xor edx,edx 4C 89 44 24 20 mov qword ptr ,r8 E8 AA 76 00 00 call 0000000180008AFC ; Установить лок
    Можно изменить JE на JMP, но иногда вместо короткого прыжка попадается длинный, у которого приходится дополнительно вычислять смещение, поэтому лучше изменить test на любую команду, устанавливающую флаг ZF, например на xor rax, rax (48 31 C0), а возможную разницу в размерах команд исправить добавлением NOP"ов.
    Если в PchInitDxe нужного кода не нашлось, можно изменить драйвер BiosWriteProtect таким образом, чтобы обойти регистрацию находящегося в нем SMI-обработчика, который устанавливает бит BLE при попытке его сброса, после чего для разблокировки прошивки достаточно сбросить этот бит. У меня отлично работает вышеописанный способ, поэтому этот вариант я пока не пробовал и потому подробно описывать не буду.

    Advanced settings unlock

    Что : разблокировка доступа к скрытым настройкам BIOS Setup.
    Зачем : среди эти настроек может попасться что-то интересное, но обычно их скрывают не просто так.
    Где искать : для Phoenix и Insyde меню хранится в HII-файлах с именами вроде SetupMain, SetupAdvanced и т.п. Для AMI меню хранится в файле Setup, а настройки - в AMITSE. Более того, AMI предоставляет пороизводителям end-user продуктов свою программу AMIBCP, версии которой частенько утекают в публичный доступ. Работа с ней достаточно проста, поэтому описывать её я не вижу смысла - скачайте и попробуйте.
    Способ модификации : для AMI - открываем образ в AMIBCP, меняем настройки по умолчанию, сохраняем, прошиваем, выполняем сброс настроек, готово. Для Insyde и Phoenix все немного сложнее. Если доступ на запись в NVRAM не запрещен, можно воспользоваться методом товарища Falseclock , описанным в , а вот если доступа нет - придется модифицировать прошивку. Потребуется разобрать формат HII Form File либо вручную, либо предоставить это скрипту, описанному в вышеупомянутой статье, или утилите Universal IFR Extractor , которую необходимо натравить на извлеченные из образа UEFI файлы HII. После этого достаточно изменить в извлеченном файле HII Form условия SUPRESS_IF так, чтобы они никогда не выполнялись, и все меню станут доступны.

    CPU Microcode, OptionROM, drivers and images update

    Что : обновление микрокодов CPU, прошивок различных переферийных устройств, EFI-драйверов и отображаемых при загрузке и в BIOS Setup картинок.
    Зачем : иногда обновление помогает исправить ошибки в работе системы, иногда добавляет поддержку важной фичи (работу TRIM для SSD в RAID0, к примеру), но чаще всего обновление производится потому, что наконец вышла новая версия.
    Где искать : сильно зависит от производителя, EFI-драйверы можно найти просто по имени (SataDriver, например), микрокод можно найти по Model ID процессора, для которого он предназначен, OROMы - по VID/DID устройств, которые они обслуживают, картинки в формате JPEG можно найти по строке «JFIF», в GIF - по «GIF8» и т.п.
    Способ модификации : прост как мычание - найти новую версию в свободном доступе, найти, где в образе лежит старая, и заменить одно на другое. Для AMI товарищем LS_29 был написан набор для автоматического обновления на основе утилиты MMTool, скачать можно из нашей темы на оверах . Об автоматизированных решениях для Phoenix или Insyde я пока не слышал.
    Замена картинок может быть сделана либо утилитами вроде AMI ChangeLogo, либо вручную, но чаще всего не подготовленная специальным образом картинка вызывает зависание, т.к. декодеры форматов изображений бывают сильно ограничены. В общем, данные EXIF лучше удалить заранее.

    Заключение

    В этой статье я описал только те моды, которые успешно делал своими руками. Если у вас есть какие-то замечания и дополнения - буду рад вашим комментариям.
    Еще раз смиренно попрошу администрацию Хабра и лично НЛО о создании хаба UEFI, ибо это очень широкая тема, а статьи по ней буквально некуда приткнуть.
    Спасибо за внимание, желаю вам удачных модификаций.

    Теги:

    • UEFI
    • модификация
    • UEFITool
    Добавить метки

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

    Откуда берет свое начало BIOS (Basic Input/Output System) — базовая система ввода/вывода? Ее программный код рождается в лабораториях разработчиков. Наиболее известные из них — фирмы Award и AMI . Затем каждый производитель материнских плат адаптирует BIOS к конкретной модели и по своему усмотрению отключает (блокирует) определенные функции. Причем заблокированными могут оказаться многие функции, влияющие на "тонкую" настройку BIOS, и от которых, в свою очередь, зависит производительность компьютера.

    Для чего же производители материнских плат блокируют некоторые функции? Прежде всего, это делается в целях упрощения процедуры настройки Setup BIOS. Отключают и те функции, которые в конкретной материнской плате отсутствуют, но могут быть задействованы в следующих модификациях. Используя специальное программное обеспечение (утилиты), можно разблокировать практически все отключенные функции и опции в BIOS. После модификации результаты необходимо сохранить в отдельном файле и затем произвести обновление BIOS. При загрузке Setup BIOS на экране монитора можно будет увидеть новые дополнительные возможности настройки. Для каждой фирмы нужна своя утилита. Обладателям Award BIOS понадобится утилита Modbin , а для тех, у кого на компьютере установлена AMI BIOS, необходимо скачать программу AMIBCP . Интересен тот факт, что утилита AMIBCP разработана программистами самой фирмы AMI.

    А теперь перейдем к самому главному — к практическим занятиям. Прежде всего, следует подготовить необходимое программное обеспечение. Итак, для модификации потребуются утилита для обновления ("прошивальщик"), файл с действующей версией BIOS и утилита для модификации. Утилиту для "прошивки" можно найти в Интернете на сайте производителя материнской платы или на компакт-диске, прилагающемся к "материнке". После чего ее необходимо скопировать на жесткий диск компьютера. Файл, в котором размещена текущая версия BIOS, можно получить с помощью этой утилиты. Утилиты для модификации BIOS можно скачать из Интернета: для Award по адресу http://www.biosmods.com/download.php , а для AMI — Файл, содержащий BIOS, желательно разместить на жестком диске в одной папке вместе с утилитой для ее модификации. Обязательно перед модификацией сделайте резервную копию файла с BIOS. Теперь, когда все готово, можно смело загружать утилиту.

    В качестве примера рассмотрим случай, когда на компьютере установлена AMI BIOS. Что касается BIOS от Award, то принцип модификации аналогичен, и в этой статье рассматриваться не будет. Утилита AMIBCP является DOS-программой и без проблем загружается под Windows без перезагрузки в режим эмуляции MS-DOS. Объем AMIBCP (файл amibcp75.exe) в распакованном виде составляет 542 Кбайт. После загрузки утилиты AMIBCP необходимо с клавиатуры ввести имя файла, содержащего BIOS, например, 7vr_f4.bin . Далее, находясь в главном меню программы, ищем раздел "Configure Setup Data" и просматриваем по порядку все подразделы. Особенно интересны для нас будут подразделы "Chipset Setup" и "BIOS Features Setup". Сама модификация заключается в активации заблокированных опций. В каждом подразделе присутствуют столбцы с заголовками "Option Name", "Active", "Rights", "Optimal" и "FailSafe". Заблокированные опции подсвечены, напротив этих опций в столбце "Active" указано значение "No". Клавишами Page Up и Page Down можно задействовать ту или иную заблокированную установку. Возможны случаи, когда в столбце с заголовком "Option Name" названия опций на экране полностью отсутствуют. В таком случае придется включать все опции подряд "вслепую". Закончив изменения, выходят в главное меню программы AMIBCP и, нажимая на клавишу F10, сохраняют модифицированный BIOS в файле. После сохранения модифицированного файла применяют "прошивальщик" — утилиту для обновления BIOS. Ряд производителей материнских плат выпускает свои фирменные программы для обновления BIOS непосредственно в среде Windows. К их числу относятся утилиты фирм Gigabyte, ASUS, Intel и др. Перед прошивкой следует убедиться в том, что в Setup BIOS разрешено обновление — в разделе BIOS Features Setup параметр BIOS Flash Protection должен находиться в положении Disabled или Auto. После "прошивания" производят перезагрузку компьютера и входят в Setup BIOS. В моей практике модификации были случаи, когда в BIOS оказывались заблокированными настройки, позволяющие повышать производительность системы. А именно: возможность изменять напряжение на шине AGP в интервале 1,5... 1,8 В с шагом 0,1 В и на модулях памяти DDR в пределах 2,5...2,8 В с шагом 0,1 В, а также увеличивать на 5; 7,5 или 10 % штатное напряжение на ядре процессора. Имели место случаи, когда в BIOS были заблокированы режим S.M.A.R.T. для жестких дисков и режим Bypass Mode для оптимальной работы CPU (см. рисунок).

    Интересной оказалась и заблокированная опция в подразделе Hardware Monitor — Slow Down CPU Duty Cycle . При переходе системы в режим Doze тактовая частота CPU уменьшается. С помощью этой опции можно установить другое значение тактовой частоты CPU в процентах от предыдущего. В заключение хочу напомнить: не стоит из-за полного контроля над BIOS терять голову. И поэтому к модификации и изменению параметров следует подходить с некоторой долей осторожности и с пониманием того, что вы делаете и на что идете.



    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: