• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Хук на Toolbarwindow32

  • Автор темы solova
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

solova

С хуками понемногу разбираюсь уже.
Хочу создать программку которая отслеживает нажатие на определённую кнопку в ToolbarWindow32 на чужом окне.
Длл уже есть, и программка включающая Хук тоже есть.
Проблема вот в чём.
В функции установки хука

SetWindowsHookEx( WH_CALLWNDPROC, Функция Хука, HINSTANCE hMod, DWORD dwThreadId);

В "DWORD dwThreadId" я сую ID который получаю следующим образом.
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Пример</div></div><div class="sp-body"><div class="sp-content">HWND hWnd= ::FindWindow(L"Имя окна программы",NULL);
hWnd = ::GetWindow(hWnd,GW_CHILD);
hWnd = ::GetWindow(hWnd,GW_HWNDNEXT);
.......
if (hWnd)
SETHook(GetWindowThreadProcessId(hWnd,NULL));
Ну и я могу достать Хэндл только от "ToolbarWindow32", потому что для кнопок его нету.
Есть ли какие способы реализовать слежку только для одной кнопки , а не для всего Toolbar-а ?
Если нет, то как после установки хука на "ToolbarWindow32" получив мессагу типа WM_MOUSEACTIVATE или какой нибудь клик мышки ,определить какая именно кнопка была нажата. Например по "Caption" и т.п..
 
L

lazybiz

Есть ли какие способы реализовать слежку только для одной кнопки , а не для всего Toolbar-а ?
Нет.
Думаю тебе нужно просто узнать ID необходимой кнопки и перехватывать уже его в WM_COMMAND.

Добавлено: P.S.: Другого способа я не вижу.
 
S

solova

Думаю тебе нужно просто узнать ID необходимой кнопки и перехватывать уже его в WM_COMMAND.
Воо спасибо.
Нету возможности сейчас проверить.
Как я понял, Хук ставить на ID_ToolbarWindow и его мессаги надо отслеживать.
Я тут сделал набросок.
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Фуньки в ДэЛэЛэ</div></div><div class="sp-body"><div class="sp-content">
C++:
SetWindowsHookEx( WH_CALLWNDPROC, CallWndProc, HINSTANCE hMod, DWORD "ID_Toolbar-а");
....
LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam) 
{
CWPSTRUCT *cwp=(CWPSTRUCT*)lParam;								//Заполняем структуру CWP
if ((cwp->message==WM_COMMAND)&&(LOWORD(cwp->wParam)=="ID_кнопоньки"))
{
/*					*/
/*Кнопонька была нажата*/
/*					*/
}
return CallNextHookEx(hHook,nCode,wParam,lParam); 					//Вызываем следующую ловушку в системе
}
И на счёт CWP структуры, она очень нужна?(видел пример без неё)

Узнал ID_кнопки "34571" , его прям так и вписывать? (LOWORD(cwp->wParam)==34571)

Ураа , работает , спасибо.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!