Как перепрошить биос программа

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

Вступление, отказ от ответственности

Прошивка UEFI BIOS на современных платах, несмотря на наличие различных технологий вроде USB BIOS Flashback, Dual BIOS, Flash Recovery и т.п. — все равно лотерея. Прошивка же модифицированных образов — лотерея вдвойне.

Лучшая программа для прошивки Bios X99 плат! Делаем Unlock TB, Undervolting, Разблокировка таймингов


Именно поэтому я прошу до начала любых экспериментов с прошивкой сделать при помощи аппаратного SPI-программатора полный дамп содержимого микросхемы, иначе восстановление после неудачной прошивки (а она рано или поздно случится) будет долгим, дорогим и болезненным.
SPI-программатор в данный момент может быть собран в домашних условиях из чего угодно, от пары резисторов и конденсаторов (SPIPGM) до Arduino или Raspberry Pi. Мой вариант дешевого и быстрого SPI-программатора описан здесь. Любителям вытравить пару-тройку плат советую обратить внимание на этот проект, а почитателям устройств «все-в-одном» — на этот.
Далее по тексту я полагаю, что у вас есть программатор, возможность восстановления после сбоя прошивки и готовность к экспериментам. Безумству храбрых, конечно, тоже можно петь песни, но не говорите потом, что я не предупреждал.
Традиционно, все, что вы тут сейчас прочитаете, написано в образовательных целях, автор не несет ответственности за возможную порчу вашего оборудования, недополученную прибыль, потерю времени и веры в человечество, вы пользуетесь предоставленным софтом на свой страх и риск и так далее.

UEFITool

Устав от ограничений существующих утилит для работы с образами UEFI (ну и пораженный синдромом NIH в самое сердце), я написал кроссплатформенную утилиту с открытым исходным кодом — UEFITool.
Это редактор образов UEFI, написан на C++Qt, распространяется под лицензией BSD, готовые сборки выкладываются сюда.
Проект находится в активной разработке, поэтому код не блещет красотой и баги нет-нет, да попадаются. Если вдруг наткнетесь — буду рад репортам.
Для нормальной работы с утилитой стоит прочитать предыдущие статьи о структуре образа UEFI, иначе непонятно будет, что вообще происходит, но я постараюсь все же пояснить некоторые моменты. Будем считать, что это заготовка для будущей документации.

Прошивка BIOS программатором CH341A #РемонтПодписчику | Deny Simple


В качестве примеров в обеих частях статьи я буду использовать полные дампы с Zotac Z77-ITX WiFi (AMI Aptio4) и Dell Vostro 3360 (Phoenix SCT 2.3). К сожалению, у меня нет тестового стенда на платформе Insyde H2O, поэтому рассказать о ней мне нечего. Возможно, Falseclock знает о них немного больше.
С точки зрения UEFITool’а разницы между образами UEFI разных производителей практически нет, поэтому я остановлюсь на ней при описании патчей.
Итак, запускаем UEFITool, открываем образ (Ctrl+O) и видим примерно такое:


В левой части окна отображается структура открытого образа в виде дерева, справа — информация о выбранном элементе дерева, снизу — сообщения, указывающие на ошибки в формате файла, в данном случае — использование разработчиками Phoenix секций с типом 0xF0, назначение которых не описано в спецификации UEFI PI . Двойной щелчок по сообщению раскроет дерево так, чтобы был виден либо на сам элемент, который это сообщение вызвал, либо его родительский элемент. В это же окно выводятся результаты поиска, который можно вызвать нажатием Ctrl+F (оба варианта одной картинкой):

Здесь следует немного пояснить терминологию. Практически все структурные элементы в образе UEFI имеют заголовок, в котором хранятся служебные данные вроде GUID, атрибутов, контрольных сумм и т.п., и тело — в нем хранятся собственно данные. Текст же в заголовках не хранится, поэтому для него такой выбор не нужен.
На первом уровне дерева находятся Flash-регионы, в данном случае это Descriptor, ME и BIOS:

