И у меня во время работы с UEFI возник вопрос.
Я не так давно занимаюсь изучением дизассемблировния
Работаю в данный момент с BIOS - "AmericanMegatrendsInc.-P09ABE". (ссылка для скачивания)
Работаю в IDA 6.1

Вот hex код:

В начале я понимаю, что задается начальные данные, количество блоков их размер и т.д.
Все Post-коды задаются изначально через порт 80.
Подскажите, как в HEX найти начало этих Post кодов, какой последовательностью она отображается и с чего вообще там начать смотреть, чтобы увидеть эти посты?
Спасибо.
Перенес в Песочницу.
maco
И попытка поиска по сигнатурам выглядит, мягко говоря, странно при наличии нормального инструмента.[/OFF]
P.S. Интересно, когда автор догадается, зачем существует выделение отдельных слов в предложении :lol:.[/OFF]
И что можно сказать по этому коду, что именно тут происходит?
В этом модуле загружаются, какие нить посты, или они в другом файле описываются?
Я рекомендую пользоваться глазами и серым веществом.[/OFF]
1) распакуйте все модули
2) скачайте fasm.exe
3) скомпилируйте строчку out 80h, al скачаным fasm-ом ( в бинарник, никаких com/exe)
4) откройте бинарник и поищите найденую там последовательность байт во всех распакованных модулях.
5) дизассемблируйте каждое место, которое начинается с этой последовательности байт, если дальнейшие команды не выглядят полной фигнёй ( понимание того, что значит "полная фигня" прийдет в процессе дизассемблирования ), то смотрите по коду - где в этот злосчастный al заносится пост-код. Если полная фигня - то значит дизассемблировали данные/кусок другой инструкции.
П.С. Почитайте книжку "BIOS. Дизассемблирование, модификация, программирование" или топики её автора на этом форуме. Про EFI и AMI там мало что сказано, но базовые знания она вам даст.
П.П.С. Также полезно почитать книжку Intel - Beyond BIOS и просмотреть Intel EDK
П.П.П.С. Поищите в гугле скандал об утечке ключей у AMI, обычно в обсуждениях там вылезают какието ссылки на какоето aptio которое, кажется, в каких-то исходных кодах там присутствует. Что это такое я не знаю, но говорят, что это как-то связано с компьютерами. Вроде оно может помочь в понимании.
Я, правда, давно и краем глаза смотрел, но впечатление у меня осталось именно такое.
Для примера можно поглядеть в область bootblock'а той прошивки, на которую приводил ссылку автор. Адрес - F000:FDBC (для простоты указываю адрес в сегментной модели 8086 :D, хотя в реальности используется другая модель). С этой точки начинается выдача первого POST-кода для данной прошивки (причем в эту точку производится безусловный переход, т.е. по адресу F000:FDBB ничего полезного с точки зрения этого POST-кода нет).
Последующий код легко дизассемблируется двумя вариантами: правильным и неправильным :D. Можно применять метод "научного тыка", конечно же :), а можно нормально дизассемблировать от штатной точки входа и понять, в каком пространстве/режиме/итд происходит действие.[/OFF]