Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отслеживание копирования 
:(
    Опции темы
mr.DUDA
Дата 17.11.2006, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



API Hook нужен на функции CopyFile/CopyFileEx и MoveFile/MoveFileEx, см. http://www.codeproject.com/system/hooksys.asp


--------------------
user posted image
PM MAIL WWW   Вверх
ANDeath
Дата 17.11.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



mr.DUDA, а как это хук на CopyFile b MoveFile, они же ничего в очередь сообщений не кидают?
PM MAIL   Вверх
mr.DUDA
Дата 17.11.2006, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(ANDeath @  17.11.2006,  13:16 Найти цитируемый пост)
mr.DUDA, а как это хук на CopyFile b MoveFile, они же ничего в очередь сообщений не кидают?

Почитай плз ссылку что я дал выше. API хук и windows hook разные вещи. API hook юзает вин-hook для инжекции в чужое адресное пространство, но по сути своей и назначению - совершенно другая область: api-hooks = перехват вызовов WinAPI функций, win-hooks = перехват оконных сообщений.


--------------------
user posted image
PM MAIL WWW   Вверх
ANDeath
Дата 17.11.2006, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



mr.DUDA, на данный момент, имеет ли смысл изучать это все? смогу ли я после всего узнать куда был скопирован файл, и определить является ли пункт назначения съемным носителем (cd, флешка, внешний хард)?

Это сообщение отредактировал(а) ANDeath - 17.11.2006, 15:04
PM MAIL   Вверх
mr.DUDA
Дата 17.11.2006, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(ANDeath @  17.11.2006,  14:04 Найти цитируемый пост)
 смогу ли я после всего узнать куда был скопирован файл

Да, путь source и destination в обеих функциях есть, этого достаточно.

Цитата(ANDeath @  17.11.2006,  14:04 Найти цитируемый пост)
и определить является ли пункт назначения съемным носителем (cd, флешка, внешний хард)?

Это придётся отдельно сделать - в .NET есть стандартный класс DriveInfo, у него можно это узнать. Если нужна более детальная инфа о типе носителя (например, отличить флешку от флопика), то помогут классы из неймспейса System.Management


--------------------
user posted image
PM MAIL WWW   Вверх
ANDeath
Дата 18.11.2006, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



mr.DUDA, во-первых, большое спасибо за консультацию, приступаю к изучению апи-хук  smile ...если есть какая-нибудь инфа о том как его писать - поделись пожалуйста...

во-вторых, а по букве из пути destination нельзя ли определить тип запоминающего устройства?
для флопи это понятно будет - диск A
для флешки и мобильного харда, может можно как-нибудь определить через апи-функции?
а вот как отследить запись на cd - явно проблема...
PM MAIL   Вверх
Softaz
Дата 18.11.2006, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Цитата(ANDeath @  18.11.2006,  01:04 Найти цитируемый пост)
а вот как отследить запись на cd - явно проблема...

Обычно дисковод блокируется во время записи (иногда его блокируют также некоторые инсталляторы, но редко)
Так что если заблокирован, то скорее всего что-то пишут.


Так один приколист сделал прогу, "запоминающую" первый обнаруженный дисковод, и если производилась запись, то отправлял комп в ребут. Если вставлялся другой дисковод - все было нормально. И так несколько дисководов хапнул как сломанные.



Цитата(ANDeath @  18.11.2006,  01:04 Найти цитируемый пост)
во-вторых, а по букве из пути destination нельзя ли определить тип запоминающего устройства?

Вот для этого и существуют классы, названные mr.DUDA.


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
mr.DUDA
Дата 18.11.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(ANDeath @  18.11.2006,  00:04 Найти цитируемый пост)
во-вторых, а по букве из пути destination нельзя ли определить тип запоминающего устройства?для флопи это понятно будет - диск Aдля флешки и мобильного харда, может можно как-нибудь определить


Цитата(mr.DUDA @  17.11.2006,  19:35 Найти цитируемый пост)
в .NET есть стандартный класс DriveInfo, у него можно это узнать. Если нужна более детальная инфа о типе носителя (например, отличить флешку от флопика), то помогут классы из неймспейса System.Management




--------------------
user posted image
PM MAIL WWW   Вверх
ANDeath
Дата 18.11.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



Кажется, меня не так поняли...я хотел узнать можно ли определить тип зап. устройства по имени, ограничиваясь языками с++ и vbs, ну не хватит мне времени чтобы еще в .NET ковыряться...
Softaz, а как связать: сидюк блокируется после начала записи и перехват апи-функций копирования? Насколько я себе это представляю, проги типа стандартного win-резака и nero про запоминают список необходимых файлов (ссылки на них), а потом просто читая эти файлы, пишут на CD. Так?

P.S.: вопрос о  литературе и примерах об api-хуках остается открытым и крайне актуальным.
Ссылка на пример? предоставленная mr.DUDA, безусловно является крайне полезной, но не достаточно информативной для меня.
В нете нашел как писать апи-хуки на pascal, да вот только видно не владею им в достаточно степени.

Это сообщение отредактировал(а) ANDeath - 18.11.2006, 13:26
PM MAIL   Вверх
mr.DUDA
Дата 18.11.2006, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(ANDeath @  18.11.2006,  12:12 Найти цитируемый пост)
Кажется, меня не так поняли...я хотел узнать можно ли определить тип зап. устройства по имени, ограничиваясь языками с++ и vbs, ну не хватит мне времени чтобы еще в .NET ковыряться...

Тогда эта тема - кандидат на перемещение в один из указанных разделов.  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
ANDeath
Дата 19.11.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



mr.DUDA, если бы там отвечали, я бы здесь не сидел... smile 
PM MAIL   Вверх
mr.DUDA
Дата 19.11.2006, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



ANDeath, так или иначе, по C++ и VBS никто здесь советов не даёт.


--------------------
user posted image
PM MAIL WWW   Вверх
ANDeath
Дата 2.12.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



Триумфальное возвращение к .NET  smile 

Средствами WMI и VBS ничего неудалось поделать; основная проблемма заключается в том чтобы узнать путь к файлу, который был скопирован.

Копал и Api-hook для CopyFile, но работает это не слаженно и его можно легко обойти....
Так же смотрел исходники filemon с его виртуальным драйвером - слишком много гемороя...

И вот я вернулся к .NET...просмотрел, на скорую руку, синтаксис C#...и пространство имен System.IO. И опять возникает вопрос можно ли понять какой файл был скопирован? Хотя бы следить за событиями чтения файлов? Я уже даже незнаю как решать эту проблему, может как-нибудь связывать событие создания файла с процессами (просто предположение). Я уже не вспоминаю про запись на компакт-диски...
PM MAIL   Вверх
Softaz
Дата 2.12.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Цитата(ANDeath @  2.12.2006,  17:40 Найти цитируемый пост)
И опять возникает вопрос можно ли понять какой файл был скопирован?


Ты внимательнее ответы читай  smile 
Вот здесь http://forum.vingrad.ru/s/07187540e1f9ed26...ic-121301.html#
в аттаче целая программка


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
ANDeath
Дата 3.12.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



[b]Softaz[/b,
Во-первых эта программа у меня только запустила форму и отказалась как-либо реагировать на нажатие кнопок и на события происходящие в папке, указаной в xml-документе...может она только показательная и оно так и надо, но...

Во-вторых, я просмотрел все скрипты и натолкнулся только на один, нужный мне и заодно подвласный моему разумению... так вот, я не понимаю каким образом здесь возможно отследить за копированием? теже события что и в WMI: создание/модификация/удаление, ну и переименование добавили.

FormMain.cs
Код

.....
DataRowView drv = (DataRowView)bs.Current;

System.IO.FileSystemWatcher fileSystemWatcher13 = new FileSystemWatcher();
fileSystemWatcher13.NotifyFilter = System.IO.NotifyFilters.FileName | System.IO.NotifyFilters.Size;
fileSystemWatcher13.Path = drv.Row["path"].ToString();
fileSystemWatcher13.IncludeSubdirectories = Convert.ToBoolean(drv.Row["inc_sf"]);
fileSystemWatcher13.Filter = drv.Row["filter"].ToString();
fileSystemWatcher13.SynchronizingObject = this;

fileSystemWatcher13.Changed += new System.IO.FileSystemEventHandler(this.fileSystemWatcher12_Changed);
fileSystemWatcher13.Created += new System.IO.FileSystemEventHandler(this.fileSystemWatcher12_Changed);
fileSystemWatcher13.Deleted += new System.IO.FileSystemEventHandler(this.fileSystemWatcher12_Changed);
fileSystemWatcher13.Renamed += new System.IO.RenamedEventHandler(this.fileSystemWatcher122_Changed);
.....

PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1139 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.