-
Здравствуйте.
пишу службу для перехвата копирования любых файлов в windows
ставил хуки на wm_copy,wm_copydata - не то.
подскажите пожайлуста, как реализовать перехват копирования
-
> как реализовать перехват копирования
Для начала поясни, оно тебе зачем ?
-
чисто админские функции: кто, Что и куда (флешка) копирует
-
> чисто админские функции
Чисто дурацкие это функции.
В пределах определенных админом локальных и групповых политик безопасности юзер вправе копировать все что захочет и куда захочет.
-
не спорю на счет дурацких, но проконтралировать вынос файлов надо
-
А причем здесь тогда copy ?
Перехватывать нужно ф-ции создания/записи файла.
-
в процессе изучения темы, я так понял:
сначала вызывается ф-я копирования, а потом она вызывает ф-ю создания (а если замена файла?), потом read, write и так в процессе копирования большого файла много раз.
при одновременном копировании не могу отследить где какое копирование.
т.к хэндлы (create,read,write)постоянно меняются -это я понял с пом. проги FILMON.
а вот отследить вызов ф-ии копирования не знаю как
-
> сначала вызывается ф-я копирования
Это какая же ?
-
> [4] mrAlert (18.12.07 15:01)
> не спорю на счет дурацких, но проконтралировать вынос файлов надо
Путем перехвата неимоверно сложно.
Я даже не берусь сосчитать сколько разных ф-ий придется перехватывать :)
P.S. В случае драйвера не знаю.
-
> Riply © (18.12.07 15:24) [8]
> P.S. В случае драйвера не знаю.
Драйвер уж точно этим не занимается.
Его задача ввод/вывод, а уж что там юзер или система "вводит-выводит, то драйверу строго фиолетово)
-
> [9] Сергей М. © (18.12.07 15:28)
> Драйвер уж точно этим не занимается.
Я сделала эту оговорку, только потому, что я с драйверами "на Вы" :)
-
> Riply © (18.12.07 15:33) [10]
Короче, упомянула всуе)
-
> [11] Сергей М. © (18.12.07 15:37)
> Короче, упомянула всуе)
Нет. Не хотела на свой пост услышать возражения типа:
"При помощи драйвера это легко реализуется" :)
-
Конечно, для контроля копирования файлов (кроме копирования с шар) вполне достаточно перехвата NtCreateFile,NtReadFile,NtWriteFile. Сделать это можно как в ядре (править экспорт ядра, возможно какие-то функции не экспортируемые), так и в юзермоде.
Но надо понимать, что при таком контроле даже из юзермода вполне спокойно можно скопировать файлы как минимум двумя способами
-
-
-
я думаю, что можно обойтись без ломания ядра. прога filmon ничего не правит, но отслеживает почти все события в системе на winapi.
что-то слышал про создание com-сервера для icopyhook, но не смог разобраться.
-
еще разбирался с программой filmon, что такое irp_mj_query_information, irp_mj_create ... и т.д.
они обязательно присутствуют при операциях копирования
-
> mrAlert (19.12.07 14:00) [17]
Твоя задача в общем случае не решаема.
-
с пом. filmon наткнулся на следующее:
при создании файла во время копирования explorer обязательно обращается по адресу 00130196, (если через cmd copy ... то другое)
при простом создании файла (пкм-создать....) по адресу 0012019F
ну для других операций другие постоянные адреса
но как отследить их вызов???