Что нового

Как обойти определение программной эмуляции мыши?

AndreWhite

Новичок
Сообщения
1
Репутация
0
Доброго времени суток!
Очень нужна помощь профессионалов, столкнулся с проблемой, которую сам не могу решить.
https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-msllhookstruct
LLMHF_INJECTED0x00000001Test the event-injected (from any process) flag.
как обойти установку этого флага?
См. код ниже :
Код:
; Script Start - Add your code below here
#include <WinAPI.au3>
#include <AutoItConstants.au3>

global const $kLogFile = @ScriptDir&"debug.log"
global $gHook
global $gHookMouse
Global $keyHandler
Global $MouseHandler

func LogWrite($data)
FileWrite($kLogFile, $data & chr(10))
endfunc

func _KeyHandler($nCode, $wParam, $lParam)
if $nCode < 0 then
return _WinAPI_CallNextHookEx($gHook, $nCode, $wParam, $lParam)
endIf
local $keyHooks = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
LogWrite("_KeyHandler() - keyccode = " & DllStructGetData($keyHooks, "vkCode"));
local $flags = DllStructGetData($keyHooks, "flags")
if $flags = $LLKHF_INJECTED then
   ToolTip("БОТ !!! Клацание по клаве", 0, 0, "Следим за клавой и мышью", $TIP_WARNINGICON, $TIP_FORCEVISIBLE)
Else
   ToolTip("Клацание по клаве", 0, 0, "Следим за клавой и мышью", $TIP_NOICON , $TIP_FORCEVISIBLE)
endif
return _WinAPI_CallNextHookEx($gHook, $nCode, $wParam, $lParam)
endfunc

func _MouseHandler($nCode, $wParam, $lParam)
if $nCode < 0 then
return _WinAPI_CallNextHookEx($gHookMouse, $nCode, $wParam, $lParam)
endIf

local $MouseHooks = DllStructCreate("LONG ; LONG ; DWORD; DWORD", $lParam)

LogWrite("_MouseHandler() - MouseCode = " & DllStructGetData($lParam, "flags"));
if DllStructGetData($MouseHooks, 4) <> 0 then   ; $flags = $LLMHF_LOWER_IL_INJECTED
   ToolTip("БОТ !!! Движение мыши", 0, 0, "Следим за клавой и мышью", $TIP_WARNINGICON, $TIP_FORCEVISIBLE)
Else
   ToolTip("Движение мыши", 0, 0, "Следим за клавой и мышью", $TIP_NOICON , $TIP_FORCEVISIBLE)
endif
return _WinAPI_CallNextHookEx($gHookMouse, $nCode, $wParam, $lParam)
endfunc

func InitKeyHooks($handler)
$keyHandler = DllCallbackRegister($handler, "long", _
"int;wparam;lparam")
local $hMod = _WinAPI_GetModuleHandle(0)
$gHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, _
DllCallbackGetPtr($keyHandler), $hMod)

endfunc

func InitMouseHooks($handler)
$MouseHandler = DllCallbackRegister($handler, "long", _
"int;wparam;lparam")
local $hMod = _WinAPI_GetModuleHandle(0)
$gHookMouse = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, _
DllCallbackGetPtr($MouseHandler), $hMod)

endfunc


HotKeySet("{Esc}", "close")
InitKeyHooks("_KeyHandler")
InitMouseHooks("_MouseHandler")
while true
Sleep(10)
wend

Func close()

   _WinAPI_UnhookWindowsHookEx($gHook)
    DllCallbackFree($keyHandler)

   _WinAPI_UnhookWindowsHookEx($gHookMouse)
    DllCallbackFree($MouseHandler)

   MsgBox(64, "", "EXIT")
   Exit
EndFunc

Сообщение автоматически объединено:

:help:
 
Последнее редактирование:
Верх