Как подготовить BIOS с сайта Lenovo для прошивки программатором
Сегодня дам несколько практических советов по "приготовлению" BIOS ноутбуков Lenovo для дальнейшей прошивки его программатором. Подобные манипуляции проводят в сервисах, когда ноут не стартует и практически не подает признаков жизни (к примеру, может крутить вентилятором без вывода картинки на экран).
Просто скачать файл с прошивкой с официального сайта и как есть залить его в микросхему BIOS программатором не выйдет. Как правило, производитель упаковывает в такой файл не только саму прошивку, но и программу прошивальшик с кучей всякого вспомогательного барахла. Предполагается, что процесс обновления BIOS будет производиться обычным пользователем из операционной системы Windows. Так что, с большой долей вероятности, у вас ничего не получится.
Конечно есть варианты с обновлением прошивки из DOS режима или непосредственно из BIOS ноутбука, но рассчитаны они уже на более продвинутых пользователей и предполагается что ноут всё-таки работает. В этом случае у вас действительно может оказаться готовый бинарный файл прошивки, который подходит для программатора, что существенно упростит задачу. У нас же будет полный хардкор.
Получение бинарного файла прошивки BIOS
Итак, допустим вы скачали обновление BIOS в виде исполняемого файла с официального сайта производителя. По сути, этот файл является архивом. Для успешного извлечения бинарного файла с прошивкой, можно попробовать распаковать его простым архиватором (вроде 7zip) или в более сложных случаях воспользоваться утилитами InnoExtractor или UniExtract.
В приведенном примере (на фото) нас интересует файл 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 начинается со смещения 0017D050 (всё, что выше удаляем).
Аналогичным образом находим конец дампа и удалив из файла всё что находится ниже нужной нам области, получаем бинарный файл прошивки ноута размером 24 мегабайта. Его уже можно шить программатором.
Прошивка встроенного контроллера (EC) ищется аналогичным образом по текстовому маркеру $_IFLASH_EC_IMG и как правило данный блок кода имеет размер 128 Кб.
Правда тут у нас не будет региона, серийных номеров, мак-адреса и ключа предустановленной Windows (если он был). Как искать и прописывать данную информацию расскажу в следующий раз. Пишите в комментариях, если данная тема интересна.
Комментариев: 2
Интересно, жду продолжения!
Windows установленный уже не загрузится, если таким образом оживить мат.плату?