Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.134.102.182] |
|
Страницы: (3) [1] 2 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Где можно взять исходники BIOSов?
|
Сообщ.
#2
,
|
|
|
По адресу FE00:0000 реального режима. ;-)
Они ж всё равно на асме писаны, какая тебе разница. |
Сообщ.
#3
,
|
|
|
Ты бы еще спросил где взять исходники мастдая, естессно у производителей, но врядли они просто так тебе их дадут.
Так что, сливаешь прошивку и декомпилишь ее, она ничем не сжимается |
Сообщ.
#4
,
|
|
|
Мастдай-то как раз и отдают, но сможешь ли ты унести, вот вопрос! ;-)))
|
Сообщ.
#5
,
|
|
|
server_mouse, а если смогу - сольешь на почту??? )))
|
Сообщ.
#6
,
|
|
|
2 server_mouse: Да, ты остряк-самоучка!
По поводу BIOS... Обычно размер составляет 128к, но может и 512к, а гипотетически и вообще 2М. Основной текст BIOS содержится по адресу F000:0000 (реальный режим), расширение - по E000:0000. Но отображаемый в этих сегментах может варьироваться в зависимости от настроек SETUP. Можно код получить с помощью зеркального отображения кода в flat real mode, читайте доку по PCI мосту, у нас писали такую утилитку... Оригинальное предложение по дизассемблированию не катит. Текст кода перемешан с данными, любой дизассемблер, в том числе интерактивный загнется, но безумству храбрым споем мы песню... Короче, тем или ином боком занимаясь BIOS в течение 2-х лет, могу Вам заявить по поводу самостоятельного определения кода: "Флаг Вам в руки, барабан на шею... ну и... якорь в ноги. Тем более код представляет собой занимательную смесь кривого и очень талантливого кода, я много почерпал для себя оттуда. Первая часть - это от вендоров платы, а вторая оттточенная от разработчика BIOS (Award, AMI и т.д.). Наши средние умы оказались бессильны... Да, еще забыл сказать определенная часть кода BIOS обычно шифруется и пакуется. Привет! |
Сообщ.
#7
,
|
|
|
Факт, rivitna. Я попробовал как-то посмотреть "загрузчик" (через HIEW ... Кошмар одним словом. Там во-первых через каждые 5 команд прыжок, причём с помощью...
mov sp,Слово_с_Адресом_процедуры-2 ret И так 25 раз, а потом мне надоело Кстати, анекдот есть на эту тему... Суд. Зверзкое убийство, 25 ножевых ранений. Подсудимого спрашивают как всё было. Подсудимый: Стою я на кунхе, режу апельсин, а кожуру на пол бросаю. Слышу шаги. Обарачиваюсь, а там мужик незнакомый бежит ко мне. Подскальзывается на корке и прямо на мой нож. И так 25 раз |
Сообщ.
#8
,
|
|
|
2 7in:
А ты - крепкий парень! Я уже где-то на 10-м прыжке загрустил... |
Сообщ.
#9
,
|
|
|
а я допрыгался до самого конца
а бросил енто дело на том месте, где начинается считывание в память MsDos.Sys. Там шипко хитрый цикл, по сравнению с которым данные переходы просто детское развлечение |
Сообщ.
#10
,
|
|
|
2all
а прошивки бивиса, которые распространяют разные конторы - ASUS & etc. - с ними можно что-ньть сделать? ЗЫ конкретнее - ASUS + Award Medallion 6.0 |
Сообщ.
#11
,
|
|
|
2 purpe:
Позволь усомниться в этом? Во-первых, по адресу F000:FFF0 с вероятностью 95\% находится команда int 19h, а не jmp near xxx, как ты это перепрыгнул, просто ума не приложу! Во-вторых, действия загрузчика BIOS заканчиваются на копировании MBR в память по адресу 7С00:0000 и передачи ему управления Задачей же загрузчика MBR является поиск активной партиции в таблице MBR и передача управления загрузчику BR партиции. А загрузчик BR ищет в корневом каталоге IO.SYS и подгружает его, а уж потом и MSDOS.SYS и COMMAND.COM. Это, говорилось для случая DOS, конечно. Поэтому возникает вопрос: "Как ты все это проделал, прыгая по BIOS?". Хотя кто знает, может ты - вундермен. Я разбирался в загрузчике (POST) и могу сказать, что там, даже если удастся диссамблеровать код, без поллитры не разберешься. Помимо программирования совершенно недокументированных портов, существует инициализация устройств Plug & Play, а это отдельная песня, во время нее происходит создание загадочных структур в пределах первого мегабайта. В принципе даже и с этим можно разобраться, но для этого нужны нехилые исследования и недешевое оборудование, кому это только надо. Меня, помню, года три назад восхитил тест памяти по BIOS-ки. Процессор переводится в защищенный режим так, что физическая память становится доступной в пределах всего линейного адресного пространства, а затем организуется цикл по мегабайтам, в котором происходит обращение к первому двойному слову мегабайта, какая-нить логическая операция, чаще XOR, а затем сравнение на правильность выполнения. Если все сошлось, мегабайт считается действительным и суммируется к объему ОЗУ. Таким макаром, и определяется объем оперативки. ASUS в каких-то платах даже в таком цикле облажались, и у них память (если она больше 64M) определялась не всегда правильно. 2 R II: Ты хоть народу скажи, на что исходники нужны, любопытство разыгралось не на шутку. |
Сообщ.
#12
,
|
|
|
2 purpe:
А может, ты хорошо разбежался и перепрыгнул всю BIOS? Тожа всет-ки способ! |
Сообщ.
#13
,
|
|
|
И всё таки, я хотел бы узнать, можно ли дизассемблить файлы обновления бивиса? т.е. те,которые используются для его перепрошивки или которые можно вытащить в файл с помощью авардовских утилит?
|
Сообщ.
#14
,
|
|
|
Забыл еще отметить немаловажную деталь. Во время POST выполняет код не только BIOS.
Во время POST сканируется память, начиная с C000:0000 на предмет обнаружения ПЗУ подключенных адаптеров. Если таковые обнаруживаются, управление передается им для инициализации. По адресу C000:0000 всегда находится часть ПЗУ видеоадаптера. В итоге по BIOS особо не попрыгаешь без отладки. А если с отладкой, так это верный способо подвесить электронного друга! |
Сообщ.
#15
,
|
|
|
2 VuDZ:
В принципе дизассемблировать можно все, директива DB в этом поможет. Корректно же дизассемблировать почти не возможно. Даже с помощью IDA |