Загружаем в IDA файл прошивки Award BIOS dump.awa, находим EP "Reset", с которого идет джамп на bb, создаем сегмент 5000:0000 для загрузки распакованного original.tmp, подгружаем его, смотрим ep в original.tmp, там такой же джамп на bb. Вопрос - зачем? И все ли правильно сделано?
Пока меня не было все сказали и без меня в вашей предыдущей ветке. И, в основном, совершенно адекватно.
Судя по заданному вопросу правильней, все же, снова отправиться читать "исходники" и доступные в сети ресурсы - того же, уже "почти нашего" Pinczakko
И как правильно говорил Савелий, это вовсе не из-за того, что "влом подсказать/объяснить", а из-за того, что объяснять можно только нечто конкретное. А когда ошибка в самом вопросе - "...создаем сегмент 5000:0000 для загрузки распакованного original.tmp..." - как ответить - зачем?
Если интересно - конкретизируйте вопрос - буду отвечать. Но - конкретно. Уверен - когда вопрос будет поставлен конкретно - вы найдете его сами. Кстати - в таком случае - тоже делитесь - уже на пользу народу. Если же не будет ясно - подскажу.
п.с. Только топик создайте соответствующий, более информативный. Типа - "ЛикБез по устройству такого-то типа биоса".
Программа для распаковки модулей показывает, что original.tmp в памяти находится с адреса 5000:0000. Я так понимаю, что туда этот модуль попадает после распаковки его bb. Для правильной адресации туда его в IDA и загружаю. Так в чем ошибка?
И вопрос по сути был о другом: зачем в ep original.tmp идет прыжок обратно в bb, такой же джамп, как и в ep самой прошивки?
Е-мае, опять двадцать пять. Снова процитировать << ошибка в самом вопросе - "...создаем сегмент 5000:0000 для загрузки распакованного original.tmp...">> ??? Повторюсь - вопрос показывает абсолютное незнание _азов_ работы Авардбиоса. Как же тут ответить? Потому банально отправляю к первоисточникам и еще раз прочитайте мое предыдущее сообщение.
Цитата из статьи Криса Касперски Bios Patch:
"Ух ты, сколько всего! Первым идет 9a69vpa1.BIN (original.tmp). Основной код BIOS'а сосредоточен именно здесь. Как мы видим, original.tmp загружается по адресу 5000h:0000h и занимает 128Кбайт. Да-да, BIOS загружается в оперативную память, впрочем, надолго он в ней не задерживается и перед передачей управления загрузочному сектору (на винчестерах это MBR, на дискетах — boot) он обязан освободить эти адреса."....
Кто не прав?
Дубль третий - читайте даташиты.
"...впрочем, надолго он в ней не задерживается..."
Ясный пень - это же _буфер_ для зашадовления. _Основной_ код биоса, и это известно любому пионеру ассемблеростроения (ибо есть в любой книжке просто по компьютерам) - F000-сегмент.
Понял, вычеркиваю. А нах там в ep джамп на тот же адрес, что и в ep прошивки? Тоже конкретный вопрос
Дубль четыре - может, все-таки, почитаем даташиты?
А там написано, что в случае ошибки распаковки зашадовится не оригинал.тмп, а бутблок и переход будет на него, в результате чего запустится программа восстановления, а не POST.
п.с. Вы не спросили ничего, чего бы нельзя было прочитать. Потому это последний подобный ответ.
@mimicria
I hope you understand english, then read the section in my article.
geocities.com/mamanzip/Articles/Award_Bios_RE/Award_Bios_RE_guide.html#_7_1_6
to begin to use IDA Pro scripting, read this:
wiki.reverse-engineering.net/index.php/IDA_Pro
as apple_rom said, read the datasheet. Especially intel chipset datasheet, you will find a lot of explanation there
-- Human knowledge belongs to the world --
-- Знания людей принадлежат миру --
Вот-вот. Без обид, но по-простому это называется - тыкнуть носом - за что спасибо Пинчакко, к которому я, собственно, и посылал.
п.с. ...послать к Пинчакко. Звучит, однако...
Отправить комментарий