ReadDirectoryChangesW и определение, какой процесс вызвал изменение - PullRequest
0 голосов
/ 30 сентября 2011

Как определить, какие процессы вносят изменения в какие файлы?

Я нашел это:

FileSystemWatcher: как узнать, какой процесс внес изменение?

Но мне любопытно, изменилось ли что-нибудь в последнее время? Можно ли еще определить, какой процесс вносит изменения в файловую систему, используя ReadDirectoryChangesW или что-то еще? Я бы предпочел не писать или использовать драйвер ядра.

Ответы [ 3 ]

0 голосов
/ 30 сентября 2011

Несмотря на то, что может быть возможно определить процесс, который изменяет файл, с помощью драйверов ядра (например, монитор процесса ), всегда будет проблема с идентификацией процесса в случае общего доступа к папке.сеть и процесс на другом компьютере изменяет файл по сети.Даже драйверы ядра в этом случае идентифицируют процесс общего сетевого ресурса как тот, который обращается к файлу, а не процесс на другом компьютере.

0 голосов
/ 24 декабря 2011

Не могу пока комментировать. Я был бы заинтересован в вашем коде Python, который создает аудит безопасности для файлов или путей. Немного обидно, если он портится с журналом событий безопасности системы, но у вас не может быть всего! : -)

До этого момента я использовал GetForegroundWindow во время изменения, чтобы в конечном итоге получить связанный процесс. Это хорошо работает только для изменений, инициированных пользователем, но это в первую очередь то, что меня интересовало. Помимо фоновых процессов, единственной незначительной проблемой является то, что иногда процесс создается только для выполнения задачи (например, пакетного файла) он не существует к тому времени, когда вы хотите узнать больше об этом (например, какой процесс породил его). Я полагаю, что это проблема даже с аудитом безопасности.

0 голосов
/ 30 сентября 2011

Создайте аудит безопасности для файлов, которые вы хотите отслеживать.Информация будет записана в журнал событий безопасности.

...