Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вытащить U boot из firmware бинарника
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Kirill_Good
Добрый день!

Есть ли какие-нибудь опознавательные знаки у u-boot для того, чтобы вырезать точно его из firmware бинарника? Точно в плане найти где он начинается и где заканчивается. Binwalk не помог. Может и потому что не умею пользоваться или читать вывод.

Спасибо!
kurtis
У вас бинарник с firmware как-то сжат?
Код
cat firmware.bin | strings | grep U-Boot
что-то выдает?
Kirill_Good
Цитата(kurtis @ Feb 16 2013, 17:29) *
У вас бинарник с firmware как-то сжат?
Код
cat firmware.bin | strings | grep U-Boot
что-то выдает?


да, он скорее всего не сжат. Выдает эту строку и другие тоже, очень похожие на логи. Как вычислить оффсеты?
Точнее u boot не сжат. Я его вижу в прошивке. Вопрос именно точно определить смешение. Или это невозможно по шаблону пропарсить u boot на какие-нибудь magic, потому что идет чистый исполняемый код, который разный под архитектуры? В принципе есть устройство с прошитой флеш этим бинарником. В логе на uart выводятся разделы флеша. Сейчас не могу сказать есть он там или нет. Но можно, если есть, сдампить с флеша начало u boot и сравнить с бинарником на руках который firmware.bin. Но все равно есть ли способ универсальный?
gerber
Посмотрите самое начало дампа (нулевой оффсет) - там должна быть инструкция безусловного перехода в точку входа u-boot.
kurtis
Для однозначного ответа слишком много неизвестных.
Есть некоторое подобие меджика у каждой архитектуры, для старта программы на arm архитектуры, в ней в самом начале должны быть вектора прерываний (7 или 8 штук, точно не помню), это можно использовать для определения начала.
Если в убутовском command line есть поддержка чтения из флэшки, то можно убут сдампить в ОЗУ, а затем через консоль слить на host машину (или на карточку, или по сети, зависит от того, что есть).
Kirill_Good
Цитата(gerber @ Feb 16 2013, 19:29) *
Посмотрите самое начало дампа (нулевой оффсет) - там должна быть инструкция безусловного перехода в точку входа u-boot.

в нулевом оффсете файла обновления(тут нужно мне было уточнить, что это не дамп флеша, а файл обновления я с ним работаю) вроде и лежит цель моего исследования. Там вроде как хедер вендора устройства с нужной информацией. Задача узнать где точно он заканчивается. В нулевом оффсете такая строка "SIMON HOME ENTERTAINMENT" может кому и скажет о чем нибудь. Девайс грузит по обновлению бинарник прошивки отрезает wrapper этот и шьет во флеш.

я просто вижу что по признакам после заголовка вендора идет uboot в файле обновления. а где точно он начинается я не знаю.
gerber
Цитата(Kirill_Good @ Feb 16 2013, 18:52) *
тут нужно мне было уточнить, что это не дамп флеша, а файл обновления я с ним работаю

Тогда, вероятно, никакого u-boot-a там нет вообще, поскольку сам u-boot и обновляет прошивку.
Kirill_Good
Цитата(gerber @ Feb 16 2013, 20:11) *
Тогда, вероятно, никакого u-boot-a там нет вообще, поскольку сам u-boot и обновляет прошивку.


u boot есть. обновление в основном делают через initramfs. зачем обновлять u boot это уже другой вопрос. но может и есть причины.
SM
Надо "разобрать на запчасти" самый начальный загрузчик, x-load, или кто там.... Который грузит этот образ, тогда будет понятно, где там убут. Или разобрать обновлялку (хотя очень странно, если эта обновлялка не скрипт в убуте). Оно скорее всего GPL, поэтому проблем быть не должно. А если не GPL, так есть IDA Pro sm.gif
Kirill_Good
Цитата(SM @ Feb 17 2013, 11:25) *
Надо "разобрать на запчасти" самый начальный загрузчик, x-load, или кто там.... Который грузит этот образ, тогда будет понятно, где там убут. Или разобрать обновлялку (хотя очень странно, если эта обновлялка не скрипт в убуте). Оно скорее всего GPL, поэтому проблем быть не должно. А если не GPL, так есть IDA Pro sm.gif


Вот разобрать обновлялку тоже было в мыслях. Но она скорее точно не GPL, хотя тоже может быть.
gerber
А можно полюбопытствовать - зачем может оказаться полезным u-boot в бинарнике, выцарапанный из прошивки устройства? Может, Ваша конечная задача решается более простым ходом.
Kirill_Good
Цитата(gerber @ Feb 17 2013, 22:47) *
А можно полюбопытствовать - зачем может оказаться полезным u-boot в бинарнике, выцарапанный из прошивки устройства? Может, Ваша конечная задача решается более простым ходом.

я выше уже написал про хедер вендора.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.