Сообщения о работе с файлами. Перехват.
От: HighVoltage  
Дата: 05.04.07 19:54
Оценка:
Проблемка. Надо перехватывать сообщение об удалении или изменении файла. И вообще всего что связано файлами (сохранение и т.п.)

Сколько вообще различных сообщений связанных с файлами и директориями (именно все виды чтения создания, редактирования удаления)
И как их перехватывать?

Спасибо!

06.04.07 11:32: Перенесено модератором из 'C/C++. Прикладные вопросы' — Odi$$ey
Re: Сообщения о работе с файлами. Перехват.
От: Zigmar Израиль  
Дата: 05.04.07 20:32
Оценка:
Здравствуйте, HighVoltage, Вы писали:

HV>Проблемка. Надо перехватывать сообщение об удалении или изменении файла. И вообще всего что связано файлами (сохранение и т.п.)


HV>Сколько вообще различных сообщений связанных с файлами и директориями (именно все виды чтения создания, редактирования удаления)

HV>И как их перехватывать?

А какая платформа? Насколько я понимаю, универсального кросплатформенного решения не существует.
"To protect people you must slay people. To let people live you must let people die. This is the true teaching of the sword."
-Seijuro Hiko, "Rurouni Kensin"
Re[2]: Сообщения о работе с файлами. Перехват.
От: HighVoltage  
Дата: 06.04.07 07:07
Оценка:
Здравствуйте, Zigmar, Вы писали:

Z>А какая платформа? Насколько я понимаю, универсального кросплатформенного решения не существует.


winXP,2k3.
Re: Сообщения о работе с файлами. Перехват.
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 06.04.07 07:54
Оценка:
Здравствуйте, HighVoltage, Вы писали:

HV>Проблемка. Надо перехватывать сообщение об удалении или изменении файла. И вообще всего что связано файлами (сохранение и т.п.)


ReadDirectoryChangesW()/FindFirstChangeNotification()/FindNextChangeNotification()/FindCloseChangeNotification()
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий
Re: Сообщения о работе с файлами. Перехват.
От: Кодт Россия  
Дата: 06.04.07 07:54
Оценка:
Здравствуйте, HighVoltage, Вы писали:

HV>Проблемка. Надо перехватывать сообщение об удалении или изменении файла. И вообще всего что связано файлами (сохранение и т.п.)

HV>Сколько вообще различных сообщений связанных с файлами и директориями (именно все виды чтения создания, редактирования удаления)
HV>И как их перехватывать?

FindFirstChangeNotification() возвращает хэндл синхрообъекта, который переходит в сигнальное состояние при заявленных изменениях. (Чтение, естественно, не считается изменением).
Ждёшь его с помощью WaitFor...;
Вычитываешь все изменения с FindNextChangeNotification (пока не сделаешь это, он будет пребывать в сигнальном состоянии);
Получаешь подробности об изменениях с ReadDirectoryChange;
и снова ждёшь...
А в конце закрываешь хэндл с помощью FindCloseChangeNotification (а не CloseHandle).

Ну а чтобы мониторить, кто что читает — это уже надо драйвер писать, наверное.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[2]: Сообщения о работе с файлами. Перехват.
От: HighVoltage  
Дата: 06.04.07 09:40
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, HighVoltage, Вы писали:


HV>>Проблемка. Надо перехватывать сообщение об удалении или изменении файла. И вообще всего что связано файлами (сохранение и т.п.)

HV>>Сколько вообще различных сообщений связанных с файлами и директориями (именно все виды чтения создания, редактирования удаления)
HV>>И как их перехватывать?

К>FindFirstChangeNotification() возвращает хэндл синхрообъекта, который переходит в сигнальное состояние при заявленных изменениях. (Чтение, естественно, не считается изменением).

К>Ждёшь его с помощью WaitFor...;
К>Вычитываешь все изменения с FindNextChangeNotification (пока не сделаешь это, он будет пребывать в сигнальном состоянии);
К>Получаешь подробности об изменениях с ReadDirectoryChange;
К>и снова ждёшь...
К>А в конце закрываешь хэндл с помощью FindCloseChangeNotification (а не CloseHandle).

К>Ну а чтобы мониторить, кто что читает — это уже надо драйвер писать, наверное.


Спасибо.

А на иполнение? Ведь тот же AVP или NOD32 видят когда я даже хочу открыть файл. или читаю, и проверяют их перед тем как дать мне их запустить (прочитать), если включен режим проверки файлов.
Re[2]: Сообщения о работе с файлами. Перехват.
От: HighVoltage  
Дата: 06.04.07 09:41
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Здравствуйте, HighVoltage, Вы писали:


HV>>Проблемка. Надо перехватывать сообщение об удалении или изменении файла. И вообще всего что связано файлами (сохранение и т.п.)


SDB>ReadDirectoryChangesW()/FindFirstChangeNotification()/FindNextChangeNotification()/FindCloseChangeNotification()




10х )))
краткость сестра таланта, и мачеха гонорара
Re[3]: Сообщения о работе с файлами. Перехват.
От: Аноним  
Дата: 06.04.07 10:50
Оценка:
HV>А на иполнение? Ведь тот же AVP или NOD32 видят когда я даже хочу открыть файл. или читаю, и проверяют их перед тем как дать мне их запустить (прочитать), если включен режим проверки файлов.

Ты скажи сразу — тебе нужен серьёзный метод получения уведомлений, или так, поиграться просто?
И поддержка каких ОС нужна?
Re[4]: Сообщения о работе с файлами. Перехват.
От: HighVoltage  
Дата: 06.04.07 11:12
Оценка:
А>Ты скажи сразу — тебе нужен серьёзный метод получения уведомлений, или так, поиграться просто?
А>И поддержка каких ОС нужна?

Да, 1-е. Серьозный метод получения уведомлений.
Win XP/2K/2k3.
Я думаю там всё эдентично.
Re[5]: Сообщения о работе с файлами. Перехват.
От: Аноним  
Дата: 06.04.07 11:33
Оценка: 27 (1)
HV>Да, 1-е. Серьозный метод получения уведомлений.

Тогда однозначно — писать драйвер.

Для мониторинга операций с файлами — драйвер-фильтр файловой-системы. Это не сложно.
Для мониторинга созданий процессов (aka запуска исполняемых файлов) — PsSetLoadImageNotifyRoutine() и PsSetCreateProcessNotifyRoutine() Kernel API.

HV>Win XP/2K/2k3.


См. выше. Такое решение как раз будет переносимым.

HV>Я думаю там всё эдентично.


Так, как обрисовал тебе я, — да.
Re[6]: Сообщения о работе с файлами. Перехват.
От: HighVoltage  
Дата: 06.04.07 11:38
Оценка:
Здравствуйте, Аноним, Вы писали:

HV>>Да, 1-е. Серьозный метод получения уведомлений.


А>Тогда однозначно — писать драйвер.


А>Для мониторинга операций с файлами — драйвер-фильтр файловой-системы. Это не сложно.

А>Для мониторинга созданий процессов (aka запуска исполняемых файлов) — PsSetLoadImageNotifyRoutine() и PsSetCreateProcessNotifyRoutine() Kernel API.

HV>>Win XP/2K/2k3.


А>См. выше. Такое решение как раз будет переносимым.


HV>>Я думаю там всё эдентично.


А>Так, как обрисовал тебе я, — да.


Уважаю спасибо. Но возникает следующий вопрос, по драйверу, что где и как? Имею ввиду МАТ Часть и сопутствующие советы если не сложно и можно)
Re[7]: Сообщения о работе с файлами. Перехват.
От: Аноним  
Дата: 06.04.07 11:49
Оценка:
HV>Уважаю спасибо.

Пожалуйста. Kernel-программерофф не так уж много, так что я только рад буду, если кто-то решиться-таки освоить это.

HV>Но возникает следующий вопрос, по драйверу, что где и как?


Спроси в подфоруме "Низкоуровневое программирование" на RSDN. Мне сейчас некогда — скоро проект сдавать

HV>сопутствующие советы если не сложно и можно)


Советы от меня и других участиков форума получишь, когда начнёшь задавать более конкретные вопросы.
Re[8]: Сообщения о работе с файлами. Перехват.
От: HighVoltage  
Дата: 06.04.07 11:58
Оценка:
Здравствуйте, Аноним, Вы писали:

HV>>Уважаю спасибо.


А>Пожалуйста. Kernel-программерофф не так уж много, так что я только рад буду, если кто-то решиться-таки освоить это.


HV>>Но возникает следующий вопрос, по драйверу, что где и как?


А>Спроси в подфоруме "Низкоуровневое программирование" на RSDN. Мне сейчас некогда — скоро проект сдавать


HV>>сопутствующие советы если не сложно и можно)


А>Советы от меня и других участиков форума получишь, когда начнёшь задавать более конкретные вопросы.


Спасибо. Будем грызть. )
Re[5]: Сообщения о работе с файлами. Перехват.
От: Zigmar Израиль  
Дата: 07.04.07 21:41
Оценка:
Здравствуйте, HighVoltage, Вы писали:
HV>Да, 1-е. Серьозный метод получения уведомлений.
Кстати, стопроцентной гарантии перехвата событий всё равно нет — это в конечном счёте функция файловой системы. Например, если какой-то диск примаутчен через CIFS, то нотификации будет только если сервер поддерживают этот протокол.С помошью драйвера упомянутого в теме, можно точно отследить только изменения на локальной машине, и то я не уверен что всегда.
"To protect people you must slay people. To let people live you must let people die. This is the true teaching of the sword."
-Seijuro Hiko, "Rurouni Kensin"
Re: Сообщения о работе с файлами. Перехват.
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 22.05.07 22:46
Оценка:
Здравствуйте, HighVoltage, Вы писали:

HV>Проблемка. Надо перехватывать сообщение об удалении или изменении файла. И вообще всего что связано файлами (сохранение и т.п.)

читаю форум за посл месяц — каждые 30-50 вопросов — Ваш.
Re: Отсаживание удаляемых файлов. Что посоветуете?
Автор: Valery A. Boronin
Дата: 23.05.07

Re: Перехват аналога API MoveFile-какую информацию ловить?
Автор: Valery A. Boronin
Дата: 23.05.07


дальше может быть сами по форуму пройдетесь? или сразу в поиск в профильный форум как правильно аноним уже отправил. file system filter driver — поиск по этим словам

HV>Сколько вообще различных сообщений связанных с файлами и директориями (именно все виды чтения создания, редактирования удаления)

see IRP_MJ_XXX + FastIo ф-ии
при установленном IFS Kit или WDK примеры лежат тут <DDK>\src\filesys\filter

HV>И как их перехватывать?

выше
... << RSDN@Home 1.2.0 alpha rev. 677>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.