Заменить ObjectAttributes из-под zwCreateFile

Тема в разделе "WASM.WIN32", создана пользователем Begemot, 8 мар 2007.

  1. Begemot

    Begemot New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    79
    Ставил протсто 0(и NULL тоже) - нет результата.
    Это ж хендл директории, если путь указывается относительно ее. А у меня путь абсолютный => ставим 0.
    Нет результата.
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А ошибка какая? STATUS_OBJECT_NOT_FOUND ?
     
  3. Begemot

    Begemot New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    79
     
  4. Begemot

    Begemot New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    79
    Смотрю ошибку так:
    Код (Text):
    1. DPRINT("%d", status);
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Begemot
    может лучше не %d, а %x ?
     
  6. Begemot

    Begemot New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    79
    Так: 0xc0000005
    Gilg правильно определил
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    нарушение доступа.. покажи более полный кусок кода. включая определение uniFileName
     
  8. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Хм. AFAIR имя файла должно лежать ниже MM_USER_PROBE_ADDRESS.
     
  9. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    При условии, что PerviuosMode == UserMode.
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Да так и есть.
    Код (Text):
    1. IoCreateFile(
    2. ...
    3.     requestorMode = KeGetPreviousMode();
    4. ...
    5.     status = ObOpenObjectByName( ObjectAttributes,
    6.                                  (POBJECT_TYPE) NULL,
    7.                                  requestorMode,
    8.                                  NULL,
    9.                                  DesiredAccess,
    10.                                  &openPacket,
    11.                                  &handle );
    12. ...
     
  11. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Кстати, да... а секция данных драйвера стопудов лежит в верхних 2 гигах
    Так что место под имя придется выделить через ExAllocatePool, а потом промапить на юзермодное пространство этот кусок. И уж его юзермодный адрес пихать в UNICODE_STRING
     
  12. Begemot

    Begemot New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    79
    Great
    Это и есть весь код.
    До этого только определялось в какой папке находится запрашиваемый файл.

    Так описана строка:
    UNICODE_STRING uniFileName;
     
  13. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Great
    А можно просто выставить предыдуший режим KernelMode :P Хотя тогда надо будет править все user-mode указатели, но их 3 или 4, и почти все ULONG. Так что возни не долго.
     
  14. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Зато красивее будет создать и промапить MDL :P
     
  15. Begemot

    Begemot New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    79
    Фига се, а как все это закодить?...
     
  16. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Про отображение системных страниц на пользовательское адресное пространство написано тут
    http://www.wasm.ru/article.php?article=drvw2k09
    и это не так сложно как кажется)
     
  17. Begemot

    Begemot New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    79
    Great
    Не покажите на примере? Буду крайне благодарен...
     
  18. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Там же есть пример драйвера, который памит страницы по DeviceIoControl'у ;)
     
  19. Begemot

    Begemot New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    79
    Да, разбираюсь, но я в Асме....не очень...
     
  20. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Begemot
    http://www.wasm.ru/forum/viewtopic.php?id=12318