Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
15-1225861996
Slider007
2008-11-05 08:13
2009.01.04
С днем рождения ! 5 ноября 2008 среда


15-1226027966
Slider007
2008-11-07 06:19
2009.01.04
С днем рождения ! 7 ноября 2008 пятница


9-1176419505
Gabriel de Montgomery
2007-04-13 03:11
2009.01.04
Сохранение карты


2-1227597152
F@T@L_Err0r
2008-11-25 10:12
2009.01.04
Запись голоса


15-1225956224
Валигози
2008-11-06 10:23
2009.01.04
Компонент для тестирования zip-архивов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский