Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.04;
Скачать: CL | DM;

Вниз

перехват копирования   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2009.01.04;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.012 c
2-1227219022
Nastya
2008-11-21 01:10
2009.01.04
Модальные окна


15-1225786628
Translator
2008-11-04 11:17
2009.01.04
Словарик


8-1188662758
Dr. Andrew
2007-09-01 20:05
2009.01.04
Как получить один цвет из другого?


15-1225462808
kaif
2008-10-31 17:20
2009.01.04
Зарегистрировал ИП


2-1227180191
Андрей Алекс.
2008-11-20 14:23
2009.01.04
Отправка почты