информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медСетевые кракеры и правда о деле ЛевинаЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
чем в дальнейшем занимается поток который поставил хук? 21.07.09 20:44  Число просмотров: 3226
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
чем в дальнейшем занимается поток который поставил хук?
ему полагается крутить цикл выборки сообщений
а фигню с десктопами и оконными станциями - убрать
<beginners>
explorer.exe и wh_keyboard_ll 21.07.09 20:39   [Den, HandleX]
Автор: .7mm Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Друзья, доброго всем здравия!

Делаю инжект своего кода в процесс explorer.exe. Создаю новый поток. Проблем нет, код отрабатывает. Пытаюсь установить глобальный хук клавиатуры WH_KEYBOARD_LL. Ошибок не возникает, но хук не ловит события от клавиатуры.

Нашел через поисковики, что возможно проблема с тем, что хук ставиться на другой десктоп. Хорошо, делаю следующее:
1. Сохраняю текущие значения: GetProcessWindowStation, GetThreadDesktop.
2. Меняю текущую станцию процесса на Winsta0: SetProcessWindowStation.
3. Открываю десктоп Default: OpenDesktopA (как вариант OpenInputDesktop).
4. Задаю потоку полученный десктоп (Winsta0\Default): SetThreadDesktop.
5. Ставлю хук: GetModuleHandle / SetWindowsHookEx.
6. Восстанавливаю значение станции процесса: SetProcessWindowStation

Все функции отрабатывают без ошибок. Реакции хука на нажатые кнопки я не наблюдаю :((

Кто сталкивался, подскажите в чём может быть дело?

P.S. Вопрос скорее в programming, но с нулевым рейтингом не могу создать там сообщение...
чем в дальнейшем занимается поток который поставил хук? 21.07.09 20:44  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
чем в дальнейшем занимается поток который поставил хук?
ему полагается крутить цикл выборки сообщений
а фигню с десктопами и оконными станциями - убрать
Ожидает событий WaitForMultipleObjects.... Я так понимаю, по... 21.07.09 20:56  
Автор: .7mm Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> чем в дальнейшем занимается поток который поставил хук?
> ему полагается крутить цикл выборки сообщений
> а фигню с десктопами и оконными станциями - убрать

Ожидает событий WaitForMultipleObjects.... Я так понимаю, по вашим словам нужно крутить GetMessage/DispatchMessage ??
Ага. А если еще нуна ивента ждать -... 22.07.09 00:59  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
> Ожидает событий WaitForMultipleObjects.... Я так понимаю,
> по вашим словам нужно крутить GetMessage/DispatchMessage ??
Ага. А если еще нуна ивента ждать - MsgWaitForMultipleObjects + PeekMessage/DispatchMessage
Круто! Снова спасибо :) 22.07.09 13:15  
Автор: .7mm Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Вопрос снят. Действительно, необходимо выполнять обычный... 21.07.09 21:04  
Автор: .7mm Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > чем в дальнейшем занимается поток который поставил
> хук?
> > ему полагается крутить цикл выборки сообщений
> > а фигню с десктопами и оконными станциями - убрать
>
> Ожидает событий WaitForMultipleObjects.... Я так понимаю,
> по вашим словам нужно крутить GetMessage/DispatchMessage ??

Вопрос снят. Действительно, необходимо выполнять обычный цикл выборки сообщений.

Спасибо, очень помогли.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach