Professional Documents
Culture Documents
19 Hook
19 Hook
Ni dung
Lp trnh s kin Gii thiu k thut Hook Minh ha cch lp trnh Hook
Spring 2004
Lp trnh s kin
Spring 2004
Hook l g ? Mc tiu ca Hook ? Cc loi Hook Th tc Hook (Hook procedure) Chui Hook (Hook chain)
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 4
Hook l mt c ch trong lp trnh s kin, cho php ng dng c th ci t mt hm gim st vo qu trnh lu chuyn cc thng ip ng dng c th chn v x l cc thng ip trc khi n n c ca s/ng dng ch
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 5
Spring 2004
C 2 cch ci t Hook:
Ci t cc b (Thread Hook): hm gim st c ci vo sau Thread message Queue c tc dng gim st tt c cc thng ip trong mt tiu trnh hay mt ng dng c th Ci t ton cc (Global Hook): hm gim st c ci vo sau Systemd message Queue c tc dng gim st tt c cc thng ip trong ton h thng
Gim st bn phm: cc ng dng g ting Vit, iu khin thit b bng bn phm, Gim st mouse: Clickn See Theo di vic s dng cc ng dng, Capture screen ng dng dy hc bng my tnh (CBT Computer-based Training)
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 8
Gii thiu k thut Hook Cc loi Hook ? WH_KEYBOARD: Hook gim st thng ip t bn phm: WM_KEYDOWN, WM_KEYUP WH_MOUSE: Hook gim st thng ip t chut WH_GETMESSAGE: Hook gim st thng ip chung (keyboard, mouse, hay cc message khc) WH_CBT: Windows gi hm hook CBT trc khi to lp (create), kch hot (active), hy (destroy), minimize, maximize, di chuyn (move), thay i kch thc (size), ca ca s giao din
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 9
WH_JOURNALPLAYBACK: cho php a message vo System message queue s dng gi lp hay thc hin li 1 dy cc message ca bn phm hay mouse (playback). y l mt Global Hook WH_JOURNALRECORD: gim st v ghi nhn li (record) cc thng ip t chut v bn phm. y l mt Global Hook
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 10
Th tc Hook: l hm dng gim st cc thng ip m ng dng ci vo h thng Dng chung ca Hook Procudure: LRESULT CALLBACK HookProc( int nCode, WPARAM wParam, LPARAM lParam);
nCode: xc nh hnh ng cn x l. Gi tr ca nCode ty thuc loi Hook wParam, lParam: cha thng tin ca message
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 11
Mi loi Hook cn c cch x l khc nhau khi xy dng Hook Procedure C th ci t nhiu Hook Procedure bng cch dng hm SetWindowsHook hay SetWindowsHookEx Hook Procedure ci sau s lun nm v tr u tin trong dy th tc Hook
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 12
Chui Hook: l mt dy cc th tc Hook c lin kt theo th t u tin thc hin gim dn HH Windows qun l cc chui Hook ring bit cho tng loi Hook Khi c 1 message xy ra, Windows s gi message n th tc Hook u tin trong chui Hook c loi tng ng message s c chuyn ln lt n cc th tc Hook k tip sau
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 13
S Hook Chain
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 14
Cc hm thao tc vi Hook Ci t th tc Hook V d th tc Hook Chuyn message cho th tc Hook k tip Hy b ci t Hook
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 15
Spring 2004
16
Minh ha cch lp trnh Hook - Ci t th tc Hook Mt ng dng cn phi thc hin vic Ci t th tc Hook khi mun gim st message Hm SetWindowsHookEx s ci t th tc Hook vo im bt u ca chui Hook HHOOK SetWindowsHookEx( int hookMsg, HOOKPROC hookProc, HINSTANCE hIns, DWORD threadId);
hookMsg: loi Hook hookProc: con tr n th tc Hook. Trng hp Global Hook, th tc Hook phi lu trong DLL; vi Thread Hook, th tc Hook c th cha trong chnh thread tng ng hIns: handle ca module cha th tc Hook threadId: ID ca thread. Nu l 0, Hook s l Global
C4W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 17
Sau khi thc hin xong, th tc Hook s gi hm CallNextHookEx chuyn message n th tc Hook k tip trong chui Hook LRESULT CallNextHookEx( HHOOK hHook, int code, WPARAM wParam, LPARAM lParam);
hHook: handle ca Hook (hin hnh) nhn v t hm SetWindowsHookEx code, wParam, lParam: cc gi tr ca th tc Hook hin ti truyn cho th tc Hook k tip trong chui Hook
Spring 2004
20
Th tc Hook c th khng chuyn thng ip n th tc Hook k tip trong chui Hook Lu : vic khng chuyn message c th gy ra li nghim trng cho h thng
Spring 2004
21
S dng k thut Hook s lm gim kh nng thc thi ca h thng Do , khi khng s dng Hook na nn hy b Hook khi h thng BOOL UnhookWindowsHooks( HHOOK hHook);
hHook: handle ca hook cn hy b
Spring 2004
22
Cm n - Hi & p
Spring 2004
23