Интернет Windows Android

Извлечь биос из exe. Или полезные советы для опытных пользователей

Здравствуйте, уважаемые читатели сайта сайт! Меня зовут Роман Нахват и я представляю вашему вниманию третью и заключительную часть статьи о восстановлении повреждённой прошивки BIOS (на примере ноутбука Acer Aspire E1-532). Перед прочтением данной части статьи рекомендуется ознакомится с и , в которых мы выполнили разборку ноутбука Acer Aspire E1-532, извлекли из него материнскую плату, подключили к микросхеме BIOS программатор CH341A и сохранили поврежденную прошивку BIOS в отдельный файл. Продолжим нашу работу подготовкой нового файла прошивки BIOS и далее запишем его в микросхему BIOS.

Восстановление повреждённой прошивки BIOS на ноутбуке программатором, в случае, если ноутбук не загружается. Часть 3. Извлечение прошивки BIOS из exe файла для обновления БИОСа. Редактирование файла прошивки в HEX-редакторе и её запись в микросхему BIOS

Перейдем на сайт компании Acer на страницу поддержки ноутбука Acer Aspire E1-532.

И выполним скачивание всех доступных прошивок BIOS.

Например, откроем папку с прошивкой версии 2.10.

В данной папке мы видим обычный exe файл, запустим его.

После запуска файла V5WE2210.exe получаем вот такое окно с ошибкой, в котором говориться о том, что данная прошивка BIOS не подходит для данного ноутбука или компьютера. Кнопку ОК пока не нажимаем, так как нам нужно из файла V5WE2210.exe извлечь файл прошивки BIOS для нашего ноутбука Acer Aspire E1-532.

Переходим на раздел С: по пути

C:\Пользователи\Имя пользователя\AppData\Local\Temp (имя пользователя может быть любым в зависимости от того, с каким именем создана учетная запись). В папке Temp видим временную папку 7zS2C4E.tmp, которая появилась после запуска файла V5WE2210.exe.

Откроем папку 7zS2C4E.tmp и видим в ней файл isflash.bin, который и является файлом прошивки микросхемы BIOS. Скопируем данный файл на флешку.

Файл isflash.bin, скопированный на флешку.

Размер данного файла прошивки BIOS составляет 9.45 MB.

При попытке открытия этого файла прошивки в программе CH341A-USB получаем сообщение, что объем файла больше чем нужно, то есть данный файл прошивки слишком велик для того, чтобы использовать его для перепрошивки микросхемы Winbond W25Q64FV (а именно данная микросхема установлена на материнской плате ноутбука Acer Aspire E1-532).

Микросхемы могут быть разных объёмов, рассмотрим это на примере микросхем Winbond. Как видно из таблицы, объём микросхемы может составлять 512, 256, 128, 64, 32 Mbit и так далее.

Микросхема W25Q64FV имеет объём 64 Mbit (или 8 MB).

Так как наш файл прошивки BIOS isflash.bin, извлечённый выше из exe файла весит 9.45 MB, а объём микросхемы BIOS на материнской плате ноутбука Acer Aspire E1-532 составляет 8 MB, то для успешного восстановления прошивки BIOS нам необходимо уменьшить файл isflash.bin с 9.45 MB до 8 MB. Для этих целей воспользуемся hex редактором, например HxD. Переходим по адресу

https://mh-nexus.de/en/downloads.php?product=HxD20

и выполняем скачивание установочного файла hex редактора HxD

Щёлкаем по скачанному файлу и запускаем установку.

Установить.

Установка завершена.

Щёлкаем по ярлыку hex редактора HxD и запускаем его.

Главное окно HxD.

Щёлкаем по File-Open.

Выделяем файл isflash.bin и жмём "Открыть"

Получаем следующее.

Таким же образом открываем файл поврежденной прошивки BIOS isflash01.bin (который мы сохранили во второй части статьи).

Рассмотрим внимательно структуру файла isflash01.bin. Как видим, файл прошивки isflash01.bin начинается со значений FF (строка 00000000), а в строке 00000010 присутствуют значения 5A A5 F0 0F.

Теперь рассмотрим структуру файла isflash.bin. Видим, что данный файл прошивки начинается со значений 4D 5A 00 00 (строка 00000000). Нам нужно сделать так, чтобы файл isflash.bin начинался точно так же, как и файл isflash01.bin, то есть чтобы началом файла isflash.bin были значения FF (строка 00000000).

В открытом файле isflash.bin жмём Search-Find.

И выполняем поиск значения 5A A5 F0 0F.

Видим, что значение 5A A5 F0 0F в файле isflash.bin находится в строке 0001F340, также выше в строке 0001F330 видим значения FF.

Выделим в файле isflash.bin диапазон строк 00000000-0001F320. Для этого выбираем Edit-Select block.

Указываем начальную (00000000) и конечную (1F320) строки выделяемого диапазона.