При выборе региона Descriptor можно узнать настройки доступа к регионам, в данном случае доступ полный, но такие настройки встречаются очень редко. Intel рекомендует производителям оборудования закрывать доступ к региону МЕ на чтение/запись и региону Descriptor на запись, именно поэтому на большинстве плат встроенными средствами полный дамп снять без «танцев с бубном» практически невозможно. При выборе региона ME можно узнать версию ME firmware, если же она не отображается — это не к добру и такой образ лучше не шить.
Перейдем еще на уровень ниже, к содержимому региона BIOS:

На этом уровне могут встречаться два типа элементов: тома и свободное место. Свободное в данном случае — не обязательно пустое, к примеру, в этом образе в самом начале Padding’а хранится прошивка EC .
Тома делятся на обыкновенные (формат файловой системы известен), загрузочные (формат ФС известен, содержат Security Core, изменять стоит с особой осторожностью) и неизвестные (либо неизвестен формат ФС, либо разбор еще не реализован). В нашем случае первый том после свободного пространства в начале — обычный, затем два неизвестных (на самом деле, в первом хранится NVRAM, а во втором — ключи и БД для SecureBoot, но программе я это пока еще не объяснил), последний том является загрузочным.
Откроем теперь обычный том, в данном случае в нем хранятся файлы, загружаемые в фазе DXE.

Такая структура (основной том внутри сжатой секции) используется довольно часто, она позволяет сэкономить приличное количество места в микросхеме. Есть еще вариант сжимать не весь том целиком, а каждый файл по отдельности — это несколько менее экономно в плане места, зато стартует такой UEFI BIOS быстрее, т.к. нет смысла распаковывать файлы, к которым не было обращений.
Теперь заглянем внутрь файла:

Все данные в нем хранятся внутри GUID-defined-секции (в заголовке таких секций обычно хранится ЭЦП или контрольная сумма, в данном случае — 4 байта, похожие на КС, которую, однако, никто не проверяет), и делятся на 4 секции: образ PE32 — собственно исполняемый файл в формате PE/COFF, секция зависимостей DXE — определяет порядок загрузки DXE-драйверов, секция UI — в ней хранится текст «SystemCapsuleRt.efi» в формате Unicode и неизвестная секция типа 0xF0 (скорее всего, её содержимое каким-то образом связано с вышеупомянутой КС).
Все это хорошо, конечно, но редактирования пока не видно. Не беда, вызываем для любого элемента контекстное меню, в котором видно, что с этим элементом можно сделать.

А сделать можно следующее:

  • сохранить элемент в файл либо целиком (Extract as is), либо только данные, без заголовков (Extract body)
  • пересобрать элемент (Rebuild), в этом случае при сохранении измененного образа для него (и всех его родительских элементов) будут пересчитаны размеры, контрольные суммы, исправлено выравнивание, т.е. структура образа будет приведена в соответствие со спецификацией UEFI PI
  • вставить элемент из файла, либо перед выбранным (Insert before), либо после (Insert after), либо внутрь него (Insert into, в данном случае внутрь PE32-секции ничего вставить не получится)
  • заменить элемент на другой элемент из файла, либо целиком (Replace as is), либо только его тело (Replace body)
Читайте также:
Что делать если есть идея программы

Последнее действие является наиболее полезным, т.к. позволяет произвести модификацию какой-либо части UEFI, не затрагивая при этом структуры всего образа.

Пример использования

