Закрыть хендл

Тема в разделе "WASM.WIN32", создана пользователем Mech, 6 ноя 2006.

  1. Mech

    Mech New Member

    Публикаций:
    0
    Регистрация:
    4 ноя 2006
    Сообщения:
    8
    Нужно закрыть хендл, причем сделать это
    без вызовов ZwClose() в ядре (ясное дело и без всяких CloseHandle())
    Хендл - открытого файла (CreateFile)
    Подскажите, как вручную закрыть такой хендл (в какую таблицу куда что записать или удалить) в ядре.
    Возможно нужно что-то типа аналога ZwClose()...?
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    копать исходники винды и писать драйвер
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Mech
    Как астерикс прально сказал можно покопать исходники вин2к, ну или ReactOS.
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Также можешь почитать статью msrema про получение доступа к открытому файлу.
     
  5. Mech

    Mech New Member

    Публикаций:
    0
    Регистрация:
    4 ноя 2006
    Сообщения:
    8
    ну до "копать .... винды" я и сам додумался
    да и драйвер писать ясное дело надо
    хотелось бы конкретный код/пример/линк
    вроде тут должна использоваться
    ObReferenceObjectByName() ?
     
  6. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Mech
    Судя по тому количеству действий, которое выполняет NtClose, вручную такое сделать нереально. ObReferenceObjectByName позволяет сделать новую ссылку на объект, которую можно закрыть с помощью ObDerefernceObject, но к хендлам это никакого отношения не имеет.
    Если причина отказаться от ZwClose состоит в обходе хуков, то лучше использовать другой метод вызова этой функции, но не отказываться от нее, имхо.
     
  7. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    gilg
    Ну не так много она и выполняет, тем более если известны некоторые данные о хендле.
    Mech
    Написал бы для чего это тебе надо.
     
  8. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    n0name
    Слишком сильно завязана на недокументированные поля, вызываются странные калбэки, неизвестно, как это работает под XP... Короче за полдня такую штуку не написать.
     
  9. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    gilg
    Ну почему странные, как раз колбеки необходимы, так как например когда закроем хендл файла в колбеке может обрабытваться сброс буфера на диск например. Ну за полдня не написать, но за неделю можно вполне.
     
  10. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Отсюда и вопрос о цели :)
     
  11. Mech

    Mech New Member

    Публикаций:
    0
    Регистрация:
    4 ноя 2006
    Сообщения:
    8
    AMON (файловый монитор НОД32) палит файлы после закрытия хендла... вот я и думаю как бы закрыть (может вообще не закрывать) чтоб он не увидил. Вообще можно просто снять хук... Но я хотел по другому из-за пары причин.