BIOS в виртуальной памяти?

Тема в разделе "WASM.BEGINNERS", создана пользователем Neraverin, 8 дек 2010.

  1. Neraverin

    Neraverin New Member

    Публикаций:
    0
    Мапиться ли BIOS в виртуальную память винды ? и если мапиться то как его там обнаружить ? Пробовал написать драйвер и использовать NTKERNELAPI функцию MmGetVirtualForPhysical. Как я понимаю BIOS лежит по физическому адресу 0xfffe0000 (размер моего BIOS 128Kb), но на выходе всегда получаю 0. зы я только начинающий системный программист, так что если у кого то есть ссылки на документацию по этой теме то с радостью ознакомлюсь
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
  3. Neraverin

    Neraverin New Member

    Публикаций:
    0
    Спасибо за сслыку, буду разбираться. Уточню еще раз, мне не надо работать с функциями BIOS или получать какой то доступ к внутренним его частям. Мне лишь надо знать находится ли он в виртаульном адресном пространстве винды или нет.
     
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Neraverin
    А как только узнаете, что BIOS находится в виртаульном адресном пространстве винды, что будете делать? Наверное, полезете в его внутренние части. Пинчакко раньше часто заходил на WASM.RU\forum в раздел WASM.ENGLISH если захотите можно связаться...
     
  5. Neraverin

    Neraverin New Member

    Публикаций:
    0
    Дело в том, что сама Windows у меня находится на виртуальной машине.BIOS виртуальный, но винда работает с ним так же как и с ностоящим. В BIOS я могу и так внести любые изменения, которые захочу. Меня интересует сама возможность перехода в BIOS и выполнения там заранее размещенного кода.
     
  6. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Neraverin
    На сколько я помню, BIOS размещается в памяти Read-Only (ROM или ПЗУ) и при следующей перезагрузке все изменения "внесенные в BIOS" в ОЗУ сотрутся, кроме того настоящий BIOS содержится в упакованном виде, каким это образом туда вы решили внести изменения и "заранее размещать код"? Странный какой-то "начинающий системный программист" может быть вам в раздел WASM.VIROLOGY?
     
  7. featurelles

    featurelles New Member

    Публикаций:
    0
    Mikl___
    Нихрена, из ос, примяком можно писать в чип bios.
    Кстати, в книге Салихана это хорошо описано и дан код.
     
  8. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    featurelles
    там вроде перемычка была, чтобы не писали? Хорошо, BIOS размещался в ROM. Честно говоря, я давно читал "Руководство по исследованию кода БИОС" многое не помню :dntknw:
     
  9. featurelles

    featurelles New Member

    Публикаций:
    0
    Mikl___
    Я также как и вы) ничего не помню.. учил это года три назад (....
    Вообще это интересная тема.

    Кстати, есть вопрос. Как "Вы" (кто угодно) тестите код для bios для разных материнок?
     
  10. vaxvax

    vaxvax New Member

    Публикаций:
    0
    я знаю что BIOS размещён в памяти Read-Only это точно ну а далее по известной схеме.
     
  11. Neraverin

    Neraverin New Member

    Публикаций:
    0
    Еще одно пояснение. Есть винда, которая крутится под qemu-kvm(виртуальная машина с аппаратной виртуализацией под linux). Виртуальная машина предоставляет винде виртуальный bios(seabios исходные коды его имеются). Мне не так важно read only там или не read only. в bios будет дописан некоторый код. Задача выполнения этого кода сводится к поиску bios в виртуальном пространстве windows.
     
  12. featurelles

    featurelles New Member

    Публикаций:
    0
    Neraverin
    Так какой вопрос то) я не понял.

    "BIOS. Дизассемблирование, модификация, программирование". Не помню какая страница.(лень смотреть)
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    А зачем ты ищешь уже отмапленные проэкции?
    Создай свою. MmMapIoSpace() позволяет драйверу спроецировать себе в ядро определенный участок физической памяти, базовый адрес и размер задается.
    И пусть не смущает, что к одной памяти создано несколько проекций (до тех пор, пока не придется синхронизировать доступ к общим переменных/объектам/...)
     
  14. Neraverin

    Neraverin New Member

    Публикаций:
    0
    Проблема в том, что если проекция уже есть, то эту проекцию проще найти из гипервизора, чем запустить из гипервизора функцию ядра, сразу же после загрузки этого ядра, которое опять же прийдется искать и парсить для нахождения этой функции. Вся фишка как раз в том, чтобы убрать драйвер из винды и не связываться с подписью драйверов под x64
     
  15. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Neraverin
    смотри здесь, но не уверен что будет работать под х64
     
  16. diamond

    diamond New Member

    Публикаций:
    0
    Оригинальный образ BIOSа из верхних адресов после загрузки для работы не нужен и никуда не отображается. Рекомендую посмотреть на копию в нижних адресах, F0000 - FFFFF, с ней шансов больше.
     
  17. baldr

    baldr New Member

    Публикаций:
    0
    Также неплохо освежить знания о shadow memory и как (или если) контроллер памяти отсылает запросы к LPC/FWH-памяти, исходя из диапазонов адресов.