![]() |
Работа с Hook`ами в Виндовозе
правда ли что с хуками можно работать только через Dll ?
|
Интересно, а как твой код может ещё документированными способами оказаться в адресном пространстве другого процесса?
|
инжектами(документировано Google)!
|
> инжектами!
Дай ссылку на msdn, где документирован такой способ. > правда ли что с хуками можно работать только через Dll ? нет конечно. хуков вообще нет, это страшилка от микрософта |
я проста хотел создать хуки в своем адресном пространстве ?
я объявил callback функцию для хука в своем адресном пространстве но она не срабатывает почему? |
Чего ты хочешь обьясни подробнее..... код в студию!!!!
Какое событие посылаешь.....(надеюсь не нажатия клавы :) Убьют нафик, при наличии темы клавиатурных шпийоноф)? Как ловишь....? Действительно ли своему Handle....(надеюсь что не Global :) )? |
Думаешь она будет "срабатывать" (походу оно механическое) от того что ты её просто объявил?
|
http://sources.ru/msdn/library/setwindowshookex.shtml
lpfn указатель на функцию ловушки. Если параметр dwThreadId равен нулю или содержит идентификатор потока, созданного в другом процессе, то параметр lpfn должен указывать на процедуру ловушки в динамически закгружаемой библиотеке (DLL). Либо lpfn может указывать на функцию ловушки в текущем процессе. |
#include <windows.h>
#include <stdio.h> #include <string.h> HWND selfhandle; HHOOK shook=0; LRESULT CALLBACK CBTProc(int iCode,WPARAM wParam,LPARAM lParam) { if (iCode==HCBT_MINMAX)//(!strcmp(cap,"Half-Life")) { MessageBoxA(0,(LPCSTR)"You can`t use this Program.",(LPCSTR)"Message from Administrator!",0);// соб шения не выходит если даже использо ваю другие функцию /* . . .*/ } return (CallNextHookEx(shook,iCode,wParam,lParam)); } int main () { selfhandle=GetForegroundWindow(); shook=SetWindowsHookExA(WH_CBT,(HOOKPROC)CBTProc,( HINSTANCE)selfhandle,0); //. . . UnhookWindowsHookEx(shook); return 0; } што делаю нетак |
|
| Время: 01:56 |