Форум программистов, компьютерный форум, киберфорум
Assembler: Windows/protected mode
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/37: Рейтинг темы: голосов - 37, средняя оценка - 5.00
 Аватар для Dimarik__
21 / 21 / 3
Регистрация: 29.04.2010
Сообщений: 444
MASM32

Хуки: обработать активацию любого окна

17.07.2011, 19:05. Показов 8064. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу прогу, которая как только любое окошко будет активировано, обработает активацию окно и выдаст MessageBox.

Ошибка во время выполнения при вызове функции call [SetHookForWindow_Addr]
Скорее всего что-то не так в dll в этих строчках:

Assembler
1
2
call GetCurrentThreadId
        invoke SetWindowsHookEx, WH_CBT, offset HookForWndProc, hi, EAX
но я пробовал эти строки заменить на

Assembler
1
invoke SetWindowsHookEx, WH_CBT, offset HookForWndProc, hi, 0
результата это не дало. Вот полностью все файлы проекта
<ссылка еа файлообменник>
Что тут не так? Подскажите, пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2011, 19:05
Ответы с готовыми решениями:

Как обработать сообщение из dll (хуки)
В проекте Windows Forms использую библиотеку для работы с хуками, написанную на с++. В коде библиотеки идет генерация сообщения,...

Хук на активацию окна
Интересует как можно поставить хук на смену активного окна, у меня есть методы, которые позволяют получить имя текущего активно окна и...

Убрать активацию окна
Пытаюсь разобраться в коде чужой программы (попросили доработать). Есть некая программа. Она вставляет свою форму с информацией в чужое...

24
 Аватар для Dimarik__
21 / 21 / 3
Регистрация: 29.04.2010
Сообщений: 444
05.08.2011, 20:06  [ТС]
Студворк — интернет-сервис помощи студентам
я точки останова поставил после выполнения функции LoadLibrary (после того как была загружена в память dll-ка). А до загрузки мне olly даже и не давала возможности ставить точки останова.
Вот наставил ещё точек останова до этой функции (как ты сказал).
Нифига не сработало
Миниатюры
Хуки: обработать активацию любого окна  
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
05.08.2011, 20:27
1 попробуй аппаратные точки останова
2 посмотри карту памяти (какие процессы и прочее)
3 вставь в свой хук MessageBeep при вхождении в хук пищать будет

Добавлено через 6 минут
самое главное перепиши свой хук

Цитата Сообщение от Dimarik__ Посмотреть сообщение
SetWindowsHookEx, WH_CBT
перехватывает кучу сообщений от окон ты их не фильтруешь(насколько помню тебе нужно создание)
возможно что отладчик активизируется твой хук перехватывает отладчик активизируется и получили бесконечную рекурсию
0
 Аватар для Dimarik__
21 / 21 / 3
Регистрация: 29.04.2010
Сообщений: 444
06.08.2011, 18:26  [ТС]
Я вызвал аппаратную точку останова, нажав BreakPoint->Hardware, on execution. Никакого останова не произошло. Так как правильно выполнить отладку dll?
0
9 / 8 / 1
Регистрация: 05.08.2011
Сообщений: 56
06.08.2011, 19:11
Если уж брать проблему с самого начала, то мне кажется call на invoke надо заменить . Возможно там еще какие-нибудь параметры у вызываемой функции есть (лень соответствующий help смотреть ).
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
06.08.2011, 21:34
Цитата Сообщение от Dimarik__ Посмотреть сообщение
1. По идее ведь был создан бесконечный цикл хуков. то есть: идёт сообщение, если нужное, обрабатываем хук, и потом CallNextHook, если ненужное - просто CallNextHook
2. Почему тогда в отладчике нормально работал?
1. Чего? Ничего не понял.
2. Потому что пока прога висела в отладчике, эта dllка висела в памяти.
Цитата Сообщение от mac_alleb Посмотреть сообщение
то мне кажется call на invoke надо заменить
В коде вообще-то и есть invoke.
Цитата Сообщение от ValeryS Посмотреть сообщение
eb 64 0000000000 т.е переход еще не сконфигурирован в памяти
Это, наверное, call по адресу, где jmp с реальным адресом? Или нет?
Цитата Сообщение от Dimarik__ Посмотреть сообщение
Как тогда можно в отладчике отладить эту dll-ку?
Большая часть хуков выполняется в контексте потока, где это событие произшло, так что от брейкпоинта в своём процессе толку не будет. Надо запустить свою прогу, потом
File -> Attach -> Процесс, который нужен
View -> Memory map -> секция кода dllки с хуком, в ней уже брейкпоинт.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.08.2011, 21:34

Реакция на активацию и деактивацию окна
Здравствуйте, помогите пожалуйста с этим заданием &quot;Создать программу, которая при активации окна выводит метку с желтой надписью...

Проверка окна на видимость/активацию?
Добрый день! Вопрос по проверке на видимость окна. К примеру, создано два объекта window1 и window_2 (одно из них - скрыто)....

хуки на поиск окна
необходимо заблочить окно по названию для клавы. фильтрующая функция LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam) ...

Как узнать margin-left любого элемента от главного окна окна браузера?
причем не важно какую вложенность имеет элемент сам элемент, т.е. в скольких контейнерах он бы не находился, нужно найти его marginLeft от...

Как обработать событие DblClick для любого из 20 полей
Как обработать это событие для любого из 20 полей. Раньше писал для каждого поля(их было1-3) а сейчас надо одно и то же для 20 и я как-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru