Драйвер-фильтр, Filemon vs Filespy!!!

Тема в разделе "WASM.WIN32", создана пользователем LuckyDevil, 27 сен 2005.

  1. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Всем доброго!

    У меня вопрос следующего характера.

    В чем принципиальное различие таких известных драйвер фильтров файловой системы, Filemon и FileSpy?

    Если только по способу подключения к устройствам файловой системы, то почему так много негативного говориться о Filemon.

    Хотелось бы услышать ваши замечания по данной теме. Потому как в данный момент не знаю какой метод принять за основу изучения и написания драйвер фильтра.

    Заранее всем спасибо!
     
  2. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Насколько я смутно помню, Filemon открывает девайсы томов через ZwCreateFile, потом CreateDevice/AttachDevice. А FileSpy регистрирует колбэк у файловой системы, в колбэке тоже CreateDevice/AttachDevice.



    Насколько эта разница принципиальна мне трудно сказать, т.к. я не спец по ФС, но способ FileSpy'я, IMHO, более правильный. В Filemon'e/Regmon'e мне лично очень не нравится способ формирования лога в драйвере - форматируется строка. А что такого плохого говорят про Filemon?



    Я бы не опирался на FileMon, во всяком случае на версию v4.34, исходники которой были последними.
     
  3. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Four-F, многие на разных форумах ругают Filemon, никто конкретно не пишет причин, но все своидиться к кривизне метода. Лично для меня, Filemon оказался более простым в понимании, потрать пару часов, я на его основе написал скилет фильтра(просто перехват IRP). А вот с FileSpy, я уже мудехаюсь довольно долго, а так и не удалось создать что-то такое легкое как filemon.

    Для меня самым главным моментом является, то на сколько реальна информация filemon, быть может он не все фильтрует и в этом заключается его основная кривость(это не мое суждение)?
     
  4. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Four-F, кстати вопроос по твоим исходникам. "Драйверы режима ядра: Часть 16 : Драйвер-фильтр (не PnP)" ты перехватываешь IRP клавиатуры, на сколько я понимаю этот метод универсален(или я как всегда ошибаюсь), можно ли его использовать для создания драйвер фильтра файловой системы?
     
  5. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Универсален в том смысле, что драйвер-фильтр садится в стек и через него проходят IRP. Это в любом стеке так. Самое страшное в деталях. Например, для фильтров фс геморрой с именами файлов. Драйверы фс одни из самых сложных. Соответственно для написания фильтра нужно много чего знать и найти здесь простой путь не получится. Мой фильтр самый простой. Но принцип один. Так что придется тебе таки разобраться с FileSpy, а заодно и с Sfilter ;)
     
  6. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Four-F, обрадовал :).

    Кстати я что-то подобное уже сделал(используюя твой метод), правда на данный момент перехватываю только редкие пакеты непосредственно посылаемые процессом System и приложениями которые запускаются в данный момент, запросы же файловой системы в мой фильтр сейчас не приходят. Такое было уже у меня когда я разберался с Filemon, там после определения NTFS drive через IoQueryVolumeInformation, в мой фильтр посыпалась вся требуемая информация о файловой структуре. В fileSpy это реализованно как-то иначе, пока я не понял как именно. :dntknw: