逆向學習-Windows消息鉤取
阿新 • • 發佈:2019-04-30
截取 取出 RoCE del ssa spy++ 信息 鍵盤 sta
鉤子
Hook,就是鉤子。偷看或截取信息時所用的手段或工具。
消息鉤子
常規Windows流:
1.發生鍵盤輸入事件時,WM_KEYDOWN消息被添加到【OS message queue】。
2.OS判斷哪個應用程序中發生了事件,然後從【OS message queue】取出消息,添加到相應應用程序的【application message queue】中。
3.應用程序監視自身的【application message queue】,發現新添加的WM_KEYDOWN消息後,調用相應的事件處理程序處理。
設置鉤子,可以在應用程序之前就能收到消息。並可以修改,攔截。
最具代表性的是MS Visual Studio中提供的SPY++。
SetWindowsHookEx()
HHOOK SetWindowsHookExW(
int idHook, //hook type
HOOKPROC lpfn, //hook procedure 鉤子過程,是由操作系統調用的回調函數。
HINSTANCE hmod, //hook procedure所屬的DLL句柄(Handle) 鉤子 過程需要存在於某個DLL內部,該DLL的實例句柄(instance handle)即是hMod。
DWORD dwThreadId //想要掛鉤的線程ID 若被設置為0,則為全局鉤子。會影響運行中的所有進程。
);
逆向學習-Windows消息鉤取