Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Старый софт » Шаблон BIOS для IDA Pro |
<<Назад Вперед>> | Страницы: 1 * | Печать |
Root
Advanced Member
Откуда: Saint-Petersburg Всего сообщений: 623 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 авг. 2006 |
а в чем проблема? объясните, как сделать человеческие сегменты (CS/DS) для BIOS-а, я уже весь мозг сломал. а) Вспоминаете какая первая инструкция выполняется на платформе x86 б) смотрите размер БИОСа. Определяете стартовый адрес кода BIOSа (очевидно, адрес из п.а минус размер БИОСа) в) грузите в ИДА БИОС по адресу из п.б. г) проверяете все ли правильно. Радуетесь и идете пить пиффо. |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
Root Адрес первой инструкции известен - F000:FFF0 и это должно быть оформлено сегментом, но XT BIOS всего 8К длиной. Вдобавок он активно работает с ОЗУ и с сегментом 0040:0000 что тоже надо оформить. В принципе я нашел способ как грузить, пока работает. |
Root
Advanced Member
Откуда: Saint-Petersburg Всего сообщений: 623 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 авг. 2006 |
alecv ну, не знаю - я грузил, потом сегменты удалял и ручками создавал F000: и E000: (это для обычного 586-BIOS) - помогало. Насчет ОЗУ.... А что там в 0040:? Можно извратиться: сделать файл на мегабайт. В конец записать образ БИОСа XTшки. Ну, и диазсмить его.... |
0leg
Advanced Member
Откуда: Город-герой Тула Всего сообщений: 1991 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 окт. 2007 |
alecv, я как-то дизассемблировал БИОС от XT... При загрузке файла (8 Кбайт) сегмент был 0xf000, смещение — 0xe000. Сегмент для переменных БИОС создаётся упомянутым тобой biosdata.idc. По поводу остального ОЗУ я не запаривался :-( |
Schicchi |
Пример создания сегмента в IDA: Создадим к примеру сегмент в памяти начиная с 1000:200 и заканчивая 1000:4FF Для этого вначале открываем окно сегментов: в меню выбираем пункт View/Open subviews/Segments (или нажимаем Shift+F7). В контекстном меню выбираем пункт Add Segment (или жмём Ins). Поля заполняем следующим образом: Segment name: seg1000 (произвольное имя сегмента) Start Address: 0x10200 (физический адрес начала сегмента -\t0x1000 * 0x10 + 0x200) End Address: 0x10500 (физический адрес окончания сегмента\t+ 1) Base: 0x1000 (значение сегментного регистра) Class: можно не заполнять для 808x тип сегмента указываем 16bit После нажатия Ok, получаем требуемый сегмент в памяти. P.S. Если новый сегмент пересекается в адресном пространстве с существующем - IDA попытается существующий изменить так, чтобы пересечения не было. Получается это у неё далеко не всегда. |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
Root написал: Это первое что пришло в голову, но так не работает - смешения лезут от нулевого адреса а не от F000:0000. Работает так, как написал 0leg. Можно извратиться: сделать файл на мегабайт. В конец записать образ БИОСа XTшки. Ну, и диазсмить его.... |
Root
Advanced Member
Откуда: Saint-Petersburg Всего сообщений: 623 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 авг. 2006 |
alecv ручками пересоздать сегменты! Это первое что пришло в голову, но так не работает - смешения лезут от нулевого адреса а не от F000:0000 |
<<Назад Вперед>> | Страницы: 1 * | Печать |
Полигон-2 » Старый софт » Шаблон BIOS для IDA Pro |
0 посетителей просмотрели эту тему за последние 15 минут |
В том числе: 0 гостей, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |