Форум: "WinAPI";
Текущий архив: 2009.01.04;
Скачать: [xml.tar.bz2];
Внизперехват копирования Найти похожие ветки
← →
mrAlert (2007-12-18 14:29) [0]Здравствуйте.
пишу службу для перехвата копирования любых файлов в windows
ставил хуки на wm_copy,wm_copydata - не то.
подскажите пожайлуста, как реализовать перехват копирования
← →
Сергей М. © (2007-12-18 14:40) [1]
> как реализовать перехват копирования
Для начала поясни, оно тебе зачем ?
← →
mrAlert (2007-12-18 14:51) [2]чисто админские функции: кто, Что и куда (флешка) копирует
← →
Сергей М. © (2007-12-18 14:56) [3]
> чисто админские функции
Чисто дурацкие это функции.
В пределах определенных админом локальных и групповых политик безопасности юзер вправе копировать все что захочет и куда захочет.
← →
mrAlert (2007-12-18 15:01) [4]не спорю на счет дурацких, но проконтралировать вынос файлов надо
← →
Сергей М. © (2007-12-18 15:07) [5]А причем здесь тогда copy ?
Перехватывать нужно ф-ции создания/записи файла.
← →
mrAlert (2007-12-18 15:17) [6]в процессе изучения темы, я так понял:
сначала вызывается ф-я копирования, а потом она вызывает ф-ю создания (а если замена файла?), потом read, write и так в процессе копирования большого файла много раз.
при одновременном копировании не могу отследить где какое копирование.
т.к хэндлы (create,read,write)постоянно меняются -это я понял с пом. проги FILMON.
а вот отследить вызов ф-ии копирования не знаю как
← →
Сергей М. © (2007-12-18 15:19) [7]
> сначала вызывается ф-я копирования
Это какая же ?
← →
Riply © (2007-12-18 15:24) [8]> [4] mrAlert (18.12.07 15:01)
> не спорю на счет дурацких, но проконтралировать вынос файлов надо
Путем перехвата неимоверно сложно.
Я даже не берусь сосчитать сколько разных ф-ий придется перехватывать :)
P.S. В случае драйвера не знаю.
← →
Сергей М. © (2007-12-18 15:28) [9]
> Riply © (18.12.07 15:24) [8]
> P.S. В случае драйвера не знаю.
Драйвер уж точно этим не занимается.
Его задача ввод/вывод, а уж что там юзер или система "вводит-выводит, то драйверу строго фиолетово)
← →
Riply © (2007-12-18 15:33) [10]> [9] Сергей М. © (18.12.07 15:28)
> Драйвер уж точно этим не занимается.
Я сделала эту оговорку, только потому, что я с драйверами "на Вы" :)
← →
Сергей М. © (2007-12-18 15:37) [11]
> Riply © (18.12.07 15:33) [10]
Короче, упомянула всуе)
← →
Riply © (2007-12-18 15:44) [12]> [11] Сергей М. © (18.12.07 15:37)
> Короче, упомянула всуе)
Нет. Не хотела на свой пост услышать возражения типа:
"При помощи драйвера это легко реализуется" :)
← →
slow!alfamoon!com (2007-12-18 17:25) [13]Конечно, для контроля копирования файлов (кроме копирования с шар) вполне достаточно перехвата NtCreateFile,NtReadFile,NtWriteFile. Сделать это можно как в ядре (править экспорт ядра, возможно какие-то функции не экспортируемые), так и в юзермоде.
Но надо понимать, что при таком контроле даже из юзермода вполне спокойно можно скопировать файлы как минимум двумя способами
← →
J_f_S (2007-12-19 02:47) [14]Перехват фукнций ядра, причем как раз на примере NtOpenFile и NtCreateFile.
http://wasm.ru/article.php?article=tracknapi
← →
Slym © (2007-12-19 04:10) [15]http://www.yandex.ru/yandsearch?rpt=rad&text=devicelock
← →
mrAlert (2007-12-19 11:58) [16]я думаю, что можно обойтись без ломания ядра. прога filmon ничего не правит, но отслеживает почти все события в системе на winapi.
что-то слышал про создание com-сервера для icopyhook, но не смог разобраться.
← →
mrAlert (2007-12-19 14:00) [17]еще разбирался с программой filmon, что такое irp_mj_query_information, irp_mj_create ... и т.д.
они обязательно присутствуют при операциях копирования
← →
Сергей М. © (2007-12-19 14:03) [18]
> mrAlert (19.12.07 14:00) [17]
Твоя задача в общем случае не решаема.
← →
mrAlert (2007-12-19 15:06) [19]с пом. filmon наткнулся на следующее:
при создании файла во время копирования explorer обязательно обращается по адресу 00130196, (если через cmd copy ... то другое)
при простом создании файла (пкм-создать....) по адресу 0012019F
ну для других операций другие постоянные адреса
но как отследить их вызов???
← →
Сергей М. © (2007-12-19 15:29) [20]
> mrAlert (19.12.07 15:06) [19]
> как отследить их вызов
"их" - это кого ?
← →
Riply © (2007-12-19 16:25) [21]> [19] mrAlert (19.12.07 15:06)
В твоей постановке "не спорю на счет дурацких, но проконтралировать вынос файлов надо",
задача практически не решаема. Можно "скпировать" тысячью различных способов и explorer
здесь совершенно не при чем. IMHO не трать время.
← →
DVM © (2007-12-19 22:00) [22]паранойю лечить надо.
← →
DVM © (2007-12-19 22:05) [23]
> не спорю на счет дурацких, но проконтралировать вынос файлов
> надо
Отключить USB-флэшки, отключить ком от инета, убрать все внешние накопители и приводы жисков, корпус опечатать. Права админа отобрать, политики настроить.
Но даже в этом случае юзер может вынести информацию просто запомнив ее или сфотографировав монитор :)
← →
Dib@zol © (2007-12-19 22:08) [24]Надо на монитор повесить такую штукенцию как у Людей в черном: типа нажал - туц, вспышка - и нифика не помнишь... А против фотиков - поставить рядом с монитором пару мощных магнетронов от микроволновок
%))))
← →
DVM © (2007-12-20 00:06) [25]
> поставить рядом с монитором пару мощных магнетронов
Это и против юзеров эффективно - все тайны юзеры просто будут уносить в могилу. т.к. умирать будут часто.
← →
mrAlert (2007-12-20 07:35) [26]дошел до следующего:
при копировании файла любым доступным методом винды, обязательно используется CopyFileExW(...) из kernel32.dll
вопрос: как её (не copyfileex из windows.dcu) перехватить????
← →
DVM © (2007-12-20 08:43) [27]
> mrAlert (20.12.07 07:35) [26]
Я вот не понимаю, что ты хочешь добиться? Чтобы юзер мог читать, но не мог скопировать файл? А создавать новые файлы юзер имеет право?
Если он имеет право читать и создавать - то все что надо он унесет куда угодно.
← →
DVM © (2007-12-20 08:43) [28]И без функции копирования вообще
← →
DVM © (2007-12-20 08:45) [29]Если уж чего и перехватывать, то это CreateFile и то что ниже ее.
← →
Сергей М. © (2007-12-20 10:14) [30]
> любым доступным методом винды
И каковые же, позволь полюбопытствовать, "методы винды" относятся к "доступным" ?
Что это вообще за "методы" ?
Подозреваю, что к оным причислены лишь телодвижения юзера в окнах Эксплорера ..
← →
miek (2007-12-20 10:16) [31]>Я вот не понимаю, что ты хочешь добиться?
он хочет проследить - что куда копируется.
>задача практически не решаема
задача практически решаема.
одно мне непонятно - почему бы просто не поставить аудит на успех на эту папку и потом смотреть логи.
← →
Сергей М. © (2007-12-20 10:43) [32]
> задача практически решаема
Ну поделись своими соображениями по поводу "решаемости")
Условие, например, вот такое простейшее - некий процесс открыл файл-оригинал, прочитал его содержимое куда-либо во врем.буфер и закрыл файл, после чего в некий последующий момент времени создал где-то некий файл с неким совершенно иным именем и записал в него содержимое того буфера. Факт копирования содержимого файла-оригинала неоспорим, однако как определить цель открытия файла-оригинала на момент его открытия ? Что при таком условии может выступать однозначным признаком преследования процессом цели копирования ?
← →
Сергей М. © (2007-12-20 10:54) [33]
> miek (20.12.07 10:16) [31]
Задача решаема на столько же, насколько, к примеру, эвристический анализатор в составе какого-либо антивирусного софта способен распознать скрытые вредоносные алгоритмы в исследуемом коде.
Добиться 100%-го распознавания практически невозможно.
← →
Riply © (2007-12-20 14:08) [34]> [26] mrAlert (20.12.07 07:35)
> дошел до следующего:
> при копировании файла любым доступным методом винды,
> обязательно используется CopyFileExW(...) из kernel32.dll
Чушь собачья. :)
P.S. Это не грубость - это правда :)
← →
Сергей М. © (2007-12-20 14:55) [35]
> Riply © (20.12.07 14:08) [34]
> Чушь собачья.
> Это не грубость
При всех "пысы" рискуешь, уважаемая, получить подобно мне пожизненный ярлык хама)
← →
Riply © (2007-12-20 15:04) [36]> [35] Сергей М. © (20.12.07 14:55)
> При всех "пысы" рискуешь, уважаемая,
> получить подобно мне пожизненный ярлык хама)
Ну... тогда... чушь человеческая :)
← →
Cj © (2007-12-20 15:33) [37]
> При всех "пысы" рискуешь, уважаемая, получить подобно мне
> пожизненный ярлык хама)
да не, вы справедливый(мне во всяком случае помогали)
У вас анкета не найдена!
← →
Сергей М. © (2007-12-20 15:40) [38]
> У вас анкета не найдена
Мне просто настодолбенило ее реанимировать, извини уж)
← →
slow!alfamoon!com (2007-12-20 21:29) [39]:дошел до следующего:
:при копировании файла любым доступным методом винды, обязательно :используется CopyFileExW(...) из kernel32.dll
:вопрос: как её (не copyfileex из windows.dcu) перехватить????
Вы делаете мне смешно. Я же вам все уже написал..
← →
mrAlert (2007-12-21 08:40) [40]все, хватит умничать- проблема решена
подключаю rernel32.dll определяю адрес copyfileExW, createFileA, createfileW
и отслеживаю их вызов
понятно, что можно скопировать файл так, чтобы не отследили, но в моем случае до такого никто из юзеров не дойдет.
а на
> Условие, например, вот такое простейшее - некий процесс
> открыл файл-оригинал, прочитал его содержимое куда-либо
> во врем.буфер и закрыл файл, после чего в некий последующий
> момент времени создал где-то некий файл с неким совершенно
> иным именем и записал в него содержимое того буфера. Факт
> копирования содержимого файла-оригинала неоспорим, однако
> как определить цель открытия файла-оригинала на момент его
> открытия ? Что при таком условии может выступать однозначным
> признаком преследования процессом цели копирования ?
используем хук на wm_copydata и wm_copy ну и на paste.
да, и не давите, я ведь решаю техническую, а не организационную задачу
если интересно позже выложу код
Страницы: 1 2 вся ветка
Форум: "WinAPI";
Текущий архив: 2009.01.04;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.004 c