Выделенный диапазон строк 00000000-1F320.

Удалим выделенный диапазон строк из файла isflash.bin, щёлкнув Delete.

Как видим, после удаления выделенных строк файл прошивки isflash.bin теперь начинается точно так же, как и файл isflash01.bin, а именно в строке 00000000 присутствуют значения FF, а в строке 00000010 значения 5A A5 F0 0F.

Вернёмся к файлу прошивки isflash01.bin. Пролистаем его до конца и видим, что он заканчивается строкой 007FFFF0.

Если пролистать до конца файл isflash.bin, то видим, что он заканчивается строкой 009548F0.

Удалим из файла isflash.bin все строки, находящиеся в диапазоне 00800000-9548F0, то есть сделаем так, чтобы файл isflash.bin заканчивался строкой 007FFFF0. Жмём Edit-Select block.

Указываем диапазон выделяемых строк.

Выделенный диапазон строк 00800000-9548F0.

Удалим выделенный диапазон срок 00800000-9548F0, щёлкнув Delete.

Как видим, теперь файл прошивки isflash.bin заканчивается строкой 007FFFF0.

Сохраним файл прошивки BIOS под новым именем, выбрав Save as…

Указываем имя, например isflash_new и жмём Сохранить.

Новый файл прошивки BIOS isflash_new.bin.

Следует обратить внимание на то, что файл isflash_new.bin весит столько же, сколько и файл isflash01.bin, который мы сохранили во второй части, а именно 8 MB.

Так как микросхема W25Q64FV, как было сказано выше имеет объём 64 Mbit (или 8 MB), и наш редактированный файл прошивки isflash_new.bin весит 8 MB то мы можем приступать к перепрошивке.Подключаем программатор CH341A к микросхеме BIOS таким же образом, как это делали во второй части статьи.

Запускаем программу CH341A-USB.Указываем производителя и модель микросхемы и удаляем старую прошивку BIOS, нажав "Стирание".

Универсальная программа для снятия прошивок и бекапов БИОСа с любых моделей ноутбуков и персональных компьютеров.

Дамп надо делать всегда, когда мы хотим сделать прошивку, обновление, update или откат БИОС. Иногда просят сделать копию БИОСа ноутбука или материнской платы персонального компьютера, для ремонта аналогичного оборудования.

А что же такое БИОС и как это расшифровывается эта аббревиатура.

БИОС это сокращения от английских слов Base_Input_Output_System и переводится это как базовая_система_ввода_вывода

Делать дамп БИОСа ноутбуков и компьютеров при помощи этой программы очень легко и просто.

Краткая инструкция как пользоваться программой Universal BIOS utility Backup ToolKit 2.0 для создания bios damp, а по-русски резервную копию.

Видео инструкция по работе с этой программой.

Многие антивирусы определяют эту программу как вирус, но это не так.

После скачивания можете проверить этот архив на сайте www.virustotal.com который, скажет что половина антивирусов найдут в нём различные вирусы, а вторая половина не найдёт.

Мой AVG определяет его то же как вирус. А на буке каспер говорит, что всё нормально.

После проверки этого файла посмотрите, находит ли ваш антивирус в нём вирус. Если да то отключите его на время работы программы.

Потом распаковываем архив и запускаем полученный файл с именем Universal BIOS Backup ToolKit 2.0.exe

Если ваша система скажет что требуются права администратора. Тогда щелкаем правой клавишей мыши по этому файлу и жмём пункт запустить от имени администратора.

После этого открывается окно программы, в которой мы видим информацию о типе, версии, размере, производителе и дате вашего БИОСа.

После этого, жмем кнопку Read и ждем, пока не закончится процесс чтения БИОСа.

После этого появится табличка с надписью, что чтение БИОСа завершено успешно.

Жмём ОК. Потом жмём кнопку Backup.

Нам предлагают выбрать место, куда мы сохраним дамп БИОСа. Выбираем нужную папку и жмём кнопку сохранить.

Все мы с вами сделали резервную копию БИОСа, можно обновить версию, шить новую или старую стабильную версию БИОСа.

Как извлечь файлы BIOS Dell?

Скопируйте файл BIOS.exe на диск C:
Запустить командную строку в режиме администратора и напишите это:

cd\
bios.exe /writeromfile
bios.exe /writebinfile
bios.exe /writehexfile

» bios.exe — это файл загруженный c сайта Dell. «

Распакованный файл bios, будет скопирован на диск C:!

Распаковка новых BIOS Dell.

  • Скачиваем интерпретатор Python 2.7.
    https://www.python.org/download/releases/2.7/
  • Устанавливаем Python 2.7 на компьютер (именно этой версии!).
  • со скриптом Python — DecompNewDell.py.
  • Извлеченный из архива скрипт DecompNewDell.py копируем в папку с интерпретатором Python (обычно это C:\Python27).
  • Также в папку с интерпретатором (обычно это C:\Python27) копируем наш скаченный с сайта dell bios. Переименовываем его в biosupdate.exe. Должно получиться как на фото ниже.
  • Запускаем командную строку Windows в режиме администратора и пишем это:

