Добавить в корзинуПозвонить
Найти в Дзене

Работа с DMI Lenovo и нарезка BIOS c официального сайта

Принесли коллеге ноутбук с поврежденным BIOS, ноутбук Lenovo в процессе обновления прошивки окирпичился, да, увы, так к сожалению бывает. Я обычно говорю — чудес не бывает — а фигня случается постоянно. Так как проблема понятная и диагностика неисправности по сути не нужна, причина не запуска ноутбука понятна, приступим к восстановлению прошивки BIOS. Для начала выпаиваем SPI микросхему BIOS, вставляем в программатор и снимаем дамп. Lenovo_родной.Bin — это наш поврежденный дамп прошивки. Открыв в hex редакторе я увидел что-то такое: К сожалению на корпусе отсутствовала информация по точной модели ноутбука, у нас есть только модель платы GS440&GS540 NMC511 Rev:1.0 : Для начала узнаем точную модель аппарата, для этого дешифруем дамп BIOS в части DMI информации ноутбука, для этого будем использовать программу Lenovo DMI Decryptor Свежая версия программы 1.4.5 к сожалению хоть и имеет графический интерфейс — послала нас в пешее эротическое путешествие: Пришлось воспользоваться более старой

Принесли коллеге ноутбук с поврежденным BIOS, ноутбук Lenovo в процессе обновления прошивки окирпичился, да, увы, так к сожалению бывает. Я обычно говорю — чудес не бывает — а фигня случается постоянно. Так как проблема понятная и диагностика неисправности по сути не нужна, причина не запуска ноутбука понятна, приступим к восстановлению прошивки BIOS.

Для начала выпаиваем SPI микросхему BIOS, вставляем в программатор и снимаем дамп.

-2

Lenovo_родной.Bin — это наш поврежденный дамп прошивки. Открыв в hex редакторе я увидел что-то такое:

-3

К сожалению на корпусе отсутствовала информация по точной модели ноутбука, у нас есть только модель платы GS440&GS540 NMC511 Rev:1.0 :

-4

Для начала узнаем точную модель аппарата, для этого дешифруем дамп BIOS в части DMI информации ноутбука, для этого будем использовать программу Lenovo DMI Decryptor

Свежая версия программы 1.4.5 к сожалению хоть и имеет графический интерфейс — послала нас в пешее эротическое путешествие:

-5

Пришлось воспользоваться более старой версией без графического интерфейса: Lenovo DMI Decryptor | v1.3.1

Из описания утилиты у нас есть разные команды:

LENV.exe "BIOS.bin" -info ["Info.txt"] Prints info in console (or to «Info.txt» if added)

LENV.exe "BIOS.bin" -decrypt ["BIOS_DECRYPTED.bin"] Decrypts DMI region and writes results to input file (or to «BIOS_DECRYPTED.bin» if added)

LENV.exe "BIOS.bin" -encrypt ["BIOS_ENCRYPTED.bin"] Encrypts DMI region and writes results to input file (or to «BIOS_ENCRYPTED.bin» if added)

LENV.exe "BIOS.bin" -extract "BIOS_DMI.bin" Extracts DMI region to file «BIOS_DMI.bin»

LENV.exe "BIOS.bin" -transfer "BIOS_TARGET.bin" Transfers DMI region from «BIOS.bin» to «BIOS_TARGET.bin» (Note: DMI regions size has to match. Only use the same model/check if the encryption/decryption byte matches)

Дешифруем дамп:

Кладем LENV.exe в папку рядом с дампом BIOS, у нас это D:\Lenovo BIOS

Открываем командную строку от имени Администратора, переходим в каталог и даем команду на анализ Info:

cd /d D:\Lenovo BIOSLENV.exe «Lenovo_родной.Bin» -info Info.txt
-6

После анализа из Info.txt получаем такую информацию:

File name: Lenovo_родной.Bin
File size: 8388608 KB
LENV offset 1: 0x1000
LENV offset 2: 0x2000
Encryption/decryption byte: 0xec
DMI region size: 0x2000
Data strings LENV block 1: 14
Data strings LENV block 2: 13

Это значит, что в дампе в двух местах дублируется информация DMI.

Делаем дешифровку дампа:

LENV.exe «Lenovo_родной.Bin» -decrypt Lenovo_родной_DECRYPTED.bin

Видим, что программа отработала:

Success: DMI successfully decrypted with key ec

-7

Рядом с файлом дампа появился файл Lenovo_родной_DECRYPTED.bin, открываем его в hex редакторе и переходим в поиске по слову LENV:

-8

Здесь мы увидим модель аппарата: IdeaPad S145-15API 81UT0064R , серийные номера, а также ключ Windows:

-9

Отлично, что за зверь мы узнали, теперь нам нужен инженерный дамп. Нарежем его из официального обновления Lenovo с официального сайта:

Скачиваем обновление BIOS по модели ноутбука:

-10
-11

Запускаем и распаковываем в отдельную папку:

-12
-13
-14

Нас интересует файл BIOS.cap

Он отличается по размеру от нашего дампа снятого программатором:

-15

Нужно выделить тело BIOS из BIOS.cap, для этого воспользуемся программой UEFIExtract из пакета LongSoft/UEFITool.

Скачиваем UEFIExtract_NE_A74_win64.zip и распаковываем рядом с файлов BIOS.cap:

-16

Переходим в командную строку от имени Администратора, переходим в каталог:

cd /d D:\Lenovo BIOS\UPDATE
-17

Запускаем UEFIExtract.exe и видим список команд:

-18

Нам нужна команда UUEFIExtract imagefile all, вводим команду:

UEFIExtract BIOS.CAP all
-19

После выполнения команды увидим созданные рядом с BIOS.CAP папки и файлы:

-20

В папке BIOS.CAP.dump ищем файл body.bin соответствующий размеру нашего дампа: 800000h (8388608)

-21

Файл body.bin это и есть наш инженерный дамп без серийных номеров, далее будем работать с ним. Копируем его в папку рядом с Lenovo_родной.Bin

Теперь нам необходимо перенести серийные номера и DMI информацию с поврежденного дампа Lenovo_родной.Bin в наш инженерный body.bin

Для этого воспользуемся снова утилитой LENV.exe и командой LENV.exe "BIOS.bin" -transfer "BIOS_TARGET.bin"

LENV.exe Lenovo_родной.Bin -transfer body.bin
-22

Модифицированный файл body.bin это и есть наш подготовленный для прошивки дамп! Остается залить дамп во флешку программатором и запаять обратно на плату, собрать ноутбук и включить!

-23

Легких Вам Ремонтов!

---------------