Как подготовить BIOS с сайта Lenovo для прошивки программатором

Февраль, 16th 2023Рубрика: Советы 3722
Подписаться на комментарии по RSS

Микросхема биос материнской платы ноутбука

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

Просто скачать файл с прошивкой с официального сайта и как есть залить его в микросхему BIOS программатором не выйдет. Как правило, производитель упаковывает в такой файл не только саму прошивку, но и программу прошивальшик с кучей всякого вспомогательного барахла. Предполагается, что процесс обновления BIOS будет производиться обычным пользователем из операционной системы Windows. Так что, с большой долей вероятности, у вас ничего не получится.

Конечно есть варианты с обновлением прошивки из DOS режима или непосредственно из BIOS ноутбука, но рассчитаны они уже на более продвинутых пользователей и предполагается что ноут всё-таки работает. В этом случае у вас действительно может оказаться готовый бинарный файл прошивки, который подходит для программатора, что существенно упростит задачу. У нас же будет полный хардкор.

Получение бинарного файла прошивки BIOS

Итак, допустим вы скачали обновление BIOS в виде исполняемого файла с официального сайта производителя. По сути, этот файл является архивом. Для успешного извлечения бинарного файла с прошивкой, можно попробовать распаковать его простым архиватором (вроде 7zip) или в более сложных случаях воспользоваться утилитами InnoExtractor или UniExtract.

Распаковка архива с прошивкой BIOS ноутбука Lenovo утилитой InnoExtractor

В приведенном примере (на фото) нас интересует файл F8CN53WW.exe, который следует снова распаковать и там уже будет искомый бинарник со свежей версией прошивки.

Будем считать, что бинарный файл благополучно извлечен, но расслабляться пока рано. Теперь нам предстоит ещё и правильно "нарезать" полученный файл, точно определив начало и конец необходимого дампа для прошивки BIOS ноутбука. Полученный нами файл, может содержать в себе дамп микросхемы BIOS (или двух микросхем), а также мультиконтроллера и дополнительной служебной информации для фирменной утилиты-прошивальщика. Как быть в таком случае?

Как определить начало и конец необходимых дампов прошивки в HEX редакторе

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

Далее отрезаем всё лишнее ориентируясь на размер микросхемы флешки или же на размер ранее снятого дампа, либо копируем блок с кодом в новый файл и сохраняем. Приведу небольшую табличку соответствия размеров файлов при работе в в HEX редакторе:

offset(h) | соответствие
------------------------
100     | 256 байт
200     | 512 байт
400     | 1 Кбайт
800     | 2 Кбайт
1000    | 4 Кбайт
2000    | 8 Кбайт
4000    | 16 Кбайт
8000    | 32 Кбайт
10000   | 64 Кбайт
20000   | 128 Кбайт
40000   | 256 Кбайт
80000   | 512 Кбайт
100000  | 1 Мбайт
200000  | 2 Мбайт
400000  | 4 Мбайт
800000  | 8 Мбайт
1000000 | 16 Мбайт

Гораздо интереснее случай, когда у нас нет слитого рабочего дампа, либо там была какая-то ерунда. И тут задача с определением начала и конца дампа с кодом для прошивки BIOS несколько усложняется, если не знать что искать. Вот вам небольшая шпаргалка:

$_IFLASH_BIOSIMG – начало блока кода BIOS
$_IFLASH_INI_IMG – конец блока кода BIOS
$_IFLASH_EC_IMG – начало прошивки EC контроллера

Для примера найдём в Hex редакторе начало прошивки микросхемы BIOS для ноутбука Lenovo ThinkBook 14 G2 ITL:

Поиск начала дампа BIOS ноутбука lenovo в Hex редакторе

Как видите, всё прекрасно находится. Нужный нам дамп прошивки BIOS начинается со смещения 0017D050 (всё, что выше удаляем).

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

Прошивка встроенного контроллера (EC) ищется аналогичным образом по текстовому маркеру $_IFLASH_EC_IMG и как правило данный блок кода имеет размер 128 Кб.

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

Подписывайтесь на канал Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 2

  1. 2023-02-16 в 20:53:41 | Forton

    Интересно, жду продолжения!

  2. 2024-03-14 в 19:58:01 | Комментатор 245]]>avatar]]>
    не будет региона, серийных номеров, мак-адреса и ключа предустановленной Windows (если он был).

    Windows установленный уже не загрузится, если таким образом оживить мат.плату?

ваш комментарий будет опубликован после проверки
на указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.