NtOpenSection → OpenFileMapping

Discussion in 'WASM.WIN32' started by Jin X, Sep 30, 2018.

  1. Jin X

    Jin X Active Member

    Blog Posts:
    0
    Joined:
    Jan 15, 2009
    Messages:
    369
    Location:
    Кольца Сатурна
    Привет!

    Подскажите, кто знает, как открыть \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

    Blog Posts:
    0
    Joined:
    Feb 27, 2010
    Messages:
    958
    ObReferenceObjectBy* иначе не пройдешь, да и клоаку эту закрыли еще в линейке NT5
     
    Jin X likes this.
  3. Jin X

    Jin X Active Member

    Blog Posts:
    0
    Joined:
    Jan 15, 2009
    Messages:
    369
    Location:
    Кольца Сатурна
    sn0w, да, я уже понял, что только через NtOpenSection. Ну и ладно :)