Логирование действий над файлами в определенной директории.

Тема в разделе "WASM.BEGINNERS", создана пользователем wellskii, 25 дек 2008.

  1. wellskii

    wellskii New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2008
    Сообщения:
    3
    Доброго времени суток. На днях заморочился изучением ассемблера под win-32. Имеются небольшие навыки написания программ под дос(ественно на ассемблере).
    Вопрос такой. Необходимо создать программу, которая будет записывать в файл все(по возможности) действия с файлами в определенную директорию. Это программа- первый кирпичик в мою будущую систему аудита =).
    Что необходимо:
    1)Что мне почитать, что бы не задавать совсем уж глупых вопросов.
    2)Тому, кто доходчиво и ясно обьснитт примерный принцип работы - ну просто мега-респект =)
    3) А если кто нить тыкнет носом в то, как перелопатить и подключить драйвер от FileMon - просто отлично будет.
    Буду рад любой адекватной помщи в научении меня тайному искусству =)

    Искренне ваш Well .
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Нужно ждать изменения файла в потоке.
    http://msdn.microsoft.com/en-us/library/aa364417(VS.85).aspx
    Что сводитсо к сервису NtNotifyChangeDirectoryFile. Но это только укажет что произошло, для контроля нужно писать фильтр(легально или похукать pIofCallDriver etc).
     
  3. wellskii

    wellskii New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2008
    Сообщения:
    3
    Спасиб камрад :) Будем читать и разбираться :)
    Чем больше литературы по делу будет - тем лучше. Пока необходимо только наблюдение. Хоть его бы запрогать :)
     
  4. researcher

    researcher New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2005
    Сообщения:
    45
    Адрес:
    Russia
    По порядку
    1. Смотри http://www.wasm.ru/forum/viewtopic.php?id=29640. Там и почитать и примеры попробовать.
    2. Предположительно будут две части: управляющее приложение (для настройки системы) и драйвер для слежения за файловыми операциями. Нужно определиться с форматом лога, придумать компактную структуру, которую драйвер будет передавать управляющему приложению или сразу писать в лог на диске (это уж ты решишь). К примеру, FileMon (при всем уважении к его создателям и к нему самому, как к хорошей утилите) тупо в режиме ядра генерит лог в виде больших текстовых сообщений и передает их приложению, которое просто выводит их на экран.
    3. В исходниках драйвера Filemon две основные части: отслеживание IRP и отслеживание FastIo и несколько вспомогательных: настройки фильтрации, ведение лога, получение процесса и полного пути в файловым объектам и т.д. Помимо драйвера FileMon можно посмотреть исходники фильтров файловых систем от Microsoft из IFS: Filespy, sfilter, minispy, passThrough.

    Из более простых способов можно перехватывать NtCreateFile и т.д. Способов перехвата несколько. Простейший через SDT.
     
  5. wellskii

    wellskii New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2008
    Сообщения:
    3
    Путь дзен-война труден и опасен. Выходные прошли в метаниях, Ночи - в чтении документации и нафаршировании себя знаниями...Числа 3 начну реализовывать полученные данные :))
     
  6. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    Есть исходник на тему. Запускается и ждет запись/перезапись файлов в определенной папке. При обнаружении записи/перезаписи файлов в папке предпринимается что-нибудь.