Текущее время: 19 апр 2024 10:53


Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: 22 апр 2020 13:50 
Аватара пользователя
Не в сети

Зарегистрирован: 18 апр 2020 11:02
Сообщения: 8
Откуда: Межозерный
Город: Челябинск
Выдергиваем ДАМП мультиконтроллера (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
Адресация начинается с нулевого, поэтому последний адрес в шестнадцатеричной системе должен быть (838860810-110) = 7FFFFF16, начало смещения строки состоящей из 16 байт начинается с (8388607)10-1510 = 838859210 = 7FFFF016
В нашем случае. Все так и есть.
Далее ищем смещение, например, если Вы точно знаете, что прошивка ЕС начинается с 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*102410 = 131072Байт10 = 2000016, конечный адрес: 1FFFF16
Можно потыкать в точки 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) и стартовые данные начинаются с «круглых» значений.
В нашем случае это 20000016 = 209715210 /1024/8 = 100
Т.е. стартовый адрес прошивки находится ровно со второго мегабайта прошивки так как
838860810/209715210 = 410 делится на 4 части ровно (Что я имею ввиду на рис. 21)

Вложение:
21.jpg


Рисунок 21
Вернемся к нашим баранам:
Наводим указатель на строку, которая на 100% повторяется со строкой донорской прошивки ЕС и жмем CTRL+E , тогда начальное смещение уже есть в окне выбора блока (Рис.21)
Вложение:
22.jpg

Рисунок 22
Вбиваем известную нам длину 2000016 в режиме hex, жмем «ОК» и получаем следующющее (Рис.23):
Вложение:
23.jpg

Рисунок 23
У нас выделена наша прошивка ЕС, осталось только сохранить ее в новом файле, ну это мы уже проходили.
Сравним, что получилось.
Можно поковырять файл и найти отличия дампов ЕС донора и родного (полученного из BIOS)(Рис.24)
Вложение:
24.jpg

Рисунок 24
Видно, что прошивки сделаны явно для разных платформ, может процессоры или видеокарты другие. Встройка, не встройка и так далее.
Выводы.
На сколько стало понятным, основной «каркас» организации бинарника ЕС совпадает. Адреса и даже некоторые данные. Такие команды, как запуск и тайминги на сигналы типа SUSP или еще чего, необходимого для запуска, позволит на первой стадии начать диагностику обнаружить некоторые неполадки. Но гарантировать изображение при этом, точно не будет.
Поэтому очень важно заливать ту прошивку ЕС, которая принадлежит основному BIOS.
P.S. Поковырявшись в прошивке основного BIOS на своем опыте я научился по ключевым запросам находить так называемые DMI блоки, серийники на железо и даже на WINDOWS. Ключевые запросы могут быть какими угодно. От «SOFTWARE» до «LENOVO» ну это нам может понадобится если нам придется менять флешку или ее содержимое было повреждено, но это уже совсем другая история.
С уважением к Вам и Вашему делу, Данил.

К Админам: мои картинки загружены при помощи Яндекс диска, оттуда скопированы URL , опыта написания таких статей и техники оформления нет. Поэтому прошу не пинать. Если мне будет доступна возможность правки я сделаю оформление.


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Вернуться к началу
 Профиль ICQ  
Ответить с цитатой  
СообщениеДобавлено: 24 апр 2020 10:16 
Аватара пользователя
Не в сети

Зарегистрирован: 18 апр 2020 11:02
Сообщения: 8
Откуда: Межозерный
Город: Челябинск
Ёлки зеленые, какое отвратительное качество у моего вложения в топике.
Вот файл в word-оригинале.
Тут оригинал
Собственно вот тут все что есть. Все рисунки пронумерованы. А так же там файлы прошивок над которыми шла работа.


Вернуться к началу
 Профиль ICQ  
Ответить с цитатой  
СообщениеДобавлено: 24 апр 2020 15:20 
Мастер и Администратор
Аватара пользователя
Не в сети

Зарегистрирован: 11 ноя 2005 11:31
Сообщения: 15489
Откуда: Украина
Город: Odessa
ок

_________________
ремонт ноутбуков, планшетов в Одессе
продажа паяльных станций Термопро ик-650
и расходных материалов для пайки и ремонта


Вернуться к началу
 Профиль ICQ WWW  
Ответить с цитатой  
СообщениеДобавлено: 25 апр 2020 12:20 
Не в сети

Зарегистрирован: 13 сен 2012 12:30
Сообщения: 1408
Город: Одесса
Ок, зачет


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 


Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot], tuatara, xzerox, Yandex [Bot], Yarou


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB