Как отследить попытку удалить файл?
От: goshavt Украина  
Дата: 15.10.04 19:55
Оценка:
Нужно отследить попытку удалить файл.
Для папок есть ICopyHook::CopyCallback, а что нибудь для файлов есть?
Re: Как отследить попытку удалить файл?
От: Ihor Osovyak Украина  
Дата: 15.10.04 21:51
Оценка:
Здравствуйте, goshavt, Вы писали:

G>Нужно отследить попытку удалить файл.

G>Для папок есть ICopyHook::CopyCallback, а что нибудь для файлов есть?

www.sysinternals.com filemon как источник идей. Если коротко — драйвер-фильтр файловой системы.
Можно еще пвтаться перехватывать соотв. апишные вызовы.
Re: Как отследить попытку удалить файл?
От: Pavel Dvorkin Россия  
Дата: 18.10.04 05:45
Оценка:
Привет!

goshavt wrote:
>
> Нужно отследить попытку удалить файл.
> Для папок есть ICopyHook::CopyCallback, а что нибудь для файлов есть?

FindFirstChangeNotification / ReadDirectoryChangesW

--
With best regards,
Pavel Dvorkin
Posted via RSDN NNTP Server 1.9 gamma
With best regards
Pavel Dvorkin
Re[2]: Как отследить попытку удалить файл?
От: goshavt Украина  
Дата: 18.10.04 07:13
Оценка:
Здравствуйте, Ihor Osovyak, Вы писали:

IO>www.sysinternals.com filemon как источник идей. Если коротко — драйвер-фильтр файловой системы.


Я тоже так думаю, но вот как это сделать, подскажите, где можно почитать об создании и отладке драйверов,
и в частности о перехвате соообщений об удалении файлов.
У меня есть исходники PGP клиента, там это есть, но все так запутано, что черт ногу сломит.

IO>Можно еще пвтаться перехватывать соотв. апишные вызовы.


Это не подходит, потому как антивирусники на это реагируют однозначно, а мне бы не хотелось
напрягать пользователя, посколько прога ничего вредного не делает, всего лишь переписывает
файл нулями перед удалением. Да и работает это метод не всегда.
Re[2]: Как отследить попытку удалить файл?
От: goshavt Украина  
Дата: 18.10.04 07:31
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Привет!



PD>FindFirstChangeNotification / ReadDirectoryChangesW


Это не подходит, так как уведомляет о произошедшем событии,
а надо уведомлять о попытке удаления, и выплненния операции перезаписи этого файла нулями, до удаления.
Re[3]: Как отследить попытку удалить файл?
От: Valerio Россия linkedin.com/in/boronin
Дата: 21.10.04 14:43
Оценка:
Здравствуйте, goshavt, Вы писали:

G>Это не подходит, так как уведомляет о произошедшем событии,

G>а надо уведомлять о попытке удаления, и выплненния операции перезаписи этого файла нулями, до удаления.
только фильтр файловой системы даст что ищете — welcome to the asm forum
... << RSDN@Home 1.1.4 beta 3 rev. 193>>
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.
Re[3]: Как отследить попытку удалить файл?
От: Злость Россия  
Дата: 22.10.04 05:44
Оценка:
Здравствуйте, goshavt, Вы писали:

[skip]

PD>>FindFirstChangeNotification / ReadDirectoryChangesW


G>Это не подходит, так как уведомляет о произошедшем событии,

G>а надо уведомлять о попытке удаления, и выплненния операции перезаписи этого файла нулями, до удаления.

Или фильтр как уже сказали — или ... перехват функций в ядре (смотри KeServiceDescriptorTable и KeServiceDescriptorTable) иногда этот варинат будет быстрее по времени разработки, но недостатки имеет очень большие так как эти таблици меняются от версии к версии и их содержимое тоже. Читайте — Свен Шрайбер.
Правда, Ложь — мне все одно — я имею свое мнение.
Если функция недокументированна — это не значит, что ее не используют все ваши конкуренты в своих продуктах.
Любой строй переходный и отрицать это значит быть закостенелым идиотом.
Re[2]: Как отследить попытку удалить файл?
От: goshavt Украина  
Дата: 22.10.04 07:03
Оценка:
Здравствуйте, Ihor Osovyak, Вы писали:

IO>www.sysinternals.com filemon как источник идей. Если коротко — драйвер-фильтр файловой системы.


Я тоже пришел к тому же выводу, вот только где достать DDK для 9x/XP. У Microsoft не нашел.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.