Выделение памяти с типом Image

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

  1. zapolarnik

    zapolarnik New Member

    Публикаций:
    0
    Регистрация:
    6 янв 2020
    Сообщения:
    14
    Всем привет, через что можно выделить память с типом image ? А именно чтобы функция virtualquery возвращала тип как image
    Ps с рождеством всех
     
    Последнее редактирование: 7 янв 2020
  2. Bedolaga

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    131
    Чисто ради интереса - зачем?
    ....
    Посмотрел - такой тип только у ДЛЛ и ЕХЕ регионов, можно от сюда поплясать...
     
  3. zapolarnik

    zapolarnik New Member

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

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    131
    Типа если это будет MEM_IMAGE ему будет все равно? Звучит, как чепуха, по моему...

    Кста, мб НТ-шные функции могут себе такое позволить, хз....
     
  5. zapolarnik

    zapolarnik New Member

    Публикаций:
    0
    Регистрация:
    6 янв 2020
    Сообщения:
    14
    если выделять через создания секции память(ZwMapViewOfSection) но она флаг MEM_IMAGE не принимет
    --- Сообщение объединено, 7 янв 2020 ---
    MEM_IMAGE он пропускает не сканит адреса с таким типом
     
  6. Bedolaga

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    131
    Гениальный античит!
    Но вопрос повторю - зачем выделять ее самому?
     
  7. zapolarnik

    zapolarnik New Member

    Публикаций:
    0
    Регистрация:
    6 янв 2020
    Сообщения:
    14
    предлагаешь не выделять а искать свободную?
    --- Сообщение объединено, 7 янв 2020 ---
    ну память вроде как MEM_IMAGE выделяется через loadLib а он там работает только на подписанные файлы по этому ему наверно не зачем сканить такую память
     
  8. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    И действительно: зачем античиту сканить какую-нибудь неподписанную длл. Всем же известно, что читы всегда подписаны.
     
  9. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Загрузить в процесс рандомную подписанную длл из систем32, а затем затереть его своей или шеллом или чего там за чит у тебя.
     
    hiddy и Indy_ нравится это.
  10. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Емнип только через MapViewOfFile/NtMapViewOfSection.
     
  11. zapolarnik

    zapolarnik New Member

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

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    MEM_IMAGE это файловая проекция PE-формата, а не буфер; никак такую память не выделить, только если отобразить пе и записать в него данные, как выше сказали.
     
  13. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Ну да, там SEC_IMAGE и вроде даже проверка на соответствие формату PE есть.
     
  14. Bedolaga

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    131
    А имитация хидера не покатит в данной ситуёвине?
     
  15. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Там вроде будет полноценный мапинг PE, с релоками и прочим, даже с ASLR (опять же если я правильно помню), только без вызова DllMain. Так что "имитация" особо ничем от полноценного заголовка отличаться не может.
     
  16. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    А как по вашему проверить файл на валид формата пе ?
    - создать секцию, тот обьект, который и отображается через NtMapVi :preved:
     
  17. zapolarnik

    zapolarnik New Member

    Публикаций:
    0
    Регистрация:
    6 янв 2020
    Сообщения:
    14
    я попробовал просто заполнить память нулями ну я загрузки дллку из кернела и RtlSecureZeroMemory(pEntry->DllBase, pEntry->SizeOfImage); вызываю чистку но ловлю бдос может как то по другому надо? но в самой дллке есть свободное место под мою длл но эти свободные места разбросаны не по порядку может как то их сдвинуть можно?
     
  18. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    То есть ты залил какую-то рандомную ядерную память нулями и ожидал не словить бсод? Или чего ты делаешь? Без кода не понятно как бы, в ядре ты мог сделать неправильно абсолютно любую херню.
     
  19. zapolarnik

    zapolarnik New Member

    Публикаций:
    0
    Регистрация:
    6 янв 2020
    Сообщения:
    14
    я не ядерную память обнуляю pEntry->DllBase тут у меня хранится адрес модуля в процессе при этом я присоединен к процессу и отсоединяюсь после всех манипуляций
     
  20. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    То есть вы делаете некие манипуляции с юзермодной памятью процесса и получаете реально Blue Screen Of Death, с дампом и перезагрузкой? Что за ось, что за античит?