Операции с памятью загруженных драйверов

Discussion in 'WASM.NT.KERNEL' started by Entropy, Mar 9, 2021.

  1. Entropy

    Entropy Member

    Blog Posts:
    0
    Joined:
    Aug 23, 2020
    Messages:
    185
    Здрасти,как вам известно для юзермода есть функции для чтения и записи в память процесса(Read\WriteProcessMemory),так возникает вопрос,может ли загруженный драйвер читать и записывать память других драйверов ? очень интересно будет рассмотреть реализацию этого
     
  2. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,328
    Ты путаешь процессы и ядро, у каждого процесса своя виртуальная память, память ядра образно одна, драйвер может писать что угодно, куда угодно, главное в бсод систему не уронить.
     
  3. Entropy

    Entropy Member

    Blog Posts:
    0
    Joined:
    Aug 23, 2020
    Messages:
    185
    то есть надо отследить адрес куда загружен драйвер ?
    --- Сообщение объединено, Mar 9, 2021 ---
    но также нужно учитывать атрибуты памяти
     
  4. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,328
    Ты хочешь пропатчить код другого драйвера или что?
     
  5. X-Shar

    X-Shar Active Member

    Blog Posts:
    0
    Joined:
    Feb 24, 2017
    Messages:
    348
    А ядро это позволит, пачгарды всякие и т.д. ?
     
  6. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,789
    Rel,

    > память ядра образно одна

    На самом деле это не так, есть сессии где память ядра не общая. Изменяются таблицы адресной трансляции MiAttachSession() etc. Адрес может одинаковым быть, а значение по нему разное. Так отображается гуй в ядро каждой сессии.

    Entropy,

    > отследить адрес куда загружен драйвер ?

    Есть такая интернал функция MmEnumerateSystemImages(). Подключается к сессии, получает инфу про образ, дальше перечисляет сессии и образы.

    > может ли загруженный драйвер читать и записывать память других драйверов ?

    В юзер манипуляции адресами проходят через VAD, в ядре через MDL. Что это такое можешь почитать у Рихтера или есчо где то тут например.
     
  7. cddee3

    cddee3 Member

    Blog Posts:
    0
    Joined:
    Nov 15, 2020
    Messages:
    55
    На самом деле это не так, если работает Hyper-V с включенным VBS то будут два ядра ntoskrnl.exe и securekernel.exe
    securekernel.exe будет в защищенном мире VTL1 доступ к нему блокируется гипервизором на уровне SLAT, но адресное пространство - общее
     
  8. Entropy

    Entropy Member

    Blog Posts:
    0
    Joined:
    Aug 23, 2020
    Messages:
    185
    откуда такая инфа ? сурки wrk или таблица экспорта ?
    --- Сообщение объединено, Mar 12, 2021 ---
    нет,меня интересует чтение памяти
    --- Сообщение объединено, Mar 12, 2021 ---
    пачгард это совсем другое,он не контролирует целостность загруженных драйверов
     
  9. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,789
    Entropy,

    > откуда такая инфа ?

    Так дебаг символы любой диз обрабатывает, идой открыл да посмотрел. Это в несколько кликов мышем конечно, наверно вопрос как это найти - я не первый месяц в кернел там неплохо ориентируюсь. Без аттача к сессиям образу ты не перечислишь. Если большое количество экспортных апи, в юзер например я предпочтительно использовал RtlWalkFrameChain() тк это табличные решения не блокирующие поток, в ядре вариков больше. Там всё упирается как ты сможешь найти символьную апи, тоесть там есть всё но оно не паблик что значит не внесено в экспорт.
    --- Сообщение объединено, Mar 12, 2021 ---
    > нет,меня интересует чтение памяти

    Ты не описал проблему с чтением, рано походу тебе в ядро лезть покури архитектуру пару лет(ты можешь тупо что то копипастить сбилдить оно упадёт но отладить ты это не сможешь, затем тупо кинешь потратив очень много времени, так у всех было новичков) :)
     
  10. Entropy

    Entropy Member

    Blog Posts:
    0
    Joined:
    Aug 23, 2020
    Messages:
    185
    уже не успею,нельзя исключать что архитектура с течением времени будет усложняться,думаю для ознакомления эти пару лет подойдут
     
    Indy_ likes this.
  11. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,789
    Entropy,

    Да, это можно назвать проблемой вхождения". Попытка догнать поезд.
     
    M0rg0t likes this.
  12. UbIvItS

    UbIvItS Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 5, 2007
    Messages:
    6,242
    если отрубить "защитные" рюшечки, то дравер обретает силу былых времён. к тому же, скорость софта заметно растёт :)
     
  13. Entropy

    Entropy Member

    Blog Posts:
    0
    Joined:
    Aug 23, 2020
    Messages:
    185
    а если подробнее и как это относится к этой теме ?
     
  14. UbIvItS

    UbIvItS Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 5, 2007
    Messages:
    6,242
    так тебе на какую вынь нужны дрова и цель этих дров?
     
  15. Entropy

    Entropy Member

    Blog Posts:
    0
    Joined:
    Aug 23, 2020
    Messages:
    185
    вынь 7,цели: чтение памяти других загруженных дров