Установка глобального хука WH_GETMESSAGE

Тема в разделе "WASM.BEGINNERS", создана пользователем vg, 5 июн 2008.

  1. vg

    vg New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2007
    Сообщения:
    475
    Следующая dll должна отлавливать все вызовы GetMessage и PeekMessage всех приложений и пропускать через HookProc.
    Для проверки я поместил в HookProc MessageBox, но он не показывается, получается до HookProc дело не доходит.
    Как правильно?

    Код (Text):
    1. .386
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. include masm32\include\windows.inc
    6. include masm32\include\user32.inc
    7. include masm32\include\kernel32.inc
    8.  
    9. includelib masm32\lib\user32.lib
    10. includelib masm32\lib\kernel32.lib
    11.  
    12. .data?
    13. hhook dd ?
    14.  
    15. .code
    16. DllEntry proc hInst:HINSTANCE,reason:DWORD,reserved1:DWORD
    17.  
    18.     cmp reason,DLL_PROCESS_ATTACH
    19.     jne exit
    20.    
    21.     push 0
    22.     push hInst
    23.     push HookProc
    24.     push WH_GETMESSAGE
    25.     call SetWindowsHookEx
    26.     mov hhook,eax
    27.  
    28. exit:
    29.     mov eax,TRUE
    30.     ret
    31. DllEntry Endp
    32.  
    33. HookProc proc code:DWORD,wParam:DWORD,lParam:DWORD
    34.  
    35. invoke MessageBox,0,0,0,MB_OK
    36.  
    37.     push lParam
    38.     push wParam
    39.     push code
    40.     push hhook
    41.     call CallNextHookEx
    42.     ret
    43. HookProc endp
    44. End DllEntry