NtOpenSection → OpenFileMapping

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

  1. Jin X

    Jin X Active Member

    Публикаций:
    0
    Регистрация:
    15 янв 2009
    Сообщения:
    369
    Адрес:
    Кольца Сатурна
    Привет!

    Подскажите, кто знает, как открыть \Device\PhysicalMemory через OpenFileMapping, а не через NtOpenSection ?
    Проблема в том, что OpenFileMapping задаёт в качестве поля ObjectAttributes.RootDirectory (при вызове NtOpenSection) значение, возвращаемое BaseGetNamedObjectDirectory(), а не NULL. Т.е. если заменить это поле на NULL (изнутри функции OpenFileMappingW), всё работает. Иначе возвращается ошибка.

    MSDN пишет про поле RootDirectory:
    Т.е. надо полный путь \Device\PhysicalMemory преобразовать относительно пути, хендл которого выдаёт BaseGetNamedObjectDirectory(). Как это сделать?
    Я так понял, это путь \BaseNamedObjects, только что это за путь и как относительно него адресовать \Device\PhysicalMemory – х/з.
     
  2. sn0w

    sn0w Active Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    958
    ObReferenceObjectBy* иначе не пройдешь, да и клоаку эту закрыли еще в линейке NT5
     
    Jin X нравится это.
  3. Jin X

    Jin X Active Member

    Публикаций:
    0
    Регистрация:
    15 янв 2009
    Сообщения:
    369
    Адрес:
    Кольца Сатурна
    sn0w, да, я уже понял, что только через NtOpenSection. Ну и ладно :)