Поиск dll в памяти

Тема в разделе "WASM.BEGINNERS", создана пользователем WellKnown, 30 мар 2018.

  1. WellKnown

    WellKnown New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2018
    Сообщения:
    1
    Как возможно найти модулек,если его скрыли в PEB->LDR?(если нет возможности вмешаться "до")
    Интересны все варианты.
     
  2. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    WellKnown,

    Есть ядерный сервис для этого. NtAreMappedFilesTheSame, но это не точно, поищите сами. Есть сервисы, которые возвращают инфу про проекцию, к примеру файловый путь по указателю. Так что проблемы или задачи не видно.
     
    WellKnown нравится это.
  3. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    А есчо вспомнил такое, загрузчик ведёт лог проекций в виде битмапы, это годный способ. RtlpStkIsPointerInDllRange(). Там по цепочке экспорт. Почему вы это не ищите сами.
     
    unc1e и WellKnown нравится это.
  4. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    WellKnown,

    На что мне ваши лайки, мне интересна сама задача, вы же её не описываете. Поэтому и нельзя конкретно ответить.

    В загрузчике для поиска либы в памяти я использовал именно предыдущую функцию, а не сервис ядра. Так как 1: проекция может не являться файловой, 2: вызов быстрый, так как не ядерный.
     
  5. unc1e

    unc1e Active Member

    Публикаций:
    2
    Регистрация:
    28 июл 2017
    Сообщения:
    287
    WellKnown, насколько мне известно, если модуль запихали в память ручками (WriteProcessMemory), то здесь является годным чек адресного пространства на страницы с атрибутами на исполнение.
     
  6. unc1e

    unc1e Active Member

    Публикаций:
    2
    Регистрация:
    28 июл 2017
    Сообщения:
    287