На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> исходники BIOS
    Где можно взять исходники BIOSов?
      По адресу FE00:0000 реального режима. ;-)
      Они ж всё равно на асме писаны, какая тебе разница.
        Ты бы еще спросил где взять исходники мастдая, естессно у производителей, но врядли они просто так тебе их дадут.
        Так что, сливаешь прошивку и декомпилишь ее, она ничем не сжимается :)
          Мастдай-то как раз и отдают, но сможешь ли ты унести, вот вопрос! ;-)))
            server_mouse, а если смогу - сольешь на почту??? )))
              2 server_mouse: Да, ты остряк-самоучка!
              По поводу BIOS... Обычно размер составляет 128к, но может и 512к, а гипотетически и вообще 2М.
              Основной текст BIOS содержится по адресу F000:0000 (реальный режим), расширение - по E000:0000.
              Но отображаемый в этих сегментах может варьироваться в зависимости от настроек SETUP. Можно код получить с помощью зеркального отображения кода в flat real mode, читайте доку по PCI мосту, у нас писали такую утилитку...
              Оригинальное предложение по дизассемблированию не катит. Текст кода перемешан с данными, любой дизассемблер, в том числе интерактивный загнется, но безумству храбрым споем мы песню...
              Короче, тем или ином боком занимаясь BIOS в течение 2-х лет, могу Вам заявить по поводу самостоятельного определения кода: "Флаг Вам в руки, барабан на шею... ну и... якорь в ноги.
              Тем более код представляет собой занимательную смесь кривого и очень талантливого кода, я много почерпал для себя оттуда. Первая часть - это от вендоров платы, а вторая оттточенная от разработчика BIOS (Award, AMI и т.д.). Наши средние умы оказались бессильны...
              Да, еще забыл сказать определенная часть кода BIOS обычно шифруется и пакуется.
              Привет!
                Факт, rivitna. Я попробовал как-то посмотреть "загрузчик" (через HIEW :) ... Кошмар одним словом. Там во-первых через каждые 5 команд прыжок, причём с помощью...
                mov sp,Слово_с_Адресом_процедуры-2
                ret
                И так 25 раз, а потом мне надоело :)
                Кстати, анекдот есть на эту тему...
                Суд. Зверзкое убийство, 25 ножевых ранений. Подсудимого спрашивают как всё было.
                Подсудимый: Стою я на кунхе, режу апельсин, а кожуру на пол бросаю. Слышу шаги. Обарачиваюсь, а там мужик незнакомый бежит ко мне. Подскальзывается на корке и прямо на мой нож. И так 25 раз :)
                  2 7in:
                  А ты - крепкий парень! :)
                  Я уже где-то на 10-м прыжке загрустил...
                    а я допрыгался до самого конца :)
                    а бросил енто дело на том месте, где начинается считывание в память MsDos.Sys. Там шипко хитрый цикл, по сравнению с которым данные переходы просто детское развлечение :)
                      2all
                      а прошивки бивиса, которые распространяют разные конторы - ASUS & etc. - с ними можно что-ньть сделать?
                      ЗЫ конкретнее - ASUS + Award Medallion 6.0
                        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: Ты хоть народу скажи, на что исходники нужны, любопытство разыгралось не на шутку.
                          2 purpe:
                          А может, ты хорошо разбежался и перепрыгнул всю BIOS? Тожа всет-ки способ! :)
                            И всё таки, я хотел бы узнать, можно ли дизассемблить файлы обновления бивиса? т.е. те,которые используются для его перепрошивки или которые можно вытащить в файл с помощью авардовских утилит?
                              Забыл еще отметить немаловажную деталь. Во время POST выполняет код не только BIOS.
                              Во время POST сканируется память, начиная с C000:0000 на предмет обнаружения ПЗУ подключенных адаптеров. Если таковые обнаруживаются, управление передается им для инициализации. По адресу C000:0000 всегда находится часть ПЗУ видеоадаптера.
                              В итоге по BIOS особо не попрыгаешь без отладки. А если с отладкой, так это верный способо подвесить электронного друга!
                                2 VuDZ:
                                В принципе дизассемблировать можно все, директива DB в этом поможет. Корректно же дизассемблировать почти не возможно. Даже с помощью IDA
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0385 ]   [ 16 queries used ]   [ Generated: 16.04.24, 21:27 GMT ]