Конференция "WinAPI" » перехват копирования [WinXP]
 
  • mrAlert (18.12.07 14:29) [0]
    Здравствуйте.
    пишу службу для перехвата копирования любых файлов в windows
    ставил хуки на wm_copy,wm_copydata - не то.
    подскажите пожайлуста, как реализовать перехват копирования
  • Сергей М. © (18.12.07 14:40) [1]

    > как реализовать перехват копирования


    Для начала поясни, оно тебе зачем ?
  • mrAlert (18.12.07 14:51) [2]
    чисто админские функции: кто, Что и куда (флешка) копирует
  • Сергей М. © (18.12.07 14:56) [3]

    > чисто админские функции


    Чисто дурацкие это функции.

    В пределах определенных админом локальных и групповых политик безопасности юзер вправе копировать все что захочет и куда захочет.
  • mrAlert (18.12.07 15:01) [4]
    не спорю на счет дурацких, но проконтралировать вынос файлов надо
  • Сергей М. © (18.12.07 15:07) [5]
    А причем здесь тогда copy ?
    Перехватывать нужно ф-ции создания/записи файла.
  • mrAlert (18.12.07 15:17) [6]
    в процессе изучения темы, я так понял:
    сначала вызывается ф-я копирования, а потом она вызывает ф-ю создания (а если замена файла?), потом read, write и так в процессе копирования большого файла много раз.
    при одновременном копировании не могу отследить где какое копирование.
    т.к хэндлы (create,read,write)постоянно меняются -это я понял с пом. проги FILMON.
    а вот отследить вызов ф-ии копирования не знаю как
  • Сергей М. © (18.12.07 15:19) [7]

    > сначала вызывается ф-я копирования


    Это какая же ?
  • Riply © (18.12.07 15:24) [8]
    > [4] mrAlert   (18.12.07 15:01)
    > не спорю на счет дурацких, но проконтралировать вынос файлов надо

    Путем перехвата неимоверно сложно.
    Я даже не берусь сосчитать сколько разных ф-ий придется перехватывать :)

    P.S. В случае драйвера не знаю.
  • Сергей М. © (18.12.07 15:28) [9]

    > Riply ©   (18.12.07 15:24) [8]


    > P.S. В случае драйвера не знаю.


    Драйвер уж точно этим не занимается.

    Его задача ввод/вывод, а уж что там юзер или система "вводит-выводит, то драйверу строго фиолетово)
  • Riply © (18.12.07 15:33) [10]
    > [9] Сергей М. ©   (18.12.07 15:28)
    > Драйвер уж точно этим не занимается.

    Я сделала эту оговорку, только потому, что я с драйверами "на Вы" :)
  • Сергей М. © (18.12.07 15:37) [11]

    > Riply ©   (18.12.07 15:33) [10]


    Короче, упомянула всуе)
  • Riply © (18.12.07 15:44) [12]
    > [11] Сергей М. ©   (18.12.07 15:37)
    > Короче, упомянула всуе)

    Нет. Не хотела на свой пост услышать возражения типа:
    "При помощи драйвера это легко реализуется" :)
  • slow!alfamoon!com (18.12.07 17:25) [13]
    Конечно, для контроля копирования файлов (кроме копирования с шар) вполне достаточно перехвата NtCreateFile,NtReadFile,NtWriteFile. Сделать это можно как в ядре (править экспорт ядра, возможно какие-то функции не экспортируемые), так и в юзермоде.
    Но надо понимать, что при таком контроле даже из юзермода вполне спокойно можно скопировать файлы как минимум двумя способами
  • J_f_S (19.12.07 02:47) [14]
    Перехват фукнций ядра, причем как раз на примере  NtOpenFile и NtCreateFile.
    http://wasm.ru/article.php?article=tracknapi
  • Slym © (19.12.07 04:10) [15]
  • mrAlert (19.12.07 11:58) [16]
    я думаю, что можно обойтись без ломания ядра. прога filmon ничего не правит, но отслеживает почти все события в системе на winapi.
    что-то слышал про создание com-сервера для icopyhook, но не смог разобраться.
  • mrAlert (19.12.07 14:00) [17]
    еще разбирался с программой filmon, что такое irp_mj_query_information, irp_mj_create ... и т.д.
    они обязательно присутствуют при операциях копирования
  • Сергей М. © (19.12.07 14:03) [18]

    > mrAlert   (19.12.07 14:00) [17]


    Твоя задача в общем случае не решаема.
  • mrAlert (19.12.07 15:06) [19]
    с пом. filmon наткнулся на следующее:
    при создании файла во время копирования explorer обязательно обращается по адресу 00130196, (если через cmd copy ...  то другое)
    при простом создании файла (пкм-создать....) по адресу 0012019F
    ну для других операций другие постоянные адреса

    но как отследить их вызов???
 
Конференция "WinAPI" » перехват копирования [WinXP]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]