1. 程式人生 > >逆向學習-Windows消息鉤取

逆向學習-Windows消息鉤取

截取 取出 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消息鉤取