Выдергиваем ДАМП мультиконтроллера (128Кб) из основной прошивки BIOS (8 Мб)
Скачиваем вот отсюда
https://mh-nexus.de/en/downloads.php?product=HxD20 HxD editor. Установку не показываю.
Скачиваем родной дамп основного BIOS со своей MB или если своя повреждена, то с сайта производителя или с дружественных форумов. Файл, как правило 8 Мб.
Чтобы извлечь из нее прошивку для мульта (далее ЕС) надо убедиться, что она там есть, хотя бы изучить пару тем по данной платформе. Информация, с какого адреса дамп ЕС лежит в основной прошивке, будет очень полезной. Но, например, для своей платформы Compal LA-B091P Rev1.0 я не нашёл.
И так если у нас есть начальный адрес, с которого лежит прошивка ЕС:
Запускаем HxD(Рис.1), файл открыть или “CTRL+O”, выбираем свой или скачанный DUMP BIOS 8 Мб (Рис.2).
Вложение:
Screenshot_378.jpg
Рисунок 1Вложение:
Screenshot_2.jpg
Рисунок 2Прокрутим файл с адреса 00000000 до конца, в случае если прошивка 8 Мб, в последней строке должен быть адрес 007FFFF0 (это шестнадцатеричное обозначение адреса памяти, 8Мб это 8192 кБ, это 8388608 Байт.(Рис.3).
Вложение:
Screenshot_3.jpg
Рисунок 3Адресация начинается с нулевого, поэтому последний адрес в шестнадцатеричной системе должен быть (8388608
10-1
10) = 7FFFFF
16, начало смещения строки состоящей из 16 байт начинается с (8388607)
10-15
10 = 8388592
10 = 7FFFF0
16В нашем случае. Все так и есть.
Далее ищем смещение, например, если Вы точно знаете, что прошивка ЕС начинается с 0 (с нулевого адреса) и заканчивается по длине 128 кБ, то это проще всего. Выделяем первые 128 кБ. Для этого есть функция выделить блок:
Жмем “CTRL+E” или в меню «ПРАВКА» -> «ВЫДЕЛИТЬ БЛОК» (Рис.4,5,6,7)
Вложение:
Screenshot_4.jpg
Вложение:
Screenshot_5.jpg
Вложение:
Screenshot_6.jpg
Вложение:
Screenshot_7.jpg
Рисунки 4,5,6,7
Мы уже умеем пересчитывать Мб и Кб в байты и адреса.
Длина = 128Кб
10*1024
10 = 131072Байт
10 = 20000
16, конечный адрес: 1FFFF
16Можно потыкать в точки hex, dec и понять как организована адресация, чтобы понять тонкости.
И так если нажать «ОК», то мы должны увидеть следующее (Рис.8):
Вложение:
Screenshot_8.jpg
Рисунок 8Теперь нам необходимо скопировать наш кусок при помощи клавиш «CTRL+C» или через Контекстное меню: «ПРАВКА» -> «КОПИРОВАТЬ» в буфер обмена.
Создадим «Новый файл» через Файл -> «Новый» (или сочетание CTRL+N) и вставим из нашего буфера данные: «ПРАВКА» -> «ВСТАВИТЬ» (или «CTRL+V»)
Должны увидеть такую картинку (Рис.9)
Вложение:
Screenshot_9.jpg
Рисунок 9Далее жмём кнопку сохранить (или «CTRL+S») и попадаем в меню сохранения файла (Рис.10)
Вложение:
Screenshot_10.jpg
Рисунок 10Называем как удобно, и добавляем расширение .bin (на латинской клавиатуре).
Не обращайте внимание на иконки моих файлов, почему то плеер VLC подцепил файлы bin. На других ПК может быть пустая белая иконка (нераспознанная).
Файл для прошивки мультиконтроллера когда есть некоторые входные данные готов.
Ну вот не задача, я ни где не смог найти информацию о том, где в основной прошивке находится мой DUMP для EC (NPCE288 или NPCE388, флеш BIOS 25Q64BS 8Мб) от платформы Compal LA-B091P Rev. 1.0 ноутбук Lenovo B50-70, с дорогим мне i7 процем)
Как в данном случае я поступил. На форумах полно (действительно полно как многие гуру пишут и тыкают носом почти в каждой второй теме с этим вопросом: «Как разковырять, откуда скачать…» и прочее), поэтому тут не буду показывать как скачать файл с сайта изготовителя и распаковать exe файл.
У нас случай когда есть точно рабочий DUPM BIOS и нам надо извлечь из него только прошивку для мульта. При этом ни где нет информации с какого адреса она там расположена.
Я поступаю так:
Скачиваем от такой же платформы ДАМП с форума или еще где. Нам надо знать организацию хранения данных.
Опять открываем программку HxD только в этот раз через контекстное меню сравнить (Рис.11,12,13)
Вложение:
11.jpg
Вложение:
12.jpg
Вложение:
13.jpg
Рисунок 12 и 13В этом окне необходимо выбрать свой ДАМП BIOS 1-источник и найденную прошивку мульта во втором источнике данных.
Далее жмем «ОК». И получаем следующий результат (Рис.14)
Вложение:
14.jpg
Рисунок 14В этом случае видно, что данные прям с первых байт сильно разнятся.
Самый первый вариант надо попробовать скопировать первые 16 байт из донора ЕС (найденного).
Но этот вариант не прокатит если стартовая строка содержит символы не допустимые для копирования в буфер обмена (Рис.15).
Вложение:
15.jpg
Рисунок 15Поэтому нам придется найти «съедобоваримую информацию».
Немного пролистав файл донора ЕС можно наткнуться на вполне читаемые строки, например, на скрине окна (Рис.16) с самых первых строк уже видно что-то типа Copyright 1996-2…. А это значит можно попытаться их найти и в нашем BIOS.
Вложение:
16.jpg
Рисунок 16Копируем строку состоящую из 16 байт в буфер. Ну вот теперь виндовс не ругается.
Переходим (делаем активным окно со своим BIOS)
И жмем «CTRL+F» «ПОИСК», настройки лучше не трогать. Кодировку менять смысла нет, так как оба файла с одним принципом поиска. Видим (Рис.17 и 18)
Вложение:
17.jpg
Рисунок 17Вложение:
18.jpg
Рисунок 18Выравниваем сроки для удобства и анализируем данные(Рис.19):
Вложение:
19.jpg
Рисунок 19Как видно есть 100% совпадение.
Мы открыли файлы в режиме сравнения поэтому нам доступна функция сравнения «побайтно».
В принципе, тут уже ежу понятно, что искомые данные найдены. Но интереса ради можно воспользоваться анализом. Клавиша F6 проделает сравнение данных в ячейках до следующего «несовпадения», комбинация клавиш «SHIFT+F6» вернет обратно на несовпадения после начала поиска.
Вот в моем конкретном случае видно отличие на той же странице без перелистывания(Рис.20):
Вложение:
20.jpg
Рисунок 20 Ну это и логично, донор ЕС един по структуре организации данных, но различен по информации. Может быть там какой-нибудь серийный номер или еще чего. Мне попадалась информация что могут быть и более существенные отличия которые влияют на запуск MB и часто с донорской прошивкой мульта появляется реакция на кнопку включения, но тайминги разные и MB не стартует, именно поэтому необходимо заливать прошивку ЕС именно с той платформы которая является наиболее родственной (если нет родной как в нашем случае)
Далее процедура извлечения похожа на ту что была описана выше, за исключением того, что необходимо задать начальный адрес для выделени блока.
Как правило, информационные блоки для отдельных узлов отделены в DUMP BIOS либо пустотами либо заполненными данными (00 или FF) и стартовые данные начинаются с «круглых» значений.
В нашем случае это 200000
16 = 2097152
10 /1024/8 = 100
Т.е. стартовый адрес прошивки находится ровно со второго мегабайта прошивки так как
8388608
10/2097152
10 = 4
10 делится на 4 части ровно (Что я имею ввиду на рис. 21)
Вложение:
21.jpg
Рисунок 21Вернемся к нашим баранам:
Наводим указатель на строку, которая на 100% повторяется со строкой донорской прошивки ЕС и жмем CTRL+E , тогда начальное смещение уже есть в окне выбора блока (Рис.21)
Вложение:
22.jpg
Рисунок 22Вбиваем известную нам длину 20000
16 в режиме hex, жмем «ОК» и получаем следующющее (Рис.23):
Вложение:
23.jpg
Рисунок 23У нас выделена наша прошивка ЕС, осталось только сохранить ее в новом файле, ну это мы уже проходили.
Сравним, что получилось.
Можно поковырять файл и найти отличия дампов ЕС донора и родного (полученного из BIOS)(Рис.24)
Вложение:
24.jpg
Рисунок 24Видно, что прошивки сделаны явно для разных платформ, может процессоры или видеокарты другие. Встройка, не встройка и так далее.
Выводы.На сколько стало понятным, основной «каркас» организации бинарника ЕС совпадает. Адреса и даже некоторые данные. Такие команды, как запуск и тайминги на сигналы типа SUSP или еще чего, необходимого для запуска, позволит на первой стадии начать диагностику обнаружить некоторые неполадки. Но гарантировать изображение при этом, точно не будет.
Поэтому очень важно заливать ту прошивку ЕС, которая принадлежит основному BIOS.
P.S. Поковырявшись в прошивке основного BIOS на своем опыте я научился по ключевым запросам находить так называемые DMI блоки, серийники на железо и даже на WINDOWS. Ключевые запросы могут быть какими угодно. От «SOFTWARE» до «LENOVO» ну это нам может понадобится если нам придется менять флешку или ее содержимое было повреждено, но это уже совсем другая история.
С уважением к Вам и Вашему делу, Данил.
К Админам: мои картинки загружены при помощи Яндекс диска, оттуда скопированы URL , опыта написания таких статей и техники оформления нет. Поэтому прошу не пинать. Если мне будет доступна возможность правки я сделаю оформление.