1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Поиск Vad

Тема в разделе "WASM.NT.KERNEL", создана пользователем zapolarnik, 6 янв 2020.

  1. zapolarnik

    zapolarnik New Member

    Публикаций:
    0
    Регистрация:
    6 янв 2020
    Сообщения:
    14
    Всем привет, нужна функция из ядра которая получает Vad по адресу процесса есть ли такая? и если нет то как можно получить не используя сигнатур и оффсетов
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    2.909
    VadRoot в EPROCESS не?
     
  3. hiddy

    hiddy Member

    Публикаций:
    0
    Регистрация:
    10 мар 2019
    Сообщения:
    65
  4. zapolarnik

    zapolarnik New Member

    Публикаций:
    0
    Регистрация:
    6 янв 2020
    Сообщения:
    14
    Я как понимаю чтоб вызвать эту функцию надо получить ее адрес тк как она не импортируется
    Если брать структуру EPROCESS то она у меня пустая
     
  5. Indy_

    Indy_ Well-Known Member

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

    VAD это интернал механизм, промежуточный не в менеджере памяти, зачем вам это.

    Код (Text):
    1. Direction    Type    Address    Text
    2. Down    p    MiAllocateVirtualMemory(x,x,x,x,x,x,x,x,x)+275    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    3. Down    p    MiCfgMarkValidEntries(x,x,x,x,x,x,x)+EE    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    4. Down    p    MiCopyPagesIntoEnclave(x,x,x,x,x,x,x,x)+19F    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    5. Down    p    MiGetWorkingSetInfoList(x,x,x,x)+40D    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    6. Down    p    MiInitializeEnclave(x,x,x)+D    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    7. Down    p    MiProbeAndLockPrepare(x,x,x,x,x,x,x)+E96AE    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    8. Down    p    MiReferenceCfgVad(x,x,x)+25    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    9. Down    p    MiSetPriorityVaRanges(x,x,x)+33    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    10. Down    p    MiUnmapLockedPagesInUserSpace(x,x)+42    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    11. Down    p    MiUnmapViewOfSection(x,x,x)+40    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    12. Down    p    MmDeleteTeb(x,x)+2B    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    13. Down    p    MmFlushVirtualMemory(x,x,x,x)+6F    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    14. Down    p    MmGetFileNameForAddress(x,x)+10    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    15. Down    p    MmProtectVirtualMemory(x,x,x,x,x,x)+96    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    16. Down    p    MmRotatePhysicalView(x,x,x,x,x,x)+9E    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    17. Down    p    MmSecureVirtualMemory(x,x,x)+27    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    18. Down    p    MmSecureVirtualMemoryAgainstWrites(x,x,x)+75    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    19. Down    p    MmStoreFreeVirtualMemory(x)+10    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    20. Down    p    NtAreMappedFilesTheSame(x,x)+19    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    21. Down    p    NtAreMappedFilesTheSame(x,x)+3E    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    22. Down    p    NtFreeVirtualMemory(x,x,x,x)+106    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    23. Down    p    NtGetWriteWatch(x,x,x,x,x,x,x)+204    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    24. Up    p    NtResetWriteWatch(x,x,x)+BC    call    _MiObtainReferencedVad@8; MiObtainReferencedVad(x,x)
    25.  
    Прототипы плавают в версиях наверно, нужно парсить автоматикой nt-апи что бы достать апи для вад. Опять же зачем, если есть готовые сервисы, а скрыть через вад что либо в памяти - бессмысленно.
     
  6. zapolarnik

    zapolarnik New Member

    Публикаций:
    0
    Регистрация:
    6 янв 2020
    Сообщения:
    14
    мне надо тип памяти изменить на image
     
  7. Indy_

    Indy_ Well-Known Member

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

    Это нельзя сделать через вад, тип отображения уходит глубоко в ядро, с ним например работает мп - подгрузка страниц(страничный фаулт) зависит от типа памяти и он не вад описан. Ваша затея бессмысленна.

    Зачем менять тип памяти. Если нужно то можно переотобразить проекцию, даже в юм. Откуда ты вообще инфу про эти деревья взял ?
    --- Сообщение объединено, 6 янв 2020 ---
    Мы немного пообщались в лк, в данной задаче только доктор поможет :sarcastic:
     
  8. zapolarnik

    zapolarnik New Member

    Публикаций:
    0
    Регистрация:
    6 янв 2020
    Сообщения:
    14
    я все волишь хочу попробовать одну затею вот и все че тут плохого? Ну даже если не получится и что дальше суть поста то была помочь найти мне vad и все