Рассмотрим в качестве примера полезную для пользователей MacOS X на ПК модификацию: обход установки бита LOCK (0x0F) в регистре MSR_PMG_CST_CONFIG_CONTROL (0xE2). Бит этот устанавливается DXE-драйвером PowerManagement, чтобы ОС не могла управлять множителем CPU путем записи в этот регистр. Для Windows и Linux это не большая проблема, а вот MacOS X не может стерпеть от UEFI такой наглости. Можно, конечно, пропатчить драйвер AICPM.kext (в 10.8) или ядро (в 10.9), но лучше пропатчить DXE-драйвер и не бояться, что очередное автоматическое обновление сломает загрузку. Патч этот нужен только системам на базе процессоров Intel SandyBridge, IvyBridge и Haswell и их *-E вариантов и делается так:

  1. Открываем свой дамп в UEFITool, очищаем Messages нажатием Ctrl+Backspace, чтобы не мешали
  2. Открываем поиск, выбираем Hex-pattern, Body only, ищем строку «75080FBAE80F»
  3. Делаем двойной щелчок на сообщении о том, что строка найдена, сохраняем тело указанного элемента в файл
  4. Исправляем в Hex-редакторе «75080FBAE80F» на «EB080FBAE80F» (JE становится JMP), сохраняем изменения
  5. Заменяем содержимое выбранного элемента на измененное, старый элемент будет помечен на удаление (Remove), новый — на замену (Replace), все родительские элементы до корня — на перестроение (Rebuild)

  6. Сохраняем измененный образ (Ctrl+S), если сохранение прошло успешно, будет выдан запрос на открытие только что сохраненного образа, если нет — сообщение об ошибке

Прошиваем полученный образ тем же SPI-программатором, которым он был сделан, и получаем отсутствие паники ядра при загрузке MacOS X.

Подробности, другие модификации, заключение

Если вам интересно, откуда взялся магический паттерн «75080FBAE80F» и на какие еще патчи стоит обратить внимание — читайте вторую часть этой статьи, которая будет опубликована немного позже. В ней я постараюсь подготовить побольше примеров в формате «что за модификация, зачем нужна, как сделать, кем и как была найдена», не углубляясь каждый раз в то, как именно вынуть подлежащий модификации элемент и как вставить его обратно.
Надеюсь, что статья не показалась слишком скучной и нудной. Если у вас есть вопросы и предложения — буду рад выслушать и ответить по мере сил. Баг-репортам буду рад еще больше. Спасибо заранее и удачных прошивок.

Читайте также:
Компьютер устанавливает программы на системном диске

P.S. Уважаемая администрация и лично НЛО, сделайте для таких вот постов хаб UEFI, пожалуйста.

Источник: habr.com

ITGuides.ru

Вопросы и ответы в сфере it технологий и настройке ПК

Инструкции по прошивке БИОС материнской платы от А до Я

Прежде чем принять решение о перепрошивке биоса, внимательно проанализируйте данные, ведь прошивка биоса — операция сложная и рискованная, прибегать к ней лишний раз не стоит. Но если, например, материнская плата отказывается работать с новым процессором или не поддерживает винт большего размера, то программаторы для биоса — единственная возможность наладить работоспособность системы.

Процесс перепрошивки БИОС материнских плат в большинстве случаев прост и сводится к указанию нового файла с микрокодом и подтверждением операции

Процесс перепрошивки БИОС материнских плат в большинстве случаев прост и сводится к указанию нового файла с микрокодом и подтверждением операции

Для того чтобы перепрошить BIOS, в первую очередь необходим прошивальщик. Обычно это утилиты AWDFLASH или AMIFLASH (они самые распространенные). Но они подходят не для каждой материнской платы, например, для Asus понадобится другая программа, поэтому, прежде чем качать прошивальщик, необходимо выяснить, подходит ли он для конкретной машины.

Перепрошить возможно любой биос, но некоторые из них защищены от прошивки, потому что биос может быть поврежден случайно или вследствие вирусной атаки. Иногда на материнскую плату вешают специальный джампер «BIOS Update». В положении «Disable» перепрошивка не получится, нужно перевести его в положение «Enable». Другие платы имеют пункт «BIOS Protect» в SETUP, здесь «Enable» нужно выбрать для запрета перепрошивки, а «Disable» означает «биос не защищен».

Итак, защита снята, как прошить BIOS? Как прошить BIOS без вреда для материнской платы несколькими способами?

Как перепрошить BIOS, используя программатор?

Самый простой и надежный способ — это обратиться в ремонтную мастерскую, где наверняка есть программатор. Нужно принести туда флешку (если флешка запаяна, то всю материнскую плату) и попросить перепрошить биос. Заодно можно попросить впаять колодку, на случай если еще когда-нибудь понадобится вынуть флешку из материнской платы.

