Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

хук на DrawText

13K
21 июня 2006 года
SmartX
11 / / 04.05.2006
Подскажите плиз, как установить хук на функцию WinAPI DrawText.
Какой тип хука лучше использовать? Как получить и обработать параметры передаваемые в вызов этой функции?
354
22 июня 2006 года
ШпиЁн
468 / / 19.02.2006
hook'и ставятся на СООБЩЕНИЯ, а не на функции :о)

Например WH_KEYBOARD - через наш хук будет процеживаться клавиатурный ввод :о)

Общий принцип - вместо оригинальной DrawText вызывается наша функция, которая и смотрит, что ей передали, и вызывает оригинальную функцию.

Чтобы посмотреть, что передаётся функции, нужно сделать что-то из следующего:

1) Подменить первые несколько байт этой функции на машинный jmp XXXX, где ХХХХ - адрес нашей функции, сидящей в библиотеке, которую мы либо инжектировали в процесс сами, либо запихнули туда с помощью хуков. "Наша" функция смотрит, что ей передали, и если нужно - вызывает настоящую системную функцию.

2) Модифицировать таблицу импорта, опять таки сменить адрес там на функцию в нашем уже загруженном модуле :о)

Других методов я не знаю, сам совсем недавно со всем этим разобрался :о) Инжектирование в чужой процесс и модификация таблицы импорта подробно описано у Рихтера "Глава 22 - Внедрение DLL и перехват API-вызовов", его книга есть в сети, там неплохие примеры :о)

Я подменял не DrawText, а нечто другое, но важен принцип, как это все делается :о)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог