Отследить обращения к файлам
От: Аноним  
Дата: 26.05.11 17:34
Оценка:
Как можно отследить обращения программы к файлам?
Re: Отследить обращения к файлам
От: RushDevion Россия  
Дата: 26.05.11 18:26
Оценка:
А>Как можно отследить обращения программы к файлам?
FileSystemWatcher
Re[2]: Отследить обращения к файлам
От: Nikolay_P_I  
Дата: 27.05.11 04:43
Оценка:
Здравствуйте, RushDevion, Вы писали:

А>>Как можно отследить обращения программы к файлам?

RD>FileSystemWatcher

Уточню ложкой дёгтя — при сильной нагрузке сообщения можно и не получить
Re[3]: Отследить обращения к файлам
От: G2 Ниоткуда  
Дата: 27.05.11 05:26
Оценка:
Здравствуйте, Nikolay_P_I, Вы писали:

N_P>Уточню ложкой дёгтя — при сильной нагрузке сообщения можно и не получить


Также существут проблема с дублированием события на изменение:
filesystemwatcher-changed-event-is-raised-twice
Улыбаемся и машем :-)
Re[2]: Отследить обращения к файлам
От: Аноним  
Дата: 27.05.11 17:02
Оценка:
Здравствуйте, RushDevion, Вы писали:

А>>Как можно отследить обращения программы к файлам?

RD>FileSystemWatcher

ставлю


 watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;

            watcher.Filter = "*.txt";
            watcher.EnableRaisingEvents = true;



открытие\закрытие файла не ловит
Re[3]: Отследить обращения к файлам
От: G2 Ниоткуда  
Дата: 27.05.11 17:21
Оценка:
А>
А> watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;

А>            watcher.Filter = "*.txt";
А>            watcher.EnableRaisingEvents = true;
А>



А>открытие\закрытие файла не ловит


Вообще я разочаровался в FileSystemWatcher'e, лучше в отдельном потоке по таймеру проверять, можно читать/писать или нет.
Улыбаемся и машем :-)
Re[4]: Отследить обращения к файлам
От: Аноним  
Дата: 27.05.11 17:42
Оценка:
Здравствуйте, G2, Вы писали:

А>>
А>> watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;

А>>            watcher.Filter = "*.txt";
А>>            watcher.EnableRaisingEvents = true;
А>>



А>>открытие\закрытие файла не ловит


G2>Вообще я разочаровался в FileSystemWatcher'e, лучше в отдельном потоке по таймеру проверять, можно читать/писать или нет.


мне нужно мониторить какие файлы читает приложение. мне ваш вариант не подходит
Re: Отследить обращения к файлам
От: Neco  
Дата: 27.05.11 18:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как можно отследить обращения программы к файлам?

ну раз filesystemwatcher тут радостно заплевали, то остаётся только вспомнить описаный в науке (Рихтером вроде) способ с подгрузкой своей библиотеки в чужой процесс, заменой там адресов соот-щих апишных функций своими с передачей вызова на реальные адреса и логированием вызовов так, как душе угодно.
всю ночь не ем, весь день не сплю — устаю
Re[5]: Отследить обращения к файлам
От: G2 Ниоткуда  
Дата: 27.05.11 18:12
Оценка:
А>мне нужно мониторить какие файлы читает приложение. мне ваш вариант не подходит
Можно самому проверять директории на наличие файлов и их изменениях.
Улыбаемся и машем :-)
Re[2]: Отследить обращения к файлам
От: x64 Россия http://x64blog.name
Дата: 28.05.11 00:39
Оценка: :)
N>ну раз filesystemwatcher тут радостно заплевали, то остаётся только вспомнить описаный в науке (Рихтером вроде) способ с подгрузкой своей библиотеки в чужой процесс, заменой там адресов соот-щих апишных функций своими с передачей вызова на реальные адреса и логированием вызовов так, как душе угодно.

Так, ну я понял.
Рассказать тут всем про файловые фильтры или не надо?
JID: x64j@jabber.ru
Re: Отследить обращения к файлам
От: Cyberax Марс  
Дата: 28.05.11 00:54
Оценка: -2
Здравствуйте, Аноним, Вы писали:

А>Как можно отследить обращения программы к файлам?

NTFS Change Journal. http://msdn.microsoft.com/en-us/library/aa363798%28v=vs.85%29.aspx

Тебе тут x64 будет рассказывать про фильтры файловой системы — ты его не слушай
Sapienti sat!
Re[3]: Отследить обращения к файлам
От: Аноним  
Дата: 28.05.11 04:11
Оценка:
Здравствуйте, x64, Вы писали:

N>>ну раз filesystemwatcher тут радостно заплевали, то остаётся только вспомнить описаный в науке (Рихтером вроде) способ с подгрузкой своей библиотеки в чужой процесс, заменой там адресов соот-щих апишных функций своими с передачей вызова на реальные адреса и логированием вызовов так, как душе угодно.


x64>Так, ну я понял.

x64>Рассказать тут всем про файловые фильтры или не надо?

если по теме, то давай!
Re[2]: Отследить обращения к файлам
От: Pavel Dvorkin Россия  
Дата: 28.05.11 04:16
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Аноним, Вы писали:


А>>Как можно отследить обращения программы к файлам?

C>NTFS Change Journal. http://msdn.microsoft.com/en-us/library/aa363798%28v=vs.85%29.aspx

Это, конечно, интересно, а что делать, если окажется FAT диск ?

C>Тебе тут x64 будет рассказывать про фильтры файловой системы — ты его не слушай


Зря.
With best regards
Pavel Dvorkin
Re[2]: Отследить обращения к файлам
От: Аноним  
Дата: 28.05.11 05:22
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Аноним, Вы писали:


А>>Как можно отследить обращения программы к файлам?

C>NTFS Change Journal. http://msdn.microsoft.com/en-us/library/aa363798%28v=vs.85%29.aspx

C>Тебе тут x64 будет рассказывать про фильтры файловой системы — ты его не слушай


у меня условия изменились. Надо отследить какие попытки чтения файлов есть в определенной директории.
т.е. файла может и не быть, но попытку его чтения надо отловить. Можно это сделать?
Re[3]: Отследить обращения к файлам
От: GarryIV  
Дата: 28.05.11 05:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>у меня условия изменились. Надо отследить какие попытки чтения файлов есть в определенной директории.

А>т.е. файла может и не быть, но попытку его чтения надо отловить. Можно это сделать?

http://rsdn.ru/forum/dotnet/4289087.1.aspx
Автор: Neco
Дата: 27.05.11
WBR, Igor Evgrafov
Re[3]: Отследить обращения к файлам
От: Аноним  
Дата: 28.05.11 05:36
Оценка:
Здравствуйте, x64, Вы писали:

N>>ну раз filesystemwatcher тут радостно заплевали, то остаётся только вспомнить описаный в науке (Рихтером вроде) способ с подгрузкой своей библиотеки в чужой процесс, заменой там адресов соот-щих апишных функций своими с передачей вызова на реальные адреса и логированием вызовов так, как душе угодно.


x64>Так, ну я понял.

x64>Рассказать тут всем про файловые фильтры или не надо?

у меня условия изменились. Надо отследить какие попытки чтения файлов есть в определенной директории.
т.е. файла может и не быть, но попытку его чтения надо отловить. Можно это сделать?
Re[4]: Отследить обращения к файлам
От: x64 Россия http://x64blog.name
Дата: 28.05.11 06:00
Оценка: 12 (1)
А>т.е. файла может и не быть, но попытку его чтения надо отловить. Можно это сделать?

Файловый фильтр.
Он же драйвер-фильтр файловой системы.
Более подробно об этом есть у меня в блоге.
Вопросы по теме можно задать в соответствующем разделе.
Конкретно ловить запросы IRP_MJ_CREATE, проверять флаги и текущий процесс.
JID: x64j@jabber.ru
Re[2]: Отследить обращения к файлам
От: x64 Россия http://x64blog.name
Дата: 28.05.11 06:09
Оценка: +1
C>NTFS Change Journal.

Нет поддержки для FAT-томов.
Нет возможности определить программу.

C>Тебе тут x64 будет рассказывать про фильтры файловой системы — ты его не слушай


Меня, конечно, можно не слушать, но кроме меня про файловые фильтры рассказать людям, получается, некому, а все ваши жалкие уведомлялки и журналы либо убожество нерабочее, либо тупо для других целей предназначено (резервное копирование, например).
JID: x64j@jabber.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.