Как открыть биос файл
Восстановление повреждённой прошивки BIOS на ноутбуке программатором, в случае, если ноутбук не загружается. Часть 3. Извлечение прошивки BIOS из exe файла для обновления БИОСа. Редактирование файла прошивки в HEX-редакторе и её запись в микросхему BIOS
После запуска файла 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.
Микросхемы могут быть разных объёмов, рассмотрим это на примере микросхем Winbond. Как видно из таблицы, объём микросхемы может составлять 512, 256, 128, 64, 32 Mbit и так далее.
Так как наш файл прошивки BIOS isflash.bin, извлечённый выше из exe файла весит 9.45 MB, а объём микросхемы BIOS на материнской плате ноутбука Acer Aspire E1-532 составляет 8 MB, то для успешного восстановления прошивки BIOS нам необходимо уменьшить файл isflash.bin с 9.45 MB до 8 MB. Для этих целей воспользуемся hex редактором, например HxD. Переходим по адресу
Таким же образом открываем файл поврежденной прошивки 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).
Видим, что значение 5A A5 F0 0F в файле isflash.bin находится в строке 0001F340, также выше в строке 0001F330 видим значения FF.
Как видим, после удаления выделенных строк файл прошивки isflash.bin теперь начинается точно так же, как и файл isflash01.bin, а именно в строке 00000000 присутствуют значения FF, а в строке 00000010 значения 5A A5 F0 0F.
Вернёмся к файлу прошивки isflash01.bin. Пролистаем его до конца и видим, что он заканчивается строкой 007FFFF0.
Удалим из файла isflash.bin все строки, находящиеся в диапазоне 00800000-9548F0, то есть сделаем так, чтобы файл isflash.bin заканчивался строкой 007FFFF0. Жмём Edit-Select block.
Следует обратить внимание на то, что файл isflash_new.bin весит столько же, сколько и файл isflash01.bin, который мы сохранили во второй части, а именно 8 MB.
Так как микросхема W25Q64FV, как было сказано выше имеет объём 64 Mbit (или 8 MB), и наш редактированный файл прошивки isflash_new.bin весит 8 MB то мы можем приступать к перепрошивке. Подключаем программатор CH341A к микросхеме BIOS таким же образом, как это делали во второй части статьи.
Запускаем программу CH341A-USB. Указываем производителя и модель микросхемы и удаляем старую прошивку BIOS, нажав "Стирание".
Комментарии (21)
Рекламный блок
Подпишитесь на рассылку
Навигация
Облако тегов
Архив статей
Сейчас обсуждаем
Гость Алекс
Очень жду эту фитчу! Честно из-за ее отсутствия я откатился на 10ку, хотя в 11 много чего нравится,
Grey3
Цитата: Гость Виталий России нужен отечественный VPN. Пользуйтесь Kaspersky VPN - ежемесячно
Гость Алексей
При попытке открыть получившийся ISO в пустой виртуалке, пишет "Fatal: Could not read from the boot
rediffusion
rediffusion
Как будут выглядеть параметры, если ссылаться на уже извлечённый install.wim из .ISO?
RemontCompa — сайт с огромнейшей базой материалов по работе с компьютером и операционной системой Windows. Наш проект создан в 2010 году, мы стояли у истоков современной истории Windows. У нас на сайте вы найдёте материалы по работе с Windows начиная с XP. Мы держим руку на пульсе событий в эволюции Windows, рассказываем о всех важных моментах в жизни операционной системы. Мы стабильно выпускаем мануалы по работе с Windows, делимся советами и секретами. Также у нас содержится множество материалов по аппаратной части работы с компьютером. И мы регулярно публикуем материалы о комплектации ПК, чтобы каждый смог сам собрать свой идеальный компьютер.
Наш сайт – прекрасная находка для тех, кто хочет основательно разобраться в компьютере и Windows, повысить свой уровень пользователя до опытного или профи.
Разделы сайта
Социальные сети
Собственно вопрос уже задан. Есть файл прошивки от Фуджика Амило ПА 3553. Чем можно его извлечь?
Насколько мне известно, универсальной нет.
Есть прога UniExtract - распаковщик EXE-шников, но он очень редко распаковывает БИОС.
А вообще чаще всего EXE-шники - простые архивы и распаковываю я их Total Commander'ом.
Для exe-шников от Dell (в командной строке): filename.exe -writeromfile
или: filename.exe /writeromfile
согласен. Универсальной проги нет и БЫТЬ НЕ МОЖЕТ! Можно придумать и записать некие общие соображения, которые будут помогать находить способ к распаковке. Но не более. Ниже напишу.
не для всех. Самые новые уже этот ключ не поддерживают. Увы. Есть еще ключ -writehdrfile. Он записывает некий hdr-файл в каталог с exe'шником, но зачем он нужен, я пока не догнал.
ИТАК, варианты
1) Dell - написано выше: запуск с ключом -writeromfile
2) Samsung - натравливаем или Samsung FW Extractor, или утилиту find_gz на файл и получаем rom
3) IBM/Lenovo - распаковываем exe'шник с сайта и видим кучу файлов: прошивальщик PHLASH.EXE, файлы $XXXXXXX.FL1, $XXXXXXX.FL2. Эти файлы содержат БИОС. Зачастую один из двух файлов бывает упакован. Для распаковки нужна утилита PHCOMP (гугль в помощь, коллеги).
4) LG. Лучше найти ISO-образы дисков с БИОСами. Там они лежат в бинарном виде. Иногда требуется PHCOMP для распаковки. Если же скачивать с оф. сайта, то БИОС можно найти в ресурсах EXE-файла и выковырять его оттуда. Проги для просмотра ресурсов - PE Explorer, ResThief и многие другие.
При прочих равных ВЫГОДНЕЕ загрузить не EXE под Win, а загрузочный образ ISO для прожига на CD/DVD-болвани. *Всегда* можно извлечь загрузочную информацию с ISO-образа. Я предпочитаю это делать программой WinImage, но можете подобрать любую аналогичную. Обычно загрузочная область выглядит как образ дискеты 1.44МБ. Ее извлекаем и открываем опять в WinImage, после чего распаковываем. Линуксоиды могут смонтировать файл как контейнер с ФС. Иногда загрузочная область выглядит как образ HDD. Тут тоже проблем нет.
Еще достаточно универсальный метод - порыскать в каталоге TMP. В винде, напоминаю, их несколько - как минимум для каждого пользователя и общесистемный.
По поводу FTS_BIOSWindowsFlashWinflashAMILOPa3553__1031757 :
1) записывает файл P15V116.EXE и кучу всякой мишуры в каталог C:\WINDOWS (офигеть, не охамели ли они!?)
2) далее запускаются батники, производится выбор правильных ключей итд итп. В конечном счете запускается p15v116.exe, который и прошивает ноут.
Внутри этого файла прошивка лежит открытым текстом. Незашифрованная. Не пожатая. Что нужно сделать? С помощью hex-редактора отметить начало, конец и вырезать в новый файл. Для того, чтобы это сделать нужно знать структуру файла БИОСа. Это приходит с опытом. Можно начать с открытия множества файлов прошивок и их сравнения друг с другом. Могу подсказать, что в файле P15V116.EXE начало самой прошивки где-то в районе смещения ~0D9020, а конец - ~2D9E40. Дальше думайте сами. Неглупые ведь!
Несколько способов которые всегда работают
1. В Total Commander-е Ctrl-PgDn на екзешнике
2. Некотрые БИОСы упакованы 7-Zip, аналогично учтанавливаем архиватор и распаковываем.
3. Чистим Видовс Темп, запускаем екзешник с БИОСом на совсем другой машине. Программа прошивки ругается на неверную платформу.
Не нажимая ничего в программе лезем в Видовс Темп, и там ищем все, прошивку.
Метод работает на 99%
Утилиты для бэкапа/прошивки/редактирования биоса.
1. Universal BIOS Backup ToolKit - бэкап "любого" биоса на рабочей машине из под Win (бэкап не всегда рабочий).
3. RW-Everything - Powerful utility for hardware engineers, firmware (BIOS) engineers
4. SLIC ToolKit V3.2 - редактирование SLIC-таблицы (whitelist-ы).
Утилиты для бэкапа/прошивки/редактирования видео-биоса.
1. NiBiTor Util - NVIDIA BIOS Editor
Утилиты для распаковки/правки биоса.
0. Распаковка *.exe-шников.
Первым делом нужно попробовать распаковать exe-шник архиватором (лучше 7-Zip-ом, т.к. последние версии поддерживают большое кол-во упаковщиков), если не помогло, то пробуем распаковать плагином InstallExplorer 0.9.2 (перекочевал плагин из FAR-а) для Total Commander-а.
На выходе должны получить кучу файлов из которых на интересуют FD-файлы - Insyde, FLx-, WPH-файлы - Phoenix, ROM-, BIN-файлы - и Phoenix и AMI (универсальное расширение файла).
Далее по тексту: бинарник - это вытянутый из архива FD-, FLx-, WPH-, ROM-, BIN-файл.
1. Расшифровка, зашифрованного алгоритмом RSA, бинарника InsydeH20 (HP G62-a50ER и подобные).
1) качаем PhoenixTool
2) в пакет утилит PhoenixTool входит программка hewprsa.exe
С помощью неё расшифровываем зашифрованный бинарник
Запуск: hewprsa.exe -d bios_in.fd -o bios_out.fd
bios_in.fd - на входе
bios_out.fd - на выходе
Альтернатива1: hewprsa_universal.exe + hewprsa_universal.bat (скормить BAT-нику зашифрованный файл, в консольном окне нажать пробел после появлении каких-либо строк после "Processing. This might take a few seconds.")
Альтернатива2: просто запускаем PhoenixTool.exe и открываем бинарник биоса. После отработки программы получим расшифрованный бинарник с расширением DEC.
2. Распаковка других InsydeH20 бинарников.
1) качаем прогу EzH2O 2.1.0.13
2) File\Load File. если не ругнулась, то File\Save As.
3. Распаковка бинарников Phoenix начинающихся со строк: BCPVPD or $COMPIBM - у Lenovo такие
1) распаковываем exe-шник с помощью InnoUnp через плагин MultiArc к ТС, получаем файл *.FL1
[InnoSetup]
Description="Inno Setup [ARS]"
Extension=exe
Archiver=%Commander_Path%\..\Arc\!UnPackers\Inno\InnoUnp\innounp.exe
ID=49 6E 6E 6F 20 53 65 74 75 70 20 53 65 74 75 70 20 44 61 74 61 20 28
IDPos=
IgnoreErrors=0
Start="^--------------------------------------"
End="^--------------------------------------"
Format0="zzzzzzzzzz yyyy.tt.dd hh:mm nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
List=%P -v -m %AQ
Extract=%P -e -m -c%R %AQ @%LQ
ExtractWithPath=%P -x -m -c%R %AQ @%LQ
SkipSfxHeader=0
SkipEmpty=0
SkipDirsInFileList=0
SearchForUglyDirs=0
BatchUnpack=1
SkipLIST=1
2) в состав PhoenixTool входит e_bcpvpw. Распаковываем сам бинарник:
Запуск: e_bcpvpw.exe bios_in.fl1 bios_out.fl1
4. Распаковка некоторых Compaq-овских бинарников.
Awesome Dirty Do Checksum Checker V3
7. Распаковка EXE-обновления Dell
Dell_HDR_Extract. Подробное описание работы тут.
! | Ciber SLasH писал(а): |
В архивах никаких вирусов нет - всё проверено лично в работе (и не один год). |
Распаковка exe-шника, который не удалось распаковать ни архиватором, ни InstallExplorer-ом.
1. Находим программу PE Explorer
2. Открываем в ней подопытный exe-шник.
3. Далее "View\Section Headers" и видим (или не видим) под секциями находится приклеенные к файлу дополнительные данные:
8. Полученный файл лучше сравнить с дампом боиса снятого на программаторе на предмет того, какими данными начинается бинарник. В моём примере extra-данные начинаётся сказачной строкой "ANDERSON" - это данные для прошивальщика. Их размер, как пишется здесь - 2Fh (47 байт). Но похоже всё таки не 2Fh, а 30h, т.к. бинарник не должен начинаться с символа "A" (41h) - это соображение было получено из того, что в архиве подопытного биоса есть отдельный бинарник в папке DOS и его начало без символа "A". Значит из нового файла нам нужно удалить с начала файла 30h данных или начинать копировать на шаге 6 не с адреса начала extra-данных, а с адреса "адрес начала" + 30h.
Удаляем с нового файла 30h данных с начала файла в HxD: Ctrl+E (Выделить блок)
смещение начала: 0
длина: 30
Выделили нужный блок и жмём Del (удалить).
Я делаю проще - отсчитываю X МБайт от строчки ANDERSON и ищу окончание БИОСа. Оно обычно типовое. Т.е., например, последовательность байтов
резать нужно перед второй строкой. Сигнатуры тут это байты 1, 9 (инструкции перехода с опкодами E9, EA, возможны варианты), слово начиная с 13-байта (F0 00 00 00) - это особенная константа Phoenix, которая нам говорит о размере прошивки. Начиная со второй строки начинается служебная информация для прошивальщика. В текстовом виде она начинается с букв "BC"
Короче, к чему я клоню? К тому, что имея небольшие познания о структуре БИОСов, но при этом умея фильтровать и анализировать входящий поток информации, научиться отличать что есть БИОС, а что - нет, не так уж и сложно.
P.S. рассмотрел на примере феникса, т.к. именно в его прошивальщике встречается строка ANDERSON. Ни в AMI, ни в Insyde такого нет, но там точно так же легко убедиться в том являются ли последние 16 байтов прошивки корректными или нет (т.е. мы неправильно порезали).
нормалек все у Ciber SLasH получилось, главное начальную строку найти, а ненужное программатор сам отрежет.
3. Распаковка бинарников Phoenix начинающихся со строк: BCPVPD or $COMPIBM - у Lenovo такие
1) распаковываем exe-шник плагином InstallExplorer к ТС, получаем файл *.FL1
2.1) качаем прогу e_bcpvpw и распаковываем сам бинарник:
Запуск: e_bcpvpw.exe bios_in.fl1 bios_out.fl1
2.2) или качаем другую прогу phcomp и распаковываем ею:
Запуск: phcomp.exe /d bios.fl
Уважаемый Ciber SLasH, подскажите пожалуйста для "идиота", не хотят работать ни e_bcpvpw.exe, ни phcomp.exe. Я понимаю, что я что-то не так делаю, но единственное, что я получил , это $0186000.FL2 . До этого на ноутах биос не трогал, только на стационарах. Можно-ли как-то из FL1 или FL2 BIN сделать? Или WPH? Или как FL-ки эти прошить?
Заранее огромное спасибо.
Если это получилось после распаковки, то этот файл и заливается в флешку. Расширение не имеет значения.
Естественно. Распакованный биос нужен только для программатора. Иначе шить родным прошивальщиком. По прошивальщикам ничего не могу сказать.
Модификация BIOS-а с помощью PhoenixTool
Замена модуля относящегося к северному мосту 216-0674024 на модуль к 216-0674022:
0. Нашли гуглом, что чип 216-0674024 - это север RS780MC, который имеет VEN&DEV = VEN_1002&DEV_9613, а чип 216-0674022 - это север RS780M, который имеет VEN&DEV = VEN_1002&DEV_9612
1. Нашли гуглом ноут, в котором стоит чип 216-0674024 - это Toshiba L355D-S7815
2. Скачали биос к ноуту.
3. Открыли биос PhoenixTool-ом.
4. Total Commander-ом нашли в папке DUMP (которую делает PhoenixTool) видеобиос по запросу "RS780MC" - модуль имел название 8DFAE5D4-B50E-4C10-96E6-F2C266CA2008_1_715.ROM. Скопировали модуль в другую папку. Очистили папку DUMP.
Одно из направлений моей компании — продажа технологических решений в области виртуализации. По долгу службы, приходится делать пилотные проекты или устраивать тестовые стенды. Недавно, компания Citrix выпустила новый продукт под название XenClient XT, который по сути является клиентским гипервизором первого уровня, то есть работает на чистом железе. Основной идеей клиентского гипервизора является создание виртуальных машин на собственном ноутбуке. Где и как это применимо — опустим.
Все современные процессоры Intel и AMD поддерживают технологию аппаратной виртулизации.
И так, в моем распоряжении был ноутбук с H77 чипсетом и Intel Core i7-3820QM процессором. Согласно спецификации от производителя, мой процессор поддерживал Intel Virtualization Technology (VT-x) и Intel Virtualization Technology for Directed I/O (VT-d) технологии. Если первая имеется почти на всех новых ноутбуках, то вторая технология встречается только на топовых моделях. Но она дает много преимуществ, как например прямой проброс GDU в виртуальную среду, соответственно клиентская машина получает полную поддержку 3D. Но давайте не будем углубляться в технологии, отличные от тематики данной статьи.
В моем биосе была возможность включения VT-x, но вот управление технологией VT-d не было предусмотрено изначально.
В расстроенных чувствах, я стал бродить по разным ресурсам в интернете и наткнулся на два очень интересных ресурса: mydigitallife и bios-mods.
Оказалось, что большая часть настроек биоса скрыта от обычного пользователя. Причина понятно — не давать пользователям ковыряться в настройках инициализации железа, дабы не создавать очереди у сервисных центров из армии любопытных «бородатых» субъектов с «кирпичами» в руках.
Первоначальное знакомство с технологией повергло меня в некоторое замешательство. Куча незнакомых мне утилит, новые термины, непонятные трактовки… Я решил не мучиться и написал на обоих ресурсах, что готов заплатить тому, кто мне поможет открыть скрытые от меня меню. Для этого было необходимо покопаться в ассемблерном коде, убрать несколько проверок, прошить патченный биос и у вас полное меню вашего биоса.
Так я прождал неделю, а заработать никто не захотел… ну или не смог.
Взяв себя в руки, я решил сам разобраться как этот биос работает и сделать патч самому. Спустя две недели и с помощью русского сообщества IXBT я написал свой первый патч к биосу моего тестового ноутбука. Скрестив пальцы на руках и с замиранием сердца я прошил свой ноутбук…
Вы помните в лохматые годы мы прошивали свои системные блоки новыми биосами для материнских плат? Тогда на экране красовалась надпись, мол ни в коем случае не выключайте компьютер до окончания прошивания? Были случаи, когда по странному стечению обстоятельств именно в тот момент отключалось электричество… В итоге получали большой не функциональный ящик. Что делалось дальше — история умалчивает.
Мой ноутбук не включился. Перебои с электричеством с батарейкой ему не страшны. Но вот я что-то сделал не правильно. Душевному расстройству не было предела. К моей большой радости оказалось, что биос имеет функцию recovery и путем нехитрых комбинаций клавиш и заранее подготовленной флешки ноутбук можно оживить.
Я пошел другим путем: пропатчил те места, которые ну ни как не могли повлиять на функционал биоса, а точнее заменил логотип. Снова прошил и снова получил кирпич. Размышляя и советуясь с опытными дельцами в этом деле мы пришли к выводу, что современные UEFI биосы имеют вторичную проверку на контрольную сумму образа прошивки. Первая проверка происходит когда вы пытаетесь прошить, а вторая когда биос запускается. Если в первом случае я также пропатчил прошивальщик, чтобы он не проверял контрольную сумму, то вторую проверку мне не преодолеть, так как она зашита в самом железе.
На данный момент имеем следующее: Можно патчить EFI биосы и не можем UEFI. Мой, конечно же, второй случай. Опять долгие поиски в интернете и натыкаюсь на статью Enable VT on InsydeH2O based Sony Vaio laptops, the EFI way.
Суть метода проста: вы загружаетесь в EFI режим с помощью специального загрузчика и получаете доступ к VSS памяти, где настройки вашего биоса и хранятся. Я протестировал что на моем ноутбуке это работает, снова открыл прекрассный дизассемблер IDA, скачал последние спецификации и в полном вооружении начал потрошить свой биос.
Успешным результатом двухнедельной работы стало выпотрошенное меню
Я успешно загрузился в загрузчик с доступом к VSS памяти, прописал нужные мне переменные и включил или выключил чего мне не хватало или мешало в моей работе.
Ну а теперь о том как это сделать вам.
Подготовка инструментария
1. Необходимо скачать PhoenixTool с этого форума, где постоянно выкладывается текущая версия. Он вам будет нужен, чтобы разложить файл прошивки на его составляющие.
2. Вам нужен perl. Если у вас есть UNIX система, то все просто, если нет, то ActivePerl или Cygwin под Windows.
3. Вам нужен последний биос от вашего производителя.
4. Любой архиватор.
Получение образа прошивки
1. Откройте архиватором exe файл вашей прошивки, найдите там файл с расширением bin или fd и распакуйте в удобное для вас место. Лучше в отдельную папку.
2. Запустите PhoenixTool и попробуйте открыть файл прошивки.
3. Если при попытке открыть вы видите такое окно
то скорее всего ваш образ от производителя зашифрован. Decrypt метод пока не придумали, но это только дело времени. Если это ваш случай, то переходите к следующему шагу, если нет, то пропускаем и переходим к пункту 8.
4. Распакуйте программу прошивания в удобную для вас папку и запустите обновление вашего биос до последней версии.
5. После того как ваш ноутбук перезагрузится, снова зайдите в эту папку и найдите там файл platform.ini
6. Откройте текстовым редактором и сделайте слеующие изменения:
Это позволит вам прошить еще раз ваш биос, но при этом будет создана резервная копия текущего биоса.
7. После перезагрузки откройте полученную резервную копию с помощью PhoenixTool
8. Через пару секунд вы должны будете увидеть окошко похожее на это:
9. Теперь можете закрыть окошко.
10. В папке, где у вас лежал образ появится папка DUMP, а в ней множество файлов. Нас интересует, который начинается на FE3542FE и имеет самый большой размер:
11. Теперь скачиваем исходный код моего
Подготовка загрузочной дискеты
1. Берем флешку, размер не важен.
2. Форматируем ее в FAT32
3. Создаем структуру каталогов EFI\Boot
4. Скачиваем BOOTX64.EFI
5. Кладем в папку Boot
6. Перегружаемся в BIOS, включаем Legacy и отключаем Secure Boot.
7. Сохраняемся и загружаемся через флешку.
8. После загрузки вы должны увидеть желтый текст на черном экране
9. К модификации настройки биоса все готово.
Изменение параметров
Для изменений используются поля VarStore и Value. Value в логе в десятичном варианте, при изменении необходимо указывать шестнадцатиричное значение.
1. Допустим вам надо изменить режим работы диска с IDE на AHCI. Кому-то это надо для хакинтошей, а кто-то купил себе твердотельный жесткий диск, а ноутбук его не видит. Ищем в лог файле что что касается сабжа и находим следующие строки:
Для того чтобы вам изменить настройку, необходимо сперва дать команду setup_var 0x39 .
Результатом данной команды будет текущее значение данной переменной. Чтобы ее изменить и поставить в AHCI, надо дать команду setup_var 0x39 0x1 . Учтите, что если у вас стоит Windows, то потребуется его переустановка, так как однажды настроенный Windows на IDE не сможет понять, что теперь ему надо работать с AHCI. Как вариант — предварительно загрузившись в безопасный режим подредактировать реестр, тогда переустанавливать ничего не придется.
2. Например вам надо запретить дискретный видеоадаптер. За этот пункт отвечает следующие строки:
Команда setup_var 0x1e6 0x0 отключит дискретный и будет работать только встроенный.
3. Хотим чтобы Numlock не включался
Команда setup_var 0x08 0x0 отключит его при загрузке.
Эпилог
Данное руководство составлено как оно есть и так как я делаю это на практике. Я не несу ответственности за испорченные материнские платы или утерянную информацию. Все что мы можете сделать — вы делаете на свой страх и риск.
Если что-то пошло не так, то первым спасательным кругом может быть извлечение батарейки биоса для стирания VSS памяти. Если не помогает, то вам нужно искать способ recovery для вашего биоса. В случае HP инструкцию можно посмотреть здесь. Для других вендоров там же, но я не искал.
Моя тема, где я нет, нет помогаю страждущим находится здесь. Благодарности от пользователей в доказательство тому, что это все работает.
И последнее, не пытайтесь отключить оборудование, которое у вас имеется или включить то, которого у вас нет, иначе сбой инициализации оборудования приведет к полном краху и невозможности восстановления материнской платы.
И самое последнее, мой вам совет: прежде чем начинать экспериментировать с оверклокингом и тюнингом биоса, проверьте, что для вашего ноутбука работает способ восстановления биоса в случае его краха. Пока таких случаев не было, но мало ли.
AMD'шники могут смело пропустить весь текст ниже и читать вторую часть этой статьи, а мы продолжаем разбирать получившийся файл ROM.
Intel рассказывает о структуре своих BIOS'ов на страницах даташита на соответствующие чипсеты. Для всех чипсетов, начиная с 6 серии, этот формат в общем не менялся, поэтому его можно смело взять оттуда. Файл делится на 3-5 регионов:
Необязательными являются регионы GbE (используется совместно с встроенными сетевыми картами Intel начального уровня) и PDR (предназначен для данных OEM, но я ни разу не видел, чтобы он где-то использовался).
Descriptor
Этот регион должен находится в первой (из двух поддерживаемых) микросхеме flash по нулевому адресу и подразделяется на 11 секций, суммарный размер которых не должен превышать 4 килобайта. Устроен он так:
Первые 16 байт не используются и всегда равны 0xFF, за ними следует сигнатура 0x0FF0A55A, затем секция Descriptor Map, указывающая смещение начальных пяти секций и их размер.
Секция Component содержит информацию об используемых микросхемах flash: их количество (1 или 2), плотность (от 512 Кб до 16 Мб), запрещенные команды (такие как chip erase, например) и частоты чтения, быстрого чтения и стирания/записи.
Секция Region содержит смещения и размеры других регионов.
Секция Master содержит настройки доступа каждого из трех возможных мастеров (BIOS, ME, GbE) к пяти возможным регионам.
Секции PCH/PROC Straps содержат параметры конфигурации процессора и северного моста.
Секция Upper Map содержит смещение и размер таблицы VSCC .
Таблица VSCC содержит идентификаторы JEDEC и данные VSCC всех поддерживаемых Management Engine микросхем flash.
Секция OEM может быть заполнена OEM-производителями по своему усмотрению, но я не видел её заполнения ни разу.
Проверим теперь структуру полученного нами файла ROM на соответствие вышеприведенной:
Легко видно, что структура вполне себе соответствует, но угадать, за что именно отвечает каждый байт каждой секции будет непросто.
К счастью, Intel избавил нас от угадывания, выпустив утилиту FITC , которая позволяет настроить дескриптор (и не только его) и содержит подсказки по каждому доступному для редактирования пункту. Утилита эта входит в набор для разработчиков материнских плат и не предназначена для конечных пользователей, но ссылку на нее всегда можно найти на форумах, посвященных модификации BIOS'ов.
Открываем наш файл ROM в FITC 8.xx и все настройки дескриптора как на ладони:
Я крайне не рекомендую ничего менять, кто не знает, зачем он это делает.
Самыми часто изменяемыми настройками здесь являются настройки доступа к регионам (выделены зеленым на скриншоте hex-редактора), которые в дикой природе встречаются двух видов: вышеприведенные «всем можно всё» и стандартные настройки Intel. Иногда открытость записи в регион МЕ помогает справится с нарушением его работоспособности, просто перезаписав его полностью. На платах со стандартными настройками это невозможно без получения доступа к МЕ, которое на разных платах реализовано по разному и может потребовать достаточно нетривиальных манипуляций (замыкания ног аудиочипа во время загрузки, например).
Обратная сторона открытости — вредоносный код может делать что угодно с дескриптором и всем остальным содержимым микросхемы BIOS. Почему-то об этом говорить не принято, при том, что абсолютно все платы ASUS на P67 с BIOS'ам версий 3ххх и все платы ASUS на Z68 имеют открытый дескриптор. И security никакая, и с obscurity проблемы, о чем инженеры думали — не знаю.
Вторая полезная настройка — плотность микросхемы BIOS, которую приходится менять в случае восстановления испорченного BIOS'а платы с микросхемой большого объема, используя работоспособную плату с микросхемой меньшего.
Присутствует только на платах со встроенными сетевыми картами Intel начального уровня, вроде 82579.
В даташите на этот чип в разделе 10 имеется описание структуры NVM , которая и хранится в регионе GbE целиком.
Главная настройка, которую может быть интересно изменить — MAC-адрес, находящийся в самом начале региона, в первых 6 байтах. Если вдруг вам нужно сменить аппаратный MAC своей встроенной карты Intel, и регион GbE на вашей плате имеется — вы знаете что делать.
В нашем примере регион GbE находится по смещению 0x1000 от начала и содержит стандартный MAC для всех образов NVM, выпускаемых Intel в качестве обновления — 88:88:88:88:87:88:
При прошивке стандартными средствами регион GbE не обновляется вообще, несмотря на присутствие обновленного NVM в файле с обновлением BIOS'а, поэтому Intel пришлось выпустить отдельную утилиту NVM Update, когда в результате ошибки в версии 1.3 карта переставала работать нормально после установки Windows 8.
Регион содержит кучу других настроек, о которых можно прочесть в указанном выше даташите.
Здесь находится Management Engine Firmware и ее настройки. Про ME можно писать бесконечно, потому что там чего только нет. Лучшее описание структуры этого региона и возможных векторов атаки на него вы можете прочесть в докладе Игоря Скочински на Breakpoint 2012.
Для тех, кто еще не ушел читать его — краткая выжимка:
В чипсетах Intel имеется микроконтролер с архитектурой ARCompact, получающий питание от дежурной линии ATX, имеющий доступ ко всем устройствам, к RAM, собственный сетевой стек и работающий под управлением ОСРВ ThreadX. Вот он то и обеспечивает все рекламируемые Intel технологии, вроде Active Management, AntiTheft, Identity Protection, Rapid Start, Smart Connect, Protected Audio Video Path и так далее и тому подобное. А при помощи Dynamic Application Loader на нем можно даже Java-апплеты запускать.
На наше счастье, с безопасностью МЕ все более или менее в порядке, и пока я не слышал о случаях успешного внедрения вредоносного кода, но само по себе наличие в чипсете МК, исполняющего неизвестные никому, кроме Intel, программы и имеющего полный доступ к RAM и сети — уже повод для паранойи у склонных к ней людей.
Изменить доступные настройки МЕ можно при помощи той же Intel FITC:
В нашем примере регион ME начинается со смещения 0x3000 и имеет размер 1,5 Мб, что указывает на плату без поддержки AMT .
Регион состоит из одного или нескольких EFI Firmware Volume, о структуре которых я напишу во второй части этой статьи.
Там же мы затронем процесс загрузки UEFI и полезные в некоторых случаях патчи.
Platform Data Region
Регион предназначен для описания каких-либо зависящих от платформы возможностей и по плану должен использоваться OEM-производителями, но по факту я не видел его ни разу.
Источники информации
Восстановление повреждённой прошивки 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.
Микросхемы могут быть разных объёмов, рассмотрим это на примере микросхем 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. Переходим по адресу
Щёлкаем по скачанному файлу и запускаем установку.
Щёлкаем по ярлыку 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, а по-русски резервную копию.
Видео инструкция по работе с этой программой.
Многие антивирусы определяют эту программу как вирус, но это не так.
Мой 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.
cd\
cd Python27
python DecompNewDell.py biosupdate.exe
Должно получиться как на фото ниже.
И в папке с Python (обычно это C:\Python27), появится файл biosupdate.exe_decompressed.hdr.
- с программой PFSExtractor.exe, извлекаем программу в ту же папку где у нас был создан файл.hdr (обычно это C:\Python27).
- В командной строке Windows пишем:
Получится как на фото ниже.
И будет создана папка 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, версия самая последняя:
По традиции публикую ссылку на архив с инструментами — (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.
Читайте также: