![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Friackazoid |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
Есть такая задача. Нужно мне перехватить сообщения от Explorera и если это открытие файла определенного типа, то произвести ряд действий.
DLL'ку для перехвата написала, но как определить что это именно открытие и как проверить тип файла. Пишу на Visual Studio C++ Заранее спасибо. --------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
Смотри в сторону Shell Extensions.
|
|||
|
||||
| Friackazoid |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
А нельзя ли чуть-чуть поподробнее ссылочку какую-нибудь
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
| supersonic |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 21.6.2006 Репутация: нет Всего: нет |
В смысле сообщения ? Те что посылаются в оконную процедуру ? Что-то я не помню такого сообщения WM_OPENFILE. Если нужно просто перехватить событие открытия файла то тогда лучше хукать нэтивную функ. ZwCreateFile из ntdll.dll т.к. все остальные функ. по открытию файлов обращаются именно к ней. В обработчике перехва ZwCreateFile вызвать ZwQueryInformationFile для получения имени файла, т.к. в ZwCreateFile имя файла не передается. [url=http://www.osronline.com/DDKx/kmarch/k111_9dte.htm[/url] |
|||
|
||||
| Friackazoid |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
supersonic,
Спасибо большое. --------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
| Friackazoid |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
Еще один аопрос вдогонку.
Перехватываю функцию ZwCreateFile изменением таблицы импорта (функия взята из книги Рихтера) пишу свю функцию
но мне выдаеться декларатион синтаксис ерор. Я думаю эо потому что надо подключить ntdll.dll в которой по всей видимости определен NTSTATUS как это сделать если HookCreate и функция перхвата также находятся в DLL'ке --------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
| supersonic |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 21.6.2006 Репутация: нет Всего: нет |
NTSTATUS это просто любой 4-х байтовый тип, DWORD будет вместо него самый раз, остальные типы - POBJECT_ATTRIBUTES, PIO_STATUS_BLOCK, PLARGE_INTEGER это структуры которые объявлены не то в WINNT-DKK не то еще где то, непомню щас. У меня есть тока описание для
Описания остальных структур найди в инете и просто вставь из в свой файл. И еще - перехват через патчинг IAT не особо надежный, юзай лучше Detours от М$. Эта библа перехватывает АПИ методом сплайсинга, что гарантирует перехват в случаях вызова таргет-апи как через IAT, так и через LoadLibrary\GetProcAddress Функцию-двойник лучше описать так
Это сообщение отредактировал(а) supersonic - 18.9.2006, 11:31 |
||||
|
|||||
| Friackazoid |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
supersonic,
В очередной раз огромное спасибо --------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
| Friackazoid |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
Пользуюсь библиотекой Detours
Но все время говорит что ZwCreateFile not found почему, ведь хеадер wdm.h подключен Это сообщение отредактировал(а) Friackazoid - 22.9.2006, 02:31 --------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
| supersonic |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 21.6.2006 Репутация: нет Всего: нет |
Для этого ZwCreateFile я хук не делал, делал для другой нэтивной апи. Я ничего кроме detours.h не инклудил. Все что нужно объявлял в своем главном файле.
Это сообщение отредактировал(а) supersonic - 25.9.2006, 19:11 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |