-
Здравствуйте.
пишу службу для перехвата копирования любых файлов в 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
ну для других операций другие постоянные адреса
но как отследить их вызов???
-
> mrAlert (19.12.07 15:06) [19]
> как отследить их вызов
"их" - это кого ?
-
> [19] mrAlert (19.12.07 15:06)
В твоей постановке "не спорю на счет дурацких, но проконтралировать вынос файлов надо",
задача практически не решаема. Можно "скпировать" тысячью различных способов и explorer
здесь совершенно не при чем. IMHO не трать время.
-
паранойю лечить надо.
-
> не спорю на счет дурацких, но проконтралировать вынос файлов
> надо
Отключить USB-флэшки, отключить ком от инета, убрать все внешние накопители и приводы жисков, корпус опечатать. Права админа отобрать, политики настроить.
Но даже в этом случае юзер может вынести информацию просто запомнив ее или сфотографировав монитор :)
-
Надо на монитор повесить такую штукенцию как у Людей в черном: типа нажал - туц, вспышка - и нифика не помнишь... А против фотиков - поставить рядом с монитором пару мощных магнетронов от микроволновок
%))))
-
> поставить рядом с монитором пару мощных магнетронов
Это и против юзеров эффективно - все тайны юзеры просто будут уносить в могилу. т.к. умирать будут часто.
-
дошел до следующего:
при копировании файла любым доступным методом винды, обязательно используется CopyFileExW(...) из kernel32.dll
вопрос: как её (не copyfileex из windows.dcu) перехватить????
-
> mrAlert (20.12.07 07:35) [26]
Я вот не понимаю, что ты хочешь добиться? Чтобы юзер мог читать, но не мог скопировать файл? А создавать новые файлы юзер имеет право?
Если он имеет право читать и создавать - то все что надо он унесет куда угодно.
-
И без функции копирования вообще
-
Если уж чего и перехватывать, то это CreateFile и то что ниже ее.
-
> любым доступным методом винды
И каковые же, позволь полюбопытствовать, "методы винды" относятся к "доступным" ?
Что это вообще за "методы" ?
Подозреваю, что к оным причислены лишь телодвижения юзера в окнах Эксплорера ..
-
>Я вот не понимаю, что ты хочешь добиться?
он хочет проследить - что куда копируется.
>задача практически не решаема
задача практически решаема.
одно мне непонятно - почему бы просто не поставить аудит на успех на эту папку и потом смотреть логи.
-
> задача практически решаема
Ну поделись своими соображениями по поводу "решаемости")
Условие, например, вот такое простейшее - некий процесс открыл файл-оригинал, прочитал его содержимое куда-либо во врем.буфер и закрыл файл, после чего в некий последующий момент времени создал где-то некий файл с неким совершенно иным именем и записал в него содержимое того буфера. Факт копирования содержимого файла-оригинала неоспорим, однако как определить цель открытия файла-оригинала на момент его открытия ? Что при таком условии может выступать однозначным признаком преследования процессом цели копирования ?
-
> miek (20.12.07 10:16) [31]
Задача решаема на столько же, насколько, к примеру, эвристический анализатор в составе какого-либо антивирусного софта способен распознать скрытые вредоносные алгоритмы в исследуемом коде.
Добиться 100%-го распознавания практически невозможно.
-
> [26] mrAlert (20.12.07 07:35)
> дошел до следующего:
> при копировании файла любым доступным методом винды,
> обязательно используется CopyFileExW(...) из kernel32.dll
Чушь собачья. :)
P.S. Это не грубость - это правда :)
-
> Riply © (20.12.07 14:08) [34]
> Чушь собачья.
> Это не грубость
При всех "пысы" рискуешь, уважаемая, получить подобно мне пожизненный ярлык хама)
-
> [35] Сергей М. © (20.12.07 14:55)
> При всех "пысы" рискуешь, уважаемая,
> получить подобно мне пожизненный ярлык хама)
Ну... тогда... чушь человеческая :)
-
> При всех "пысы" рискуешь, уважаемая, получить подобно мне
> пожизненный ярлык хама)
да не, вы справедливый(мне во всяком случае помогали)
У вас анкета не найдена!
-
> У вас анкета не найдена
Мне просто настодолбенило ее реанимировать, извини уж)
-
:дошел до следующего:
:при копировании файла любым доступным методом винды, обязательно :используется CopyFileExW(...) из kernel32.dll
:вопрос: как её (не copyfileex из windows.dcu) перехватить????
Вы делаете мне смешно. Я же вам все уже написал..
-
все, хватит умничать- проблема решена
подключаю rernel32.dll определяю адрес copyfileExW, createFileA, createfileW
и отслеживаю их вызов
понятно, что можно скопировать файл так, чтобы не отследили, но в моем случае до такого никто из юзеров не дойдет.
а на
> Условие, например, вот такое простейшее - некий процесс
> открыл файл-оригинал, прочитал его содержимое куда-либо
> во врем.буфер и закрыл файл, после чего в некий последующий
> момент времени создал где-то некий файл с неким совершенно
> иным именем и записал в него содержимое того буфера. Факт
> копирования содержимого файла-оригинала неоспорим, однако
> как определить цель открытия файла-оригинала на момент его
> открытия ? Что при таком условии может выступать однозначным
> признаком преследования процессом цели копирования ?
используем хук на wm_copydata и wm_copy ну и на paste.
да, и не давите, я ведь решаю техническую, а не организационную задачу
если интересно позже выложу код
-
подскажите, можно-ли код службы и код библы для перехвата объединить в одну длл
-
> используем хук на wm_copydata и wm_copy ну и на paste
Какой нафиг "хук" ? Ты в условие вчитался ? Где там хоть какое-либо упоминание об окнах ?
> можно-ли код службы и код библы для перехвата объединить
> в одну длл
Можно.
-
> Какой нафиг "хук" ? Ты в условие вчитался ? Где там хоть
> какое-либо упоминание об окнах ?
нет разницы, все-равно при копировании через буфер используются эти сообщения
-
> все-равно при копировании через буфер
Что мешает юзеру копировать не через буфер ?
-
> mrAlert (21.12.07 08:40) [40]
выложи будет очень интересно ознакомиться
-
> [40] mrAlert (21.12.07 08:40)
а интернет перекрыл юзерам?
-
Дети Ивана Кулибина. Просто удивительно, сколько энергии тратится на увеличение энтропии во вселенной.
Лучше за это время окончить архитектурный институт или изобрести самодвижущееся пресс-папье.
-
Обратите внимание - человек сам поставил, сам решил задачу, и сообщил об этом. :-D
-
причём поставил задачу идиотскую, решил по-идиотски и похвастался примерно так же.
---
Understanding is not required. Only obedience.
-
Удалено модератором
-
> правильно сделал, что код не показывает
Конечно правильно)
Тут и без этого очередного "шедевра" дерьма хватает)