Априори вся прошивка распотрошена на модули любым известным и неизвестным способом, Пиччакка хотя бы просмотрен. Исследования проводятся в IDA Pro любой версии.
Для начала исследования кода БИОС необходимо расположить исследуемые модули по соответствующим адресам, иначе это получится не исследование, а полный пшик и Вы застрянете в начале пути не увидев для себя ничего интересного.
Boot Block. Он (бедолага) будет у нас один одинешенек. К нему уже ничего не пристыкуешь.
Имеет размер восемь килобайт. При загрузке в Иду задаем сегмент (Loading segment) F000h и смещение E000h. Жмем ОК и выбираем 16-разрядный режим. Ждем окончания загрузки.
Имеем на первое время загруженный бинарный файл без следа дизассемблирования - именно его Вам сейчас и предстоит совершить.
Помним, что точка входа в БИОС F000:FFF0h - это область БутБлока. Идем вниз до смещения FFF0h и видим первую инструкцию, исполняемую процессором, что-то типа EA 5B E0 00 F0. Жмем "С" - получаем jmp far ptr F000:EA5Bh. Понеслась...
Подробнее в заметке Исследование Бутблока.
Original.bin, или, собственно, главный модуль.
awardext.rom. Для начала переименуем его в awardext.bin, иначе некоторые инструкции х86 ,будут некорректно обрабатываться Идой. Пристыковаваем его к нашему Original.bin (как Additional Binary File...) с сегментом 1000h и смещением 0000h.
Без пристыкованного awardext.rom цепочки межсегментных вызовов будут оборваны и можно потеряться на середине исследуемого участка.
ВСЕ! Прошивка практически полностью загружена в дизассемблер, исследуйте на здоровье. Подробнее в заметке Исследование Original.bin.
Чуть попозже можно будет осветить некоторые моменты как то: начальное отсутствие стека, Межсегментные переходы и др.
Отправить комментарий