Использование программатора для прошивки БИОС материнской платы в домашних условиях — весьма экзотический способ

Можете приобрести программатор в магазине. Здесь необходимо учитывать, что на некоторые из них (например, программатор SuperPro 280U) обновлений для BIOS больше не будет, то есть с новым железом будут возникать проблемы, другие (например, программатор Xeltek P500 ) на некоторые типы флешек потребуют дополнительных конденсаторов. Китайский программатор вряд ли прослужит долго, зато стоить будет недорого. В общем, выбирая программатор, необходимо сразу обратить внимание на марку флешки.

Дальше все просто. В отличие от первых моделей современный программатор подключается к компьютеру. Нужно найти на официальных сайтах подходящую программу, загрузить ее в программатор, вставить флешку в разъем программатора (если необходимо, предварительно аккуратно выпаяв ее), запустить программу перепрошивки.

Можно спаять программатор самостоятельно. Для этого нужно найти в сети схему устройства «программатор», приобрести детали (учитывая, что дорогой современный программатор имеет несколько разных разъемов), аккуратно собрать прибор согласно схеме.

Как поменять биос «на горячую» (хотсвоп)?

Этот самый распространенный способ перепрошивки биоса применим при наличии второй такой же материнской платы, только рабочей. К слову, иметь точно такую же материнку не обязательно, достаточно обратить внимание на некоторые параметры флешки. В общих чертах, флешки бывают двух типов: хабовые (в квадратном корпусе PLCC32), обычные, то есть прямоугольные (корпус DIP3 ) и все остальные. Но, перед тем как приступить к перепрошивке BIOS, необходимо тщательно изучить тему.

Перепрошивка BIOS

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

Для перепрошивки необходимо загрузиться на рабочей материнской плате в «Safe mode command prompt only», аккуратно вынуть по-горячему, то есть из работающей материнской платы достать микросхему биоса, осторожно поставить другую, которая будет перепрошиваться, запустить программу-прошивальщика и поместить в ПЗУ файл прошивки.

Прошивка длится несколько секунд, выключать машину в процессе работы нельзя ни в коем случае.

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

Применяя этот способ прошить биос, необходимо помнить, что:

  1. Без биоса плата не заработает, при включении должно стоять родное ПЗУ. Именно поэтому менять их приходится во время работы, «на горячую».
  2. Перед тем как включать родную флешку, необходимо попробовать вытащить ее из материнской платы, чтобы не лезть с отверткой в работающую машину.
  3. Микросхему нужно ставить по ключу, иначе смена полярности убьет ее сразу и бесповоротно.
  4. Если биос рабочий и перепрошивка необходима ради повышения производительности, необходимо сохранить текущую версии BIOS на случай неудачной перепрошивки.
  5. Прежде чем перепрошивать биос, необходимо провести предварительную исследовательскую работу, например, найти сведения о соответствии флешек и плат друг другу.
  6. Необходимо понимать, что перепрошивка BIOS не увеличит частоту процессора и не добавит разъемов в материнской плате.
  7. Некоторые ПЗУ в силу тех или иных причин прошить невозможно.
  8. Перепрошивка биоса при помощи программатора — самый надежный способ перепрошивки, хотя и в этом случае риск присутствует.
  9. Перепрошивать биос «на горячую» стоит на пустом столе, с которого необходимо удалить емкости с жидкостью.
Читайте также:
В какой программе даются базисные характеристики личности ребенка компетентность креативность

Как перепрошить биос с дискеты или винта?

Бывает, BIOS ранен, но не мертв, тогда при попытке загрузиться машина скрежещет диском, а на экране светится угрожающее «BIOS checksum error». Как прошить BIOS в таком неприятном случае?

Можно попробовать записать системный диск, содержащий исключительно файлы io.sys; msdos.sys; command.com и записать туда же сам биос bios.bin, прошивальщик и autoexec.bat с командной строкой, соответствующей прошивальщику.