cd\
cd Python27
python DecompNewDell.py biosupdate.exe

Должно получиться как на фото ниже.


И в папке с Python (обычно это C:\Python27), появится файл biosupdate.exe_decompressed.hdr.

  • с программой PFSExtractor.exe, извлекаем программу в ту же папку где у нас был создан файл.hdr (обычно это C:\Python27).
  • В командной строке Windows пишем:

PFSExtractor biosupdate.exe_decompressed.hdr

Получится как на фото ниже.


И будет создана папка biosupdate.exe_decompressed.hdr.extracted, внутри которой находятся все извлеченные файлы из которых можно собрать дамп для прошивки на программаторе. Готово!

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

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

В качестве компромисного я выбрал следующее решение — берем последние версии микрокодов для всех процессоров поколения CORE во всех конструктивах (Celeron E, Pentium E, Core 2 Duo, Core 2 Quad, Xeon *3xxx/*5xxx) и подменяем ими всё что было до того. Набор микрокодов получился следующий:

Объём этого набора — всего 76 килобайт. Данный файл получился путём объединения этих файлов:

cpu00010676_plat00000001_ver0000060f_date20100929.bin
cpu00010676_plat00000004_ver0000060f_date20100929.bin
cpu00010676_plat00000010_ver0000060f_date20100929.bin
cpu00010676_plat00000040_ver0000060f_date20100929.bin
cpu00010677_plat00000010_ver0000070a_date20100929.bin
cpu0001067a_plat00000011_ver00000a0b_date20100928.bin
cpu0001067a_plat00000044_ver00000a0b_date20100928.bin
cpu000006f2_plat00000001_ver0000005d_date20101002.bin
cpu000006f6_plat00000001_ver000000d0_date20100930.bin
cpu000006f6_plat00000004_ver000000d2_date20101001.bin
cpu000006f7_plat00000010_ver0000006a_date20101002.bin
cpu000006f7_plat00000040_ver0000006b_date20101002.bin
cpu000006fb_plat00000001_ver000000ba_date20101003.bin
cpu000006fb_plat00000004_ver000000bc_date20101003.bin
cpu000006fb_plat00000010_ver000000ba_date20101003.bin
cpu000006fb_plat00000040_ver000000bc_date20101003.bin
cpu000006fd_plat00000001_ver000000a4_date20101002.bin

Сама процедура модификации тоже немного изменилась и стала если не проще, то быстрее:

Шаг 1 — открываем образ BIOS в программе MMTool:



Шаг 2 — для проверки переходим на последнюю вкладку (CPU PATCH) и смотрим количество микрокодов. Здесь их к примеру 31 штука:

Шаг 3 — переходим на вкладку Replace и ищем на ней пункт «P6 Micro Code»:

Шаг 4 — выбрав пункт «P6 Micro Code» жмём кнопку Икщцыу, выбираем файл ncpucode.bin, описанный выше и заменяем его кнопкой Replace:





Шаг 5 — для проверки переходим на последнюю вкладку (CPU PATCH) и смотрим количество микрокодов. После подмены микрокодов осталось 17, версия самая последняя:

Фундаментальной разницы с порядком модификации, описанным на delidded.com нет. В большинстве случаев на выходе получается конечно не то же самое, но процессор получает нужный микрокод. Из субъективных положительных моментов я хотел бы обратить внимание лишь на то, что гарантированно обновляются микрокоды на все актуальные процессоры, будь то «гражданские» или «серверные», а так же практически нет риска получить сообщение о нехватке места. Хотя, в моей практике даже на такой набор микрокодов пару раз места не хватало, это было с BIOS для плат ECS P4M900T-M и ECS P4M900T-M2, которые в общем совместимы с Xeon E5450.

По традиции публикую ссылку на архив с инструментами — (zip, 234KB). Архив содержит исполняемый файл MMTOL.exe (версия 3.22 BKMOD), файл с микрокодами на все 45/65nm процессоры поколения core/xeon ncpucode.bin , а так же два файла 45nm.bin и 65nm.bin с микрокодами только на 45nm процессоры и только на 65нм. Использование этих файлов может быть полезным в тех случаях когда необходимо освободить дополнительный объём в BIOS, например, для новой firmware какого-то контроллера, сетевого, дискового и пр.

!NB : Ни в файле ncpucode.bin, ни в файлах 45nm.bin/65nm.bin нет поддержки процессоров Pentium 4, Celeron (без буквенных индексов), Pentium D, Celeron D и Xeon W (Xeon 5080 например). Это процессоры поколения NetBrust.