Запись в физ. память (PhysicalMemory) 101 тема надеюсь последняя

Тема в разделе "WASM.WIN32", создана пользователем Int64, 11 окт 2006.

  1. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Я знаю что эта тема 100 раз поднималась но не было до конца решена
    А я создам 101 раз.

    В общем открыл в драйвере секцию
    Отобразил в память (ZwMapViewOfSection)
    Изменил значение по адресу 000C0000:30-35
    И а затем выгрузил… (ZwUnmapViewOfSection)

    Но изменение не произошли в чем проблема?

    Может в драйвере тоже нужны кое какие прав?
     
  2. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Или посоветуйте...
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    А что по этому адресу лежит, и как проверяешь?
     
  4. seeQ

    seeQ New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2003
    Сообщения:
    71
    Int64
    Если мне не изменяет память, то по этому адресу находится Video RAM видеокарты. Ты собрался изменить Video RAM ??? Хм, если ты пишешь эмулятор железа для какой-нибудь программы(Ring3), то можно вообще без драйвера обойтись.
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    seeQ
    Ошибаешься Video ROM там лежит. ROM- Read Only Memory Поэтому ничего и не меняетя.
     
  6. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Короче...
    Видел однажды прогу которая изменяет в DMI или где-то там
    в памяти название материнки, серийник, и ещё кучу всего...
    Я с ней работал в MS-DOS е.
    Вот теперь тоже хочу что-то подобное сделать
    в общем физ. память я отобразил из под "драйвера" (думаю про ограничение можно молчать :) )

    Хорошо, для проверки моего драйвера скажите куда можно писать
    и по какому смещению... в системном областе.
     
  7. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Int64
    Про первую часть. В конфигурационном пространстве PCI моста PCI to HOST он же по совместительство DRAM Controller. Есть биты которые влияют на возможность записи, разрешают и запрещают.
    Возможно доступ к DMI осуществляется иначе.
    PnP Function 52h – Set DMI Structure
    Хотя изучая исходники биуса видно, что идет работа с конфигурационном пространстве PCI.
    Про вторую часть вопроса.
    Скорее всего по адресам ROM БИОСа и ROM других устройств C0000-FFFFF запись запрещена. Хотя я еще там не все раскопал.
    A0000-BFFFF видео память
    Все что ниже это ДОС память 640Кб включая таблицу прерываний и БИОС и ДОС переменных.
    И еще 1Мб откусывает БИОС от основной памяти, под свои нужды ACPI, NVS. Подробнее Int 15h функция E820
    Также некоторые устройства отображают свою память или регистры в адресное пространство памяти.
     
  8. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Pavia
    Так про память... Куда можно писать?

    Не мог бы скинуть исходники биос?
    Promstrojproekt@mail.ru и если можно доки по этой теме?
     
  9. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Int64
    Я винды плохо знаю.

    В эти адресса запись разрешена
    000000h-09FFFFh* – Base Memory базовая память
    0A0000h-0BFFFFh – Video RAM, 128Кбайт видео память

    В эти адресса запись заприщена, но можно получить доступ.
    0C0000h-0DFFFFh – ROM/RAM память различных адаптеров
    0E0000h-0FFFFFh – System BIOS 128КБайт

    доступ разрешен
    1МБайт-столько сколько у тебя памяти*

    Примечание не все так просто, для того чтобы получить точные диапазоны можно использовать Int 15h функция E820.
    А не погает 2,7 МБ Award_Bios_6.00Pg_Source_Code_1999.zip
     
  10. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Нет не пугает :)
    Скидывай и ещё боле инфы если не жалко!


    Ну в винде приревание запрещены (XP) придется искать другой путь
     
  11. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Ладно в ROM BIOS я научился писать а вот как в
    Писать? А точнее где взять пример программы с исходниками хоть на один видео чипсет?
     
  12. souzz

    souzz New Member

    Публикаций:
    0
    Регистрация:
    20 апр 2006
    Сообщения:
    17
    Адрес:
    Freedom
    Делал такую вещь, делаешь непрерыный массив с данными, AllocateContigniousMemory()
    Затем передаресуешь чтение подменой чтения с адресом (физическим!) начала массива.
    И возвращаешь результат как обычно. Таким образом можно подменить все что угодно.