Этот способ ненадежен и сработает в двух случаях из семи, но его обычно пробуют первым, и иногда это помогает.

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

Отблагодари меня, поделись ссылкой с друзьями в социальных сетях:

Источник: itguides.ru

Как прошить биос материнской платы через AFUWIN64

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

Запускаем AFUWINGUI.EXE от имени администратора и заходим во вкладку Setup, тут ставим галочку на Main BIOS Image.

Нажимаем Open и выбираем оригинальный биос и нажимаем Flash.

После того как биос прошъётся, заходим в Setup и устанавливаем ещё одну галочку Do Not Check ROM ID.

Затем нажимаем Open и выбираем модифицированный биос и нажимаем Flash. Ждём окончания загрузки и перезагружаемся.

Купите мне чашечку кофе, если статья оказалась полезной.

    Blogger Comment Facebook Comment

62 коммент.:

А зачем нужно шить 2 раза — сначала оригинальный потом модифицированный? Ответить Удалить

Информация взята из мануала в интернете, возможно так снимается защита от проверки подленности биоса на плате, но если у вас есть опыт прошивки более коротким способом, можете поделиться со всеми в комментариях) Я знаю что этот способ работает, это подтвердили посетители этого сайта. Удалить

реально работает P8Z77WS — спс. Ответить Удалить

Пожалуйста, рад что вам поиогло) Удалить

Привет, у меня не получилось. При верификации прошивки модифицированной прошивкой — ошибка. 2 раза попробовал, тоже самое. M5A99FX PRO R2.0 Ответить Удалить

Приветствую, запускали от имени администратора? ставили галку Do Not Check ROM ID? Удалить

Здравствуйте. В последнем пункте на этапе верификации, в первой группе блоков, ошибка 45. В биосе изменены только логотипы, которые появляются перед загрузкой системы (точнее один логотип в нескольких размерах) по этой инструкции: https://www.youtube.com/watch?v=vvKB_WOmGpU
AFUWIN запускалась от админа. Перед тем, как выбрать модифицированный биос (после установки оригинального), ставил галочку «Do not check ROM ID». После этого выбирал модифицированный биос и заметил, что галочка эта пропадает. При первой попытке продолжил без неё, во второй раз ставил галочку два раза: непосредственно перед выбором и после выбора модифицированного биоса.
Материнская плата Asus UX431DA.
Может быть, что-нибудь подскажете? Удалить

Здравствуйте, а из под биоса не прошивается? я так понимаю у вас ноутбук, а не компьютер. Удалить

Из под биоса говорит, что файл не «proper bios» или что-то такое. После неудачной прошивки на модифицированный я прошил обратно на оригинальный, там AFUWIN полностью прошел верификацию и написал, что прошивка завершена. Ноутбук теперь не включается (вентиляторы начинают работать, но на экране ничего не появляется). Что предпринять? Удалить

В вашей ситуации надо нести ноутбук в сервис на перепрошивку биоса. Удалить

EVGENY Попробуйте скачать эту версию AfuWin64 5.12.03.2045.zip из архива программ и прошиться ею. Удалить

Получилось, надо делать именно так, как написано. Правда, в первый раз мне почему-то предложили перезагрузиться после чтения оригинальной прошивки. из этого ничего не вышло. Поставить сразу модифицированное не дали — ошибка. Закрыл/открыл приложение, во второй раз всё делалось основательнее: голубые квадратики менялись на красные, потом — на зелёные, также с модом. Но в этот (удачный) раз перегрузку не предлагали, сделал сам. Ответить Удалить

СУРЕН, спасибо за информацию, ASUS A68HM-K на этой материнке? Удалить

M5A97-EVO-R2,0 оригинальный прошиля проверку прошол ,Do not check ROM ID ставил галку выбор мода и галка пропадает,версии другие пробовал, никак Ответить Удалить

Попробуйте через Ai Suite Удалить

Ai Suite не поддерживает плату ,пробовал все 4 способа ни как
(а что должно появиться в биосе?чтобы видеть что он прошился модом) Удалить

Источник: onuphriev.blogspot.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru