Подготовка к препарированию AWARD BIOS 6.0

Материал из Wiki.

Априори вся прошивка распотрошена на модули любым известным и неизвестным способом, Пиччакка хотя бы просмотрен. Исследования проводятся в IDA Pro любой версии.


Для начала исследования кода БИОС необходимо расположить исследуемые модули по соответствующим адресам, иначе это получится не исследование, а полный пшик и Вы застрянете в начале пути не увидев для себя ничего интересного.

Boot Block. Он (бедолага) будет у нас один одинешенек. К нему уже ничего не пристыкуешь.
Имеет размер восемь килобайт. При загрузке в Иду задаем сегмент (Loading segment) F000h и смещение E000h. Жмем ОК и выбираем 16-разрядный режим. Ждем окончания загрузки.
Имеем на первое время загруженный бинарный файл без следа дизассемблирования - именно его Вам сейчас и предстоит совершить.
Помним, что точка входа в БИОС F000:FFF0h - это область БутБлока. Идем вниз до смещения FFF0h и видим первую инструкцию, исполняемую процессором, что-то типа EA 5B E0 00 F0. Жмем "С" - получаем jmp far ptr F000:EA5Bh. Понеслась...

Подробнее в заметке Исследование Бутблока.

Original.bin, или, собственно, главный модуль.


Для начала (по крайней мере так делаю я) режем Original.bin на две половинки по 65 килобайт любым Hex редактором, так как нам нужны два сегмента, а резать в Иде я не умею :(.
Берем для начала первую половинку. Грузим в Иду с сегмента E000h и смещением 0000h. Потом идем File->Load File->Additional Binary File..., выбираем вторую половинку, задаем сегмент F000h и смещение 0000h. Готово. Имеем два сегмента. Помним что точка входа в Original.bin F000:F80Dh. Там нас ждет инструкция E9 куда-то-там.

awardext.rom. Для начала переименуем его в awardext.bin, иначе некоторые инструкции х86 ,будут некорректно обрабатываться Идой. Пристыковаваем его к нашему Original.bin (как Additional Binary File...) с сегментом 1000h и смещением 0000h.

Без пристыкованного awardext.rom цепочки межсегментных вызовов будут оборваны и можно потеряться на середине исследуемого участка.

ВСЕ! Прошивка практически полностью загружена в дизассемблер, исследуйте на здоровье. Подробнее в заметке Исследование Original.bin.

Чуть попозже можно будет осветить некоторые моменты как то: начальное отсутствие стека, Межсегментные переходы и др.

Если данная информация оказалась полезной/интересной - плюсаните, пожалуйста:

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей