В последнее время шибко участились просьбы сделать из того, что лежит на сайте Intel под видом прошивки - то, пригодно для перешивки на программаторе, то бишь образ BIOS (точней - образ EFI).
EFI
EFI - не
BIOS. Даже букв в названиях разное количество. А если это ещё и на плате от
Intel (снова отличное количество букв в названии) - получается совсем тяжко. Попробуем таки разобраться, при этом без углубления в слишком тонкие материи, а больше с прагматическим уклоном а-ля "сделать-прошить-забыть".
Капсула
Итак, скачанное с сайта
Intel под видом прошивки (верно для всех плат, начиная с 2004-го года) суть капсула
EFI. Капсула, как не сложно догадаться из названия - инкапсулирует в себе много
всякой ботвы различных компонентов, из которых, собственно, прошивальщик "на лету" собирает конечный образ
EFIBIOS (режет слух и возможны непонятки, потому далее буду использовать привычное название -
BIOS). Увидеть всё это хозяйство (кучу файлов/модулей в составе капсулы) можно с помощью пока недоделанной, но для такого уже рабочей - альфы
BIOS Patcher 7 (которую я где-то уже выкладывал в ветке по EFI).
Полуспособ номер один - оживляем через BootBlock
При открытии патчером капсулы видны длинные ветки инкапсулированных один в другой файлов, иногда такой глубины, что сразу чувствуешь всю капсульную натуру такой капсулы. Но нам не нужны все. Нам вообще, достаточно найти лишь одну "веточку", которая есть ничто иное, как бутблок в чистом виде. Обычно оный имеет стандартный размер в 64Кб (10000h), однако не факт - уже сталкивался с бутблоком на 256Кб на новых платах с
EFI.
Итого, даже не зная ничего и не желая напрягаться - тупо переберить все, что найдёте
FFS, пока не увидите справа напротив
Size заветные
010000. Другим точным указанием на то, что это именно
BootBlock - есть наличие в составе
FFS модуля (тип
RAW) с названием
SecCore Driver (
погоняло нашего
бутблока "у них - в
EFI"). Далее непринуждённо тыкаем кнопку
"Сохранить как" и получаем на выходе нужный код BootBlock.
Восстановить с помощью этого файла оригинальный
BIOS уже дальше дело техники. Кто внимательно читал
"Искусство перешивки BIOS" тому это будет совсем просто. Полученный код с помощью любого hex-редактора вставляем в самый конец "заготовки" прошивки (пустой файл, равный по объёму требуемой прошивке). Прошиваем и получаем ошибку
CRC BIOS (ясен перец - его-то -
BIOS-а - и нет вовсе), срабатывает аварийная процедура восстановления
BIOS (которая располагается в оживлённом нами
BootBlock-е) и после стандартных шаманских действий в такой ситуации на выходе получаем рабочий компьютер.
Способ номер два - собираем прошивку
Если предыдущий полуспособ по какой-то причине не подходит, придётся разбираться плотней. Итак, делаем скидку на то, что альфа патчера является альфой и что все варианты сразу описать не смогу.
CapsuleToImage
Ищем одноимённый модуль. Теоретически в окне справа оного должна быть отображена информация о составных частях прошивки и адресах, по которым нужно их расставлять.
С учётом
8-Мегабитности прошивки приведённого примера, что обозначает, что начальный адрес оной в памяти есть
FFF80000, несложно (хотя, может, и сложно) догадаться, что в недрах капсулы нужно найти три части и записать их по адресам
70000,
8000 и
2000 соответственно. Исходя из названия логично, что:
- recovery firmvare - есть ранее нами уже рассекреченный бутблок (поэтому и пишется в конец)
- main firmware - основной код BIOS (кликуха - DXE Core или POST по-нашенски)
- logos - и прочие подобные файлы (их может не быть) есть просто дополнительная мишура, полноэкранная заставка в данном случае
У каждой из частей отображается её
GUID по которому можно безошибочно извлечь нужный(-ую?)
FFS. С помощью того же hex-редактора записываем выделенные куски по нужным адресам в "заготовке" прошивки и на выходе получится заветный образ. Правда - почти. Но пока хватит.
Попробовал. Загрузчик нашел без проблем, а вот как сохранить его непонял. Отметил его, нажал "Сохранить как", но ничего не сохраняется, файл не создается.
Роман, спасибо - в аккурат, вовремя пришлось (чтоб её, эту маму) ; Ысчо раз, очень вовремя и как всегда грамотно...
- Ситчик веселенький есть?..
- Приезжайте, обхохочетесь!..
Роман, у меня есть самые свежие исходные коды BIOS-ов для материнских плат на современных чипсетах AMD любых вариантов - RS690 (все варианты), RS780 (все варианты), наверное, еще какие-то. BIOSы c поддержкой AGESA все версий: 3,4,6. В комплекте куча фирменного софта для отладки BIOS-ов. Интересует?
Очень интересует, хоть я и не Роман
Либо нечему гореть, либо нечем поджечь!
blaster, аналогично, меня тоже очень интересует!..
Партизан подпольной луны aka (R)soft
BIOS-это как раз и есть основной профиль этого форума-так зачем спрашивать?
а для сепаратизма есть приват-чтоб остальных не дразнить
Дайте пожалуйста ссылочку именно на патчер, окно которого изображено в этой статье, все перерыл не могу найти.
Не понял, где взять ПАтчер 7???
rom.by/forum/EFI_unpacker Внизу.
-=Кто сказал что бесполезно биться головой об стену...=- (НП)
Пх’нглуи мглв’нафх Ктулху Р’льех вгах’нагл фхтагн
Хочешь сделать хорошо - сделай это сам
А вот если у меня Insyde BIOS, и там нет капсул.
Только три FFS (очевидно, что это логотип, собственно биос и бутблок). Могу я такое сразу зашить через программатор?
Вот скриншот:
А поясните, пожалуйста следующую вещь.
Пользуюсь указанным альфа патчером.
Делаю, как и написано. Сохраняю бутблок.
Но! Что смущает!
Во первых не работает
Во вторых вот картинка того, что сохранилось (начало)
DG31GL.jpg.html
Так там с нулевого адреса идёт EA D0 FF ...
Хотя эта команда должна идти на 16 байте. (чтобы она была первой инструкцией по FFFF:FFF0).
Размер сохранённого файла 0x10000
То есть, дописывая в конец (как указано ) 4-мегбитного (512Kб) биос-файла, ничего не сдвинется.
(
Как быть?
Ребят, как вообще эта программа работает? Как можно вставить выход с неё в заготовку?
Я, хоть убей, не пойму как первая выполняемая инструкция при таком выходе должна попасть в FFFF:FFF0. Либо нужно писать программу, чтобы она по 16 байт переписывала... или что... Объясните, пожалуйста.
lsvmo
1. При подобных вопросах было бы неплохо приводить ссылку на разбираемый образ прошивки.
2. Вместо картинки весом 232 кб можно было бы дать сохраненный bootblock весом 64 кб.
3. Глубоко наплевать, что у вас оказалось по нулевому адресу в bootblock'е. Вас интересует инструкция, лежащая в конце bootblock'а (начиная с последних 16 байт).
Плата от Intel DG31GL.
По ссылкам.
Вот ссылка на БИОС
downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17919&ProdId=2966&...
а вот на сам файл
downloadcenter.intel.com/confirm.aspx?httpDown=http://downloadmirror.intel...
Ссылка на то, что получилось у меня с помощью альфа-программы
DG31GL.rom
Насколько я знаю, начиная с 16-ого байта от конца должна быть инструкция EA адрес...
то есть jmp адрес
А у меня её нет. А есть она только по нулевому адресу... Вот я и говорю, как так?
Подскажите, пожалуйста...
Может у кого есть образ прошивки этой платы?
P.S. Кстати, на других BIOS от Intel программа почему-то вообще сама завершается. Открываешь файл, а она раз - и нет её. Например, на DG965RY.
2. Необязательно jmp будет первой же инструкцией по 0xFFFF:0xFFF0.
3. Необязательно код операции jmp будет равен 0xEA.
4. Т.е. bootblock у вас вполне адекватный.
Кроме boot'а BIOS у матерей с Intel чипсетом есть слабое место - микрокод.
Intel в отличие от AMD оставил для патчения аппаратных ошибок. В некоторых прошивках BIOS в реальном режиме процессора есть функция загрузки микрокода с дискетты. Пустой процессор (можно потереть рентгеном) по идее должен выходить в технологический режим загрузки устройства управления внутрисистемной шины. А у флешек кроме выпайки в программатор есть последовательная шина, через которую по идее можно запрограммировать флешку через дорожки платы.
P.S. публичный e-mail:batman68@rambler.ru
P.S.S. Мать из Сулимов (д. Беседки, Гомельская обл.)
Нда, какую чушь только не пишут гости, в частности Батов Дмитрий Евгеньевич.
...ложки нет
Спасибо, очень хороший "цикл" статей о EFI.
Очень не хватает информации как при помощи BIOSPatcher7 вставить модуль в капсулу.
-= Материнская Intel DZ68DB =-
"Научена" производителем запарывать себя саму при перепрошивке БИОСа штатными средствами (по моему опыту с двумя материнскими - F7 точно, из Win может просто ничего не обновиться или сбиться настройки БИОСа, материнская остаётся работоспособной). Надо обязательно включать параметр в БИОСе (по умолчанию Disabled) "Flash Update Sleep Delay" (некая отсрочка при обновлении).
"Вскрытие" показало, что биос потёр область FFS (первоначальной инициализации, с SecCore) и не успел ничего записать взамен (т.к. он сам же при перепрошивке сделал reset или power cycle).
-= Аппаратная часть =-
Intel на матерях использует микросхемы для хранения БИОСа с интерфейсом SPI. В сети имеет хождение программа и схема программатора spipgm, созданного чехом (нужно 4 резистора и барарейку). Подключаться надо непосредственно к контактам самой микросхемы ПРЯМО НА ПЛАТЕ. Используется специальная колодочка или же подручные средства. В моём случае использовал кусочки из IDE-шлейфа на 40 пин. Отделить от него две группы по 4 проводка в каждой. Аккуратно снимается изоляция с одной стороны проводников длинной 4-5 мм, необходимо зачищать именно отступив от края (обреза) кабеля чтобы оставшаяся его незачищенная часть изоляции фиксировала проводники, не давала им распушаться. Эти зачищенные части нужно совместить с ножками микросхемы и надёжно зафиксировать. Предварительно необходимо припаять эти кусочки шлейфа к резисторам, LPT-разъему и отсеку для батареек (некоторые через несколько диодов подключают к +5В, у меня запитывалось от двух аккумуляторов типа AA; запитывание от батарейки, снятой с материнской платы быстро садит эту батарейку и, возможно, батарека должна быть обязательно на плате).
-= О прошивке =-
Предварительно переписывал из микросхемы запоротый БИОС. Рассмотрение его в hex-ах выявило, что стерты данные, где должен быть FFS первоначальной инициализации с SecCore. Это с адреса 3A0000 h и до конца файла.
Пробовал:
1) вписать отсутствующий фрагмент (FFS с SecCore по адресу 3A0000h) в имеющийся образ из микросхемы;
2) как тут написано изготавливать "прошивку" из пустого файла с записанной в конец FFS, содержащей веточку SecCore.
При заливке в материнскую -- циклическое включение/выключение последней.
Оказалось, неправильно проводил процедуру заливки.
Имеется PDF от Intel:
Intel® DQ57TM UEFI 2.3.1
Development Kit
Getting Started Guide
May 2012, Version 1.41
Она посвящена процедуре прошивки платы как программно (когда плата функционирует), так и с аппаратным сторонним программатором. Нас интересует второй вариант и особенно стр. 25 документа ("Step 5. Prepare the Target PC").
Процедура ПОДГОТОВКИ по пунктам (чего я не делал и потому не получал нужного результата):
CAUTION: To avoid damaging the motherboard and/or other components, AUX power to the machine must be OFF, and the power cord unplugged from AC power.
CAUTION: To avoid damaging the motherboard and/or other components, make sure you follow standard anti-static precautions, including the use of ground straps.
CAUTION: Overwriting the BIOS with a new image can be problematic while the management engine is active, because the management engine can create activity on the SPI bus.
1. On the target PC, make sure power is off.
2. Disconnect the power cable from AC power.
3. There is a green standby power LED next to the SATA connector on the motherboard. Wait until this LED turns off.
4. On the host PC, plug the USB end of the Dediprog cable into a USB port.
5. Отключить SATA кабели, если мешают.
6. Set motherboard in configuration mode (BIOS CFG Jumper, pin 2-3).
7. On the target PC, connect the programmer by connecting the ISP-TC-8 alligator clip to the SPI flash device on the motherboard. Make sure pin 1 on the alligator clip is connected to pin 1 on the flash device. The white line on the SPI plug should line up with the white dot or arrow on the motherboard.
8. Note the configuration of the BIOS CFG jumper.
CAUTION: Make sure the target PC is powered down and the power cable disconnected from AC power before moving the BIOS CFG jumper. Moving the jumper with the power on may result in unreliable computer operation.
9. Grasp the tab on the BIOS CFG jumper, carefully remove the jumper, and set the jumper aside. For detailed information about removing the BIOS CFG jumper, refer to the motherboard product guide.
10. Reconnect the power cable to the target PC, enabling AUX power.
11. Press and hold the power button on the target PC until the system powers up, then powers back off.
12. Locate the green standby power LED. It should now be lit (and the red Intel® ME status LED should be off если материнская плата с поддержкой ME).
Процедура после прошивки описана на стр. 40 ("Step 10. Exit Dediprog and reassemble the target PC").
Для тех, кто не владеет английским приведу СВОЙ перевод. Разумеется, никакой ответственности за качество и правильность перевода. Делайте всё на свой страх, риск и кошелёк.
ПРЕДУПРЕЖДЕНИЕ: Чтобы избежать повреждения материнской платы и/или других компонентов, питание компьютера должно быть отключено и вилка 220 В физически _вытащена_ из розетки.
ПРЕДУПРЕЖДЕНИЕ: Чтобы избежать повреждения материнской платы и/или других компонентов, убедитесь, что Вы принимаете все надлежащие меры по защите от статического электричества, включая заземляющие браслеты.
ПРЕДУПРЕЖДЕНИЕ: Только для материнских плат с технологией управления (intel Management Engine). Например, на чипсетах Q-серий. Запись в БИОС нового образа может быть затруднена при активном "движке" технологии ME, т.к. он также использует шину SPI и может передавать по ней данные при прошивке БИОСа.
1. Выключите питание прошиваемого компьютера (пациента).
2. Физически _вытащите_ вилку 220 В из розетки прошиваемого компьютера (пациента).
3. Отключите кабели от монитор, если от был подключен (в ряде случаев с монитора приходит питание на материнскую плату) + отключите ещё и все другие периферийные устройства (принтеры и проч.). Оставьте только клавиатуру.
4. На плате есть зелёный светодиод дежурного питания. Дождитесь, что он ПОЛНОСТЬЮ ПОГАСНЕТ (разрядится блок питания и не поступает питания от других устройств, например, по USB).
5. Установить перемычку на плате-пациенте в режим конфигурации БИОСа ("BIOS CFG", положение уточняйте в инструкции от материнской платы).
>>>
6. На втором (рабочем) компьютере подключить программатор к USB.
7. На плате-пациенте подключить колодку-клипсу программатора к флеш-микросхеме. При установке убедиться, что метки контакта 1 на микросхеме и на колодке совпадают. Контакт 1 на материнской плате помечен белой точкой или стрелочкой.
<<<
=== ОТ МЕНЯ по пунктам 6 и 7: в моём случае я сначала готовил плату-пациента (прикреплял "шлейфики") и уже после этого подключал к рабочему компьютеру разъём LPT. Более того, после закрепления шлейфов убеждался, что имеется контакт всех проводников со всеми соответствующими ножками flash-микросхемы (мультиметром, однако, способ проверки придумывайте сами, не буду ничего советовать, не спец). В окончании процедуры подключал/вставлял батарейки питания "прошивальщика", т.е. по факту микросхемы БИОСа.
----
8. Перемычку конфигурации БИОСа на плате-пациенте ("BIOS CFG") УБРАТЬ, т.е. так установить режим восстановления БИОСа.
ПРЕДУПРЕЖДЕНИЕ: Любые операции с перемычкой конфигурации БИОСа производить при выключенном компьютере с погасшим светодиодом дежурного питания _на_плате_. В противном случае может наблюдаться нестабильная работа компьютера!
9. Подключите питание компьютера-пациента чтобы загорелся светодиод дежурного питания НА ПЛАТЕ (включить вилку в 220 В и выключатель на САМОМ БЛОКЕ ПИТАНИЯ).
10. Нажать и ДЕРЖАТЬ кнопку питания на передней панели компьютера-пациента до тех пор, пока компьютер не запустится и не отключится вновь.
11. Если у Вас плата-пациент с технологией iAMT (Management Engine, например, на Q-чипсете), то на ней рядом с зелёным светодиодом питания расположен красный светодиод "движка" ME. Убедиться, что зелёный светодиод горит, КРАСНЫЙ ВСЕГДА выключен. Если красный мигает - прошивать нельзя: выключить компьютер, дождаться погасания зелёного светодиода и повторить пункты 9 и 10.
12. Идём в программу-программатор и выполняем программирование (прошивку) микросхемы SPI. По окончании записи рекомендуют прочитать образ из микросхемы и сравнить его с файлом, использованным для прошивки.
13. Выключить питание компьютера-пациента, вытащить вилку из розетки 220 В компьютера-пациента. Отключить батарейку питания "прошивальщика". Отключить LPT-разъём из рабочего компьютера.
14. Дождаться погасания зелёного светодиода НА ПЛАТЕ-пациенте.
15. Снять клипсу программатора / провода подключения к flash-микросхеме платы-пациента.
16. Подключить монитор и клавиатуру.
* Далее делаем перепрошивку БИОСа средствами восстановления БИОСа самой платы *
17. Взять USB-flash'ку, отформатированную в формате FAT/FAT32. Скопировать файл профивки с расширением BIO (им уже пользовались при правке повреждённого образа из микросхемы; или взять на сайте Intel в разделе поддержка->драйверы->BIOS). Скопировать на usb-флешку ту же версию БИОСа, что была на плате до неудачной попытки прошить её!
18. USB-flash'ку вставить в плату-пациент.
19. Подключите питание компьютера-пациента чтобы загорелся светодиод дежурного питания НА ПЛАТЕ (включить вилку в 220 В и выключатель на САМОМ БЛОКЕ ПИТАНИЯ).
20. Нажать кнопку питания на передней панели компьютера-пациента. Он может сам же тут же сделать цикл "перевключения". Если всё пойдёт ОК: USB-флешка на определённом моменте начнёт показывать обращения к ней (если на ней есть такой светодиод) и на мониторе будет отражаться ход операций прошивания. По окончании на мониторе будет фраза, что обновление БИОСа успешно окончено и необходимо отключить компьютер и установить перемычку режима БИОСа в другое положение.
21. Выключить питание компьютера-пациента, вытащить вилку из розетки 220 В компьютера-пациента.
22. Отключить кабель монитора от компьютера.
23. Дождаться ПОЛНОГО погасания зелёного светодиода НА ПЛАТЕ-пациенте.
24. Установить перемычку на плате-пациенте в режим конфигурации БИОСа ("BIOS CFG", положение уточняйте в инструкции от материнской платы).
25. Подключить монитор, подать и включить питание, СДЕЛАТЬ СБРОС НАСТРОЕК БИОСа по умолчанию (BIOS defaults).
26. Выключить питание компьютера-пациента, вытащить вилку из розетки 220 В компьютера-пациента.
27. Отключить кабель монитора от компьютера.
28. Дождаться ПОЛНОГО погасания зелёного светодиода НА ПЛАТЕ-пациенте.
29. Установить перемычку на плате-пациенте в "нормальный" (Normal/default) режим БИОСа ("BIOS CFG", положение уточняйте в инструкции от материнской платы).
ГОТОВО
Теперь можно запарывать БИОС с чистого листа)
так много букаф, что заблудиться можно
а зачем эти пункты с включением/выключением, если нужно прошить кусок кода по соответствующему адресу? и кстати, что же вы, наконец, зашили туда (из текста непонятно)?
Если вопрос заключается в том, зачем делать включение-выключение кнопкой питания на передней панели компьютера, то ответ в тексте присутствует:
Хотя это написано в руководстве к плате на чипсете Q-серии (с технологией iAMT), тем не менее, функция управления вентиляторами реализуется Intel-ом также посредством Management Engine'а (смотрите диаграмму, например) и => он есть на всех материнских. Использует ли механизм управления вентиляторами для своей работы шину SPI я не знаю, но для уверенности стабильной записи прошивки эту процедуру нужно проводить, я считаю. Если кто-то знает прошу поделиться, требуется ли эта процедура на Z-серии чипсетов.
Что прошивать написано тоже (но не разжёвано по пунктам, извините; однако сами же направляете жалобу про многобуков):
=>
Роман,большое спасибо!!!за полезную инфу про этот bootmgr.efi файл,толко у меня он не 64 Кб весит а 654 Кб.Немного диковод на ноуте полетел(писать перестал)думаю,-ещё немного и читать не будет,решил записать загрузочную флешку,и никак UltraISO не хотела его пустить(думаю,-ну и хрен с ним!)а прочёл и вкунул его.А у меня ведь действительно Win 7x64 HP Intel Core(i3) b Recovery ксатити-иногда здорово помогает!!!Ещё раз СПАСИБО!!!за информацию.
Добрый день
Тема для меня злободневеая. Имею на руках интеловскую мат.плату Intel DH61WW. Она "умерла" при обновлении. Откатать назад не смог
(у них как оказалось обновляться надо в несколько заходов и с моеей версии назад отката нет). Единственный вариант прошиться через програматор. Хочу попробовать ваш метод. Скачал bios patcher. Он просит файл с расширением awd bim или rom. А у интела нет таких файлов
только bio или exe (exe - это архив с программой iflash2 и bio файлом).
Подскажите пожалуйста как быть?
Если честно, то пробовал программа просто закрывается.
Пробовал даже замену расширения на bin и.к.д - результат тот же
Вот текст ошибки при закрытии программы
"Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: ROMpatcher - копия.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 48ea933f
Имя модуля с ошибкой: KERNELBASE.dll
Версия модуля с ошибкой: 6.1.7601.18015
Отметка времени модуля с ошибкой: 50b83b16
Код исключения: c0000005
Смещение исключения: 000085a6
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
Дополнительные сведения 1: 899e
Дополнительные сведения 2: 899eab2bd10f4041e3c222bfca29a209
Дополнительные сведения 3: abf7
Дополнительные сведения 4: abf7efc4090e3b55981a73dfecad0e42
Ознакомьтесь с заявлением о конфиденциальности в Интернете:
go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419
Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt
"
Есть еще один момент.
Сам bio файл я могу распаковать. Но там тоже нет файлов с расширениями bin rom и awd (добра всякого мого а толку 0)
Могу и выслать - скажите куда и как
2. Выложить на удобный файлообменник и дать ссылку.
P.S. Было бы интересно поглядеть на текущее содержимое флешки.
letitbit.net/download/42881.45201c4316bf5f3078033cfe5278/Intel_bio.rar.html
В архиве на всякий случай есть не распакованный bio файл
Перенесено сюда.
maco
Отправить комментарий