滑鼠鉤子WH MOUSE LL

2021-07-29 17:09:06 字數 1104 閱讀 8161

一、滑鼠鉤子型別有兩個,乙個是wh_mouse,另乙個是wh_mouse_ll,其中wh_mouse只能監控鉤子所在模組的滑鼠事件,而wh_mouse_ll可以截獲整個系統所有模組的滑鼠事件。

因為我們要獲取整個系統的滑鼠事件,所以我們用wh_mouse_ll,並用win32彙編編寫,其中介面和思路參考了

二、滑鼠鉤子只能存在dll中,所以我們需要建立乙個dll檔案,用於安裝鉤子和解除安裝鉤子,並把滑鼠資訊傳送給主程式,下面是dll檔案部分**,有鉤子的安裝

installhook proc _hwnd,_dwmessage

push _hwnd

pop hwnd;儲存主程式的視窗控制代碼

push _dwmessage

pop dwmessage;儲存要傳送給主程式的訊息型別

invoke setwindowshookex,wh_mouse_ll,\

addr hookproc,hinstance,null

mov hhook,eax

retinstallhook endp

鉤子解除安裝

uninstallhook

proc

invoke unhookwindowshookex,hhook

retuninstallhook endp

鉤子處理過程比較簡單,直接傳送自定義的訊息給主程式

hookproc    proc _dwcode,_wparam,_lparam

local

@szkeystate[256]:byte

invoke callnexthookex,hhook,_dwcode,\

_wparam,_lparam

invoke sendmessage,hwnd,dwmessage,\

_wparam,_lparam

xor eax,eax

rethookproc endp

三、主程式採用動態裝入dll方式載入生成的dll檔案,並在視窗過程處理收到滑鼠資訊,用列表控制項顯示收到的wparam,lparam值,滑鼠訊息、滑鼠座標

VB 全域性鍵盤 滑鼠鉤子

if code hc action then copymemory mousemsg,lparam,lenb mousemsg form1.txtmsg 1 text x str mousemsg.x y str mousemsg.y form1.txthwnd 1 format wparam,0 ...

c 滑鼠鉤子全解

using system.runtime.interopservices 呼叫作業系統動態鏈結庫 using system.diagnostics using system.windows.forms namespace util if hook null hook.uninstallhook pu...

Hook入門之滑鼠鉤子

之前有一次吃飯的時候,聽前輩聊到猜想某某輸入法的鉤子,導致了我們軟體crash了,問使用者是不是用的某某輸入法。當時就比較好奇鉤子是啥。22章 dll注入和 api攔截 參考網上獲得的滑鼠鉤子的源 解析和學習一下做乙個簡單的滑鼠鉤子的流程和步驟,以及涉及到的知識。1 首先,新建dll模組,在 dll...