Znn3bq.jpeg
ÉÇÍ·´óѧº£Ñó¿ÆÑ§½ÓÊܵ÷¼Á
²é¿´: 337  |  »Ø¸´: 0
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

sdlj8051

½ð³æ (ÖøÃûдÊÖ)

[½»Á÷] [ת]Hook³õ²½

»ù±¾¸ÅÄî
¹³×Ó(Hook)£¬ÊÇWindowsÏûÏ¢´¦Àí»úÖÆµÄÒ»¸öƽ̨,Ó¦ÓóÌÐò¿ÉÒÔÔÚÉÏÃæÉèÖÃ×Ó³ÌÒÔ¼àÊÓÖ¸¶¨´°¿ÚµÄijÖÖÏûÏ¢£¬¶øÇÒËù¼àÊӵĴ°¿Ú¿ÉÒÔÊÇÆäËû½ø³ÌËù´´½¨µÄ¡£µ±ÏûÏ¢µ½´ïºó£¬ÔÚÄ¿±ê´°¿Ú´¦Àíº¯Êý֮ǰ´¦ÀíËü¡£¹³×Ó»úÖÆÔÊÐíÓ¦ÓóÌÐò½Ø»ñ´¦ÀíwindowÏûÏ¢»òÌØ¶¨Ê¼þ¡£

¹³×Óʵ¼ÊÉÏÊÇÒ»¸ö´¦ÀíÏûÏ¢µÄ³ÌÐò¶Î£¬Í¨¹ýϵͳµ÷Ó㬰ÑËü¹ÒÈëϵͳ¡£Ã¿µ±Ìض¨µÄÏûÏ¢·¢³ö£¬ÔÚûÓе½´ïÄ¿µÄ´°¿Úǰ£¬¹³×Ó³ÌÐò¾ÍÏȲ¶»ñ¸ÃÏûÏ¢£¬Ò༴¹³×Óº¯ÊýÏȵõ½¿Ø

ÖÆÈ¨¡£Õâʱ¹³×Óº¯Êý¼´¿ÉÒÔ¼Ó¹¤´¦Àí£¨¸Ä±ä£©¸ÃÏûÏ¢£¬Ò²¿ÉÒÔ²»×÷´¦Àí¶ø¼ÌÐø´«µÝ¸ÃÏûÏ¢£¬»¹¿ÉÒÔÇ¿ÖÆ½áÊøÏûÏ¢µÄ´«µÝ¡£


--------------------------------------------------------------------------------

ÔËÐлúÖÆ

1¡¢¹³×ÓÁ´±íºÍ¹³×Ó×ӳ̣º

ÿһ¸öHook¶¼ÓÐÒ»¸öÓëÖ®Ïà¹ØÁªµÄÖ¸ÕëÁÐ±í£¬³ÆÖ®Îª¹³×ÓÁ´±í£¬ÓÉϵͳÀ´Î¬»¤¡£Õâ¸öÁбíµÄÖ¸ÕëÖ¸ÏòÖ¸¶¨µÄ£¬Ó¦ÓóÌÐò¶¨ÒåµÄ£¬±»Hook×ӳ̵÷ÓõĻص÷º¯Êý£¬Ò²¾ÍÊǸù³×ӵĸ÷¸ö´¦Àí×ӳ̡£µ±ÓëÖ¸¶¨µÄHookÀàÐ͹ØÁªµÄÏûÏ¢·¢Éúʱ£¬ÏµÍ³¾Í°ÑÕâ¸öÏûÏ¢´«µÝµ½Hook×ӳ̡£Ò»Ð©Hook×ӳ̿ÉÒÔÖ»¼àÊÓÏûÏ¢£¬»òÕßÐÞ¸ÄÏûÏ¢£¬»òÕßÍ£Ö¹ÏûÏ¢µÄǰ½ø£¬±ÜÃâÕâЩÏûÏ¢´«µÝµ½ÏÂÒ»¸öHook×ӳ̻òÕßÄ¿µÄ´°¿Ú¡£×î½ü°²×°µÄ¹³×Ó·ÅÔÚÁ´µÄ¿ªÊ¼£¬¶ø×îÔç°²×°µÄ¹³×Ó·ÅÔÚ×îºó£¬Ò²¾ÍÊǺó¼ÓÈëµÄÏÈ»ñµÃ¿ØÖÆÈ¨¡£

Windows ²¢²»ÒªÇó¹³×Ó×ӳ̵ÄÐ¶ÔØË³ÐòÒ»¶¨µÃºÍ°²×°Ë³ÐòÏà·´¡£Ã¿µ±ÓÐÒ»¸ö¹³×Ó±»Ð¶ÔØ£¬Windows ±ãÊÍ·ÅÆäÕ¼ÓõÄÄڴ棬²¢¸üÐÂÕû¸öHookÁ´±í¡£Èç¹û³ÌÐò°²×°Á˹³×Ó£¬µ«ÊÇÔÚÉÐÎ´Ð¶ÔØ¹³×Ó֮ǰ¾Í½áÊøÁË£¬ÄÇôϵͳ»á×Ô¶¯ÎªËü×öÐ¶ÔØ¹³×ӵIJÙ×÷¡£

¹³×Ó×Ó³ÌÊÇÒ»¸öÓ¦ÓóÌÐò¶¨ÒåµÄ»Øµ÷º¯Êý(CALLBACK Function),²»Äܶ¨Òå³Éij¸öÀàµÄ³ÉÔ±º¯Êý£¬Ö»Äܶ¨ÒåΪÆÕͨµÄCº¯Êý¡£ÓÃÒÔ¼àÊÓϵͳ»òÄ³Ò»ÌØ¶¨ÀàÐ͵Äʼþ£¬ÕâЩʼþ¿ÉÒÔÊÇÓëÄ³Ò»ÌØ¶¨Ï̹߳ØÁªµÄ£¬Ò²¿ÉÒÔÊÇϵͳÖÐËùÓÐÏ̵߳Äʼþ¡£

¹³×Ó×ӳ̱ØÐë°´ÕÕÒÔϵÄÓï·¨£º

LRESULT CALLBACK HookProc
(
  int nCode,
      WPARAM wParam,
      LPARAM lParam
);

HookProcÊÇÓ¦ÓóÌÐò¶¨ÒåµÄÃû×Ö¡£

nCode²ÎÊýÊÇHook´úÂ룬Hook×Ó³ÌʹÓÃÕâ¸ö²ÎÊýÀ´È·¶¨ÈÎÎñ¡£Õâ¸ö²ÎÊýµÄÖµÒÀÀµÓÚHookÀàÐÍ£¬Ã¿Ò»ÖÖHook¶¼ÓÐ×Ô¼ºµÄHook´úÂëÌØÕ÷×Ö·û¼¯¡£

wParamºÍlParam²ÎÊýµÄÖµÒÀÀµÓÚHook´úÂ룬µ«ÊÇËüÃǵĵäÐÍÖµÊǰüº¬Á˹ØÓÚ·¢ËÍ»òÕß½ÓÊÕÏûÏ¢µÄÐÅÏ¢¡£

2¡¢¹³×ӵݲװÓëÊÍ·Å£º

ʹÓÃAPIº¯ÊýSetWindowsHookEx()°ÑÒ»¸öÓ¦ÓóÌÐò¶¨ÒåµÄ¹³×Ó×ӳ̰²×°µ½¹³×ÓÁ´±íÖС£SetWindowsHookExº¯Êý×ÜÊÇÔÚHookÁ´µÄ¿ªÍ·°²×°Hook×ӳ̡£µ±Ö¸¶¨ÀàÐ͵ÄHook¼àÊÓµÄʼþ·¢Éúʱ£¬ÏµÍ³¾Íµ÷ÓÃÓëÕâ¸öHook¹ØÁªµÄHookÁ´µÄ¿ªÍ·µÄHook×ӳ̡£Ã¿Ò»¸öHookÁ´ÖеÄHook×ӳ̶¼¾ö¶¨ÊÇ·ñ°ÑÕâ¸öʼþ´«µÝµ½ÏÂÒ»¸öHook×ӳ̡£Hook×ӳ̴«µÝʼþµ½ÏÂÒ»¸öHook×Ó³ÌÐèÒªµ÷ÓÃCallNextHookExº¯Êý¡£

HHOOK SetWindowsHookEx(
¡¡¡¡¡¡¡¡¡¡int idHook,      // ¹³×ÓµÄÀàÐÍ£¬¼´Ëü´¦ÀíµÄÏûÏ¢ÀàÐÍ
¡¡¡¡¡¡¡¡¡¡HOOKPROC lpfn,   // ¹³×Ó×ӳ̵ĵØÖ·Ö¸Õë¡£Èç¹ûdwThreadId²ÎÊýΪ0
      // »òÊÇÒ»¸öÓɱðµÄ½ø³Ì´´½¨µÄÏ̵߳ıêʶ£¬
      // lpfn±ØÐëÖ¸ÏòDLLÖеĹ³×Ó×ӳ̡£
      // ³ý´ËÒÔÍ⣬lpfn¿ÉÒÔÖ¸Ïòµ±Ç°½ø³ÌµÄÒ»¶Î¹³×Ó×ӳ̴úÂë¡£
      // ¹³×Óº¯ÊýµÄÈë¿ÚµØÖ·£¬µ±¹³×Ó¹³µ½ÈκÎÏûÏ¢ºó±ãµ÷ÓÃÕâ¸öº¯Êý¡£
¡¡¡¡¡¡¡¡¡¡HINSTANCE hMod,  // Ó¦ÓóÌÐòʵÀýµÄ¾ä±ú¡£±êʶ°üº¬lpfnËùÖ¸µÄ×ӳ̵Ä
DLL¡£
      // Èç¹ûdwThreadId ±êʶµ±Ç°½ø³Ì´´½¨µÄÒ»¸öỊ̈߳¬
      // ¶øÇÒ×ӳ̴úÂëλÓÚµ±Ç°½ø³Ì£¬hMod±ØÐëΪNULL¡£
      // ¿ÉÒԺܼòµ¥µÄÉ趨ÆäΪ±¾Ó¦ÓóÌÐòµÄʵÀý¾ä±ú¡£
¡¡¡¡¡¡¡¡¡¡DWORD dwThreadId // Óë°²×°µÄ¹³×Ó×Ó³ÌÏà¹ØÁªµÄÏ̵߳ıêʶ·û¡£
      // Èç¹ûΪ0£¬¹³×Ó×Ó³ÌÓëËùÓеÄÏ̹߳ØÁª£¬¼´ÎªÈ«¾Ö¹³×Ó¡£
¡¡¡¡¡¡¡¡¡¡            );

¡¡¡¡º¯Êý³É¹¦Ôò·µ»Ø¹³×Ó×ӳ̵ľä±ú£¬Ê§°Ü·µ»ØNULL¡£

¡¡¡¡ÒÔÉÏËù˵µÄ¹³×Ó×Ó³ÌÓëÏß³ÌÏà¹ØÁªÊÇÖ¸ÔÚÒ»¹³×ÓÁ´±íÖз¢¸ø¸ÃÏ̵߳ÄÏûϢͬʱ·¢Ë͸ø¹³×Ó×ӳ̣¬ÇÒ±»¹³×Ó×Ó³ÌÏÈ´¦Àí¡£

ÔÚ¹³×Ó×Ó³ÌÖе÷Óõõ½¿ØÖÆÈ¨µÄ¹³×Óº¯ÊýÔÚÍê³É¶ÔÏûÏ¢µÄ´¦Àíºó£¬Èç¹ûÏëÒª¸ÃÏûÏ¢¼ÌÐø´«µÝ£¬ÄÇôËü±ØÐëµ÷ÓÃÁíÍâÒ»¸öSDKÖеÄAPIº¯ÊýCallNextHookExÀ´´«µÝËü£¬ÒÔÖ´Ðй³×ÓÁ´±íËùÖ¸µÄÏÂÒ»¸ö¹³×Ó×ӳ̡£Õâ¸öº¯Êý³É¹¦Ê±·µ»Ø¹³×ÓÁ´ÖÐÏÂÒ»¸ö¹³×Ó¹ý³ÌµÄ·µ»ØÖµ£¬·µ»ØÖµµÄÀàÐÍÒÀÀµÓÚ¹³×ÓµÄÀàÐÍ¡£Õâ¸öº¯ÊýµÄÔ­ÐÍÈçÏ£º

LRESULT CallNextHookEx
   (
    HHOOK hhk;
    int nCode;
    WPARAM wParam;
    LPARAM lParam;
    );

hhkΪµ±Ç°¹³×ӵľä±ú£¬ÓÉSetWindowsHookEx()º¯Êý·µ»Ø¡£

NCodeΪ´«¸ø¹³×Ó¹ý³ÌµÄʼþ´úÂë¡£

wParamºÍlParam ·Ö±ðÊÇ´«¸ø¹³×Ó×ӳ̵ÄwParamÖµ£¬Æä¾ßÌ庬ÒåÓë¹³×ÓÀàÐÍÓйء£


¹³×Óº¯ÊýÒ²¿ÉÒÔͨ¹ýÖ±½Ó·µ»ØTRUEÀ´¶ªÆú¸ÃÏûÏ¢£¬²¢×èÖ¹¸ÃÏûÏ¢µÄ´«µÝ¡£·ñÔòµÄ»°£¬ÆäËû°²×°Á˹³×ÓµÄÓ¦ÓóÌÐò½«²»»á½ÓÊÕµ½¹³×ÓµÄ֪ͨ¶øÇÒ»¹ÓпÉÄܲúÉú²»ÕýÈ·µÄ½á¹û¡£

¹³×ÓÔÚʹÓÃÍêÖ®ºóÐèÒªÓÃUnHookWindowsHookEx()Ð¶ÔØ£¬·ñÔò»áÔì³ÉÂé·³¡£Êͷʳ×ӱȽϼòµ¥£¬UnHookWindowsHookEx()Ö»ÓÐÒ»¸ö²ÎÊý¡£º¯ÊýÔ­ÐÍÈçÏ£º

UnHookWindowsHookEx
(
HHOOK hhk;
);

º¯Êý³É¹¦·µ»ØTRUE£¬·ñÔò·µ»ØFALSE¡£

3¡¢Ò»Ð©ÔËÐлúÖÆ£º

ÔÚWin16»·¾³ÖУ¬DLLµÄÈ«¾ÖÊý¾Ý¶Ôÿ¸öÔØÈëËüµÄ½ø³ÌÀ´Ëµ¶¼ÊÇÏàͬµÄ£»¶øÔÚWin32»·¾³ÖУ¬Çé¿öÈ´·¢ÉúÁ˱仯£¬DLLº¯ÊýÖеĴúÂëËù´´½¨µÄÈκζÔÏ󣨰üÀ¨±äÁ¿£©¶¼¹éµ÷ÓÃËüµÄÏ̻߳ò½ø³ÌËùÓС£µ±½ø³ÌÔÚÔØÈëDLLʱ£¬²Ù×÷ϵͳ×Ô¶¯°ÑDLLµØÖ·Ó³Éäµ½¸Ã½ø³ÌµÄ˽Óпռ䣬Ҳ¾ÍÊǽø³ÌµÄÐéÄâµØÖ·¿Õ¼ä£¬¶øÇÒÒ²¸´ÖƸÃDLLµÄÈ«¾ÖÊý¾ÝµÄÒ»·Ý¿½±´µ½¸Ã½ø³Ì¿Õ¼ä¡£Ò²¾ÍÊÇ˵ÿ¸ö½ø³ÌËùÓµÓеÄÏàͬµÄDLLµÄÈ«¾ÖÊý¾Ý£¬ËüÃǵÄÃû³ÆÏàͬ£¬µ«Æäֵȴ²¢²»Ò»¶¨ÊÇÏàͬµÄ£¬¶øÇÒÊÇ»¥²»¸ÉÉæµÄ¡£


Òò´Ë£¬ÔÚWin32»·¾³ÏÂÒªÏëÔÚ¶à¸ö½ø³ÌÖй²ÏíÊý¾Ý£¬¾Í±ØÐë½øÐбØÒªµÄÉèÖá£ÔÚ·ÃÎÊͬһ¸öDllµÄ¸÷½ø³ÌÖ®¼ä¹²Ïí´æ´¢Æ÷ÊÇͨ¹ý´æ´¢Æ÷Ó³ÉäÎļþ¼¼ÊõʵÏֵġ£Ò²¿ÉÒÔ°ÑÕâЩÐèÒª¹²ÏíµÄÊý¾Ý·ÖÀë³öÀ´£¬·ÅÖÃÔÚÒ»¸ö¶ÀÁ¢µÄÊý¾Ý¶ÎÀ²¢°Ñ¸Ã¶ÎµÄÊôÐÔÉèÖÃΪ¹²Ïí¡£±ØÐë¸øÕâЩ±äÁ¿¸³³õÖµ£¬·ñÔò±àÒëÆ÷»á°ÑûÓи³³õʼֵµÄ±äÁ¿·ÅÔÚÒ»¸ö½Ðδ±»³õʼ»¯µÄÊý¾Ý¶ÎÖС£

#pragma data_segÔ¤´¦ÀíÖ¸ÁîÓÃÓÚÉèÖù²ÏíÊý¾Ý¶Î¡£ÀýÈ磺

#pragma data_seg("SharedDataName"
HHOOK hHook=NULL;
#pragma data_seg()

ÔÚ#pragma data_seg("SharedDataName"ºÍ#pragma data_seg()Ö®¼äµÄËùÓбäÁ¿½«±»·ÃÎʸÃDllµÄËùÓнø³Ì¿´µ½ºÍ¹²Ïí¡£ÔÙ¼ÓÉÏÒ»ÌõÖ¸Áî#pragma comment(linker,"/section:.SharedDataName,rws",ÄÇôÕâ¸öÊý¾Ý½ÚÖеÄÊý¾Ý¿ÉÒÔÔÚËùÓÐDLLµÄʵÀýÖ®¼ä¹²Ïí¡£ËùÓжÔÕâЩÊý¾ÝµÄ²Ù×÷¶¼Õë¶Ôͬһ¸öʵÀýµÄ£¬¶ø²»ÊÇÔÚÿ¸ö½ø³ÌµÄµØÖ·¿Õ¼äÖж¼ÓÐÒ»·Ý¡£

µ±½ø³ÌÒþʽ»òÏÔʽµ÷ÓÃÒ»¸ö¶¯Ì¬¿âÀïµÄº¯Êýʱ£¬ÏµÍ³¶¼Òª°ÑÕâ¸ö¶¯Ì¬¿âÓ³Éäµ½Õâ¸ö½ø³ÌµÄÐéÄâµØÖ·¿Õ¼äÀï(ÒÔϼò³Æ"µØÖ·¿Õ¼ä"¡£ÕâʹµÃDLL³ÉΪ½ø³ÌµÄÒ»²¿·Ö£¬ÒÔÕâ¸ö½ø³ÌµÄÉí·ÝÖ´ÐУ¬Ê¹ÓÃÕâ¸ö½ø³ÌµÄ¶ÑÕ»¡£

4¡¢ÏµÍ³¹³×ÓÓëÏ̹߳³×Ó£º

SetWindowsHookEx()º¯ÊýµÄ×îºóÒ»¸ö²ÎÊý¾ö¶¨Á˴˹³×ÓÊÇϵͳ¹³×Ó»¹ÊÇÏ̹߳³×Ó¡£


Ï̹߳´×ÓÓÃÓÚ¼àÊÓÖ¸¶¨Ï̵߳ÄʼþÏûÏ¢¡£Ï̹߳´×ÓÒ»°ãÔÚµ±Ç°Ï̻߳òÕßµ±Ç°Ïß³ÌÅÉÉúµÄÏß³ÌÄÚ¡£


ϵͳ¹´×Ó¼àÊÓϵͳÖеÄËùÓÐÏ̵߳ÄʼþÏûÏ¢¡£ÒòΪϵͳ¹´×Ó»áÓ°ÏìϵͳÖÐËùÓеÄÓ¦ÓóÌÐò£¬ËùÒÔ¹´×Óº¯Êý±ØÐë·ÅÔÚ¶ÀÁ¢µÄ¶¯Ì¬Á´½Ó¿â(DLL) ÖС£ÏµÍ³×Ô¶¯½«°üº¬"¹³×ӻص÷º¯Êý"µÄDLLÓ³Éäµ½Êܹ³×Óº¯ÊýÓ°ÏìµÄËùÓнø³ÌµÄµØÖ·¿Õ¼äÖУ¬¼´½«Õâ¸öDLL×¢ÈëÁËÄÇЩ½ø³Ì¡£

¼¸µã˵Ã÷£º

£¨1£©Èç¹û¶ÔÓÚͬһʼþ£¨ÈçÊó±êÏûÏ¢£©¼È°²×°ÁËÏ̹߳´×ÓÓÖ°²×°ÁËϵͳ¹´×Ó£¬ÄÇôϵͳ»á×Ô¶¯Ïȵ÷ÓÃÏ̹߳´×Ó£¬È»ºóµ÷ÓÃϵͳ¹´×Ó¡£

£¨2£©¶ÔͬһʼþÏûÏ¢¿É°²×°¶à¸ö¹´×Ó´¦Àí¹ý³Ì£¬ÕâЩ¹´×Ó´¦Àí¹ý³ÌÐγÉÁ˹´×ÓÁ´¡£µ±Ç°¹´×Ó´¦Àí½áÊøºóÓ¦°Ñ¹´×ÓÐÅÏ¢´«µÝ¸øÏÂÒ»¸ö¹´×Óº¯Êý¡£

£¨3£©¹´×ÓÌØ±ðÊÇϵͳ¹´×Ó»áÏûºÄÏûÏ¢´¦Àíʱ¼ä£¬½µµÍϵͳÐÔÄÜ¡£Ö»ÓÐÔÚ±ØÒªµÄʱºò²Å°²×°¹´×Ó£¬ÔÚʹÓÃÍê±ÏºóÒª¼°Ê±Ð¶ÔØ¡£


--------------------------------------------------------------------------------

¹³×ÓÀàÐÍ

ÿһÖÖÀàÐ͵ÄHook¿ÉÒÔʹӦÓóÌÐòÄܹ»¼àÊÓ²»Í¬ÀàÐ͵ÄϵͳÏûÏ¢´¦Àí»úÖÆ¡£ÏÂÃæÃèÊöËùÓпÉÒÔÀûÓõÄHookÀàÐÍ¡£

1¡¢WH_CALLWNDPROCºÍWH_CALLWNDPROCRET Hooks

WH_CALLWNDPROCºÍWH_CALLWNDPROCRET HooksʹÄã¿ÉÒÔ¼àÊÓ·¢Ë͵½´°¿Ú¹ý³ÌµÄÏûÏ¢¡£ÏµÍ³ÔÚÏûÏ¢·¢Ë͵½½ÓÊÕ´°¿Ú¹ý³Ì֮ǰµ÷ÓÃWH_CALLWNDPROC Hook×ӳ̣¬²¢ÇÒÔÚ´°¿Ú¹ý³Ì´¦ÀíÍêÏûÏ¢Ö®ºóµ÷ÓÃWH_CALLWNDPROCRET Hook×ӳ̡£

WH_CALLWNDPROCRET Hook´«µÝÖ¸Õëµ½CWPRETSTRUCT½á¹¹£¬ÔÙ´«µÝµ½Hook×ӳ̡£

CWPRETSTRUCT½á¹¹°üº¬ÁËÀ´×Ô´¦ÀíÏûÏ¢µÄ´°¿Ú¹ý³ÌµÄ·µ»ØÖµ£¬Í¬ÑùÒ²°üÀ¨ÁËÓëÕâ¸öÏûÏ¢¹ØÁªµÄÏûÏ¢²ÎÊý¡£

2¡¢WH_CBT Hook

ÔÚÒÔÏÂʼþ֮ǰ£¬ÏµÍ³¶¼»áµ÷ÓÃWH_CBT Hook×ӳ̣¬ÕâЩʼþ°üÀ¨£º

1. ¼¤»î£¬½¨Á¢£¬Ïú»Ù£¬×îС»¯£¬×î´ó»¯£¬Òƶ¯£¬¸Ä±ä³ß´çµÈ´°¿Úʼþ£»

2. Íê³ÉϵͳָÁ

3. À´×ÔϵͳÏûÏ¢¶ÓÁÐÖеÄÒÆ¶¯Êó±ê£¬¼üÅÌʼþ£»

4. ÉèÖÃÊäÈë½¹µãʼþ£»

5. ͬ²½ÏµÍ³ÏûÏ¢¶ÓÁÐʼþ¡£


Hook×ӳ̵ķµ»ØÖµÈ·¶¨ÏµÍ³ÊÇ·ñÔÊÐí»òÕß·ÀÖ¹ÕâЩ²Ù×÷ÖеÄÒ»¸ö¡£

3¡¢WH_DEBUG Hook

ÔÚϵͳµ÷ÓÃϵͳÖÐÓëÆäËûHook¹ØÁªµÄHook×Ó³Ì֮ǰ£¬ÏµÍ³»áµ÷ÓÃWH_DEBUG Hook×ӳ̡£Äã¿ÉÒÔʹÓÃÕâ¸öHookÀ´¾ö¶¨ÊÇ·ñÔÊÐíϵͳµ÷ÓÃÓëÆäËûHook¹ØÁªµÄHook×ӳ̡£

4¡¢WH_FOREGROUNDIDLE Hook

µ±Ó¦ÓóÌÐòµÄǰ̨Ï̴߳¦ÓÚ¿ÕÏÐ״̬ʱ£¬¿ÉÒÔʹÓÃWH_FOREGROUNDIDLE HookÖ´ÐеÍÓÅÏȼ¶µÄÈÎÎñ¡£µ±Ó¦ÓóÌÐòµÄǰ̨Ï̴߳ó¸ÅÒª±ä³É¿ÕÏÐ״̬ʱ£¬ÏµÍ³¾Í»áµ÷ÓÃWH_FOREGROUNDIDLE Hook×ӳ̡£

5¡¢WH_GETMESSAGE Hook

Ó¦ÓóÌÐòʹÓÃWH_GETMESSAGE HookÀ´¼àÊÓ´ÓGetMessage or PeekMessageº¯Êý·µ»ØµÄÏûÏ¢¡£Äã¿ÉÒÔʹÓÃWH_GETMESSAGE HookÈ¥¼àÊÓÊó±êºÍ¼üÅÌÊäÈ룬ÒÔ¼°ÆäËû·¢Ë͵½ÏûÏ¢¶ÓÁÐÖеÄÏûÏ¢¡£

6¡¢WH_JOURNALPLAYBACK Hook

WH_JOURNALPLAYBACK HookʹӦÓóÌÐò¿ÉÒÔ²åÈëÏûÏ¢µ½ÏµÍ³ÏûÏ¢¶ÓÁС£¿ÉÒÔʹÓÃÕâ¸öHook»Ø·Åͨ¹ýʹÓÃWH_JOURNALRECORD Hook¼Ç¼ÏÂÀ´µÄÁ¬ÐøµÄÊó±êºÍ¼üÅÌʼþ¡£Ö»ÒªWH_JOURNALPLAYBACK HookÒѾ­°²×°£¬Õý³£µÄÊó±êºÍ¼üÅÌʼþ¾ÍÊÇÎÞЧµÄ¡£

WH_JOURNALPLAYBACK HookÊÇÈ«¾ÖHook£¬Ëü²»ÄÜÏóÏß³ÌÌØ¶¨HookÒ»ÑùʹÓá£

WH_JOURNALPLAYBACK Hook·µ»Ø³¬Ê±Öµ£¬Õâ¸öÖµ¸æËßϵͳÔÚ´¦ÀíÀ´×ԻطÅHookµ±Ç°ÏûϢ֮ǰÐèÒªµÈ´ý¶à³¤Ê±¼ä£¨ºÁÃ룩¡£Õâ¾ÍʹHook¿ÉÒÔ¿ØÖÆÊµÊ±Ê¼þµÄ»Ø·Å¡£

WH_JOURNALPLAYBACKÊÇsystem-wide local hooks£¬Ëü‚ƒ²»•þ±»×¢Éäµ½ÈκÎÐгÌλַ¿Õég¡£

7¡¢WH_JOURNALRECORD Hook

WH_JOURNALRECORD HookÓÃÀ´¼àÊӺͼǼÊäÈëʼþ¡£µäÐ͵ģ¬¿ÉÒÔʹÓÃÕâ¸öHook¼Ç¼Á¬ÐøµÄÊó±êºÍ¼üÅÌʼþ£¬È»ºóͨ¹ýʹÓÃWH_JOURNALPLAYBACK HookÀ´»Ø·Å¡£

WH_JOURNALRECORD HookÊÇÈ«¾ÖHook£¬Ëü²»ÄÜÏóÏß³ÌÌØ¶¨HookÒ»ÑùʹÓá£

WH_JOURNALRECORDÊÇsystem-wide local hooks£¬Ëü‚ƒ²»•þ±»×¢Éäµ½ÈκÎÐгÌλַ¿Õég¡£

8¡¢WH_KEYBOARD Hook

ÔÚÓ¦ÓóÌÐòÖУ¬WH_KEYBOARD HookÓÃÀ´¼àÊÓWM_KEYDOWN and WM_KEYUPÏûÏ¢£¬ÕâЩÏûϢͨ¹ýGetMessage or PeekMessage function·µ»Ø¡£¿ÉÒÔʹÓÃÕâ¸öHookÀ´¼àÊÓÊäÈëµ½ÏûÏ¢¶ÓÁÐÖеļüÅÌÏûÏ¢¡£

9¡¢WH_KEYBOARD_LL Hook

WH_KEYBOARD_LL Hook¼àÊÓÊäÈëµ½Ïß³ÌÏûÏ¢¶ÓÁÐÖеļüÅÌÏûÏ¢¡£

10¡¢WH_MOUSE Hook

WH_MOUSE Hook¼àÊÓ´ÓGetMessage »òÕß PeekMessage º¯Êý·µ»ØµÄÊó±êÏûÏ¢¡£Ê¹ÓÃÕâ¸öHook¼àÊÓÊäÈëµ½ÏûÏ¢¶ÓÁÐÖеÄÊó±êÏûÏ¢¡£

11¡¢WH_MOUSE_LL Hook

WH_MOUSE_LL Hook¼àÊÓÊäÈëµ½Ïß³ÌÏûÏ¢¶ÓÁÐÖеÄÊó±êÏûÏ¢¡£

12¡¢WH_MSGFILTER ºÍ WH_SYSMSGFILTER Hooks

WH_MSGFILTER ºÍ WH_SYSMSGFILTER HooksʹÎÒÃÇ¿ÉÒÔ¼àÊӲ˵¥£¬¹ö¶¯Ìõ£¬ÏûÏ¢¿ò£¬¶Ô»°¿òÏûÏ¢²¢ÇÒ·¢ÏÖÓû§Ê¹ÓÃALT+TAB or ALT+ESC ×éºÏ¼üÇл»´°¿Ú¡£WH_MSGFILTER HookÖ»ÄܼàÊÓ´«µÝµ½²Ëµ¥£¬¹ö¶¯Ìõ£¬ÏûÏ¢¿òµÄÏûÏ¢£¬ÒÔ¼°´«µÝµ½Í¨¹ý°²×°ÁËHook×ӳ̵ÄÓ¦ÓóÌÐò½¨Á¢µÄ¶Ô»°¿òµÄÏûÏ¢¡£WH_SYSMSGFILTER Hook¼àÊÓËùÓÐÓ¦ÓóÌÐòÏûÏ¢¡£


WH_MSGFILTER ºÍ WH_SYSMSGFILTER HooksʹÎÒÃÇ¿ÉÒÔÔÚģʽѭ»·ÆÚ¼ä¹ýÂËÏûÏ¢£¬ÕâµÈ¼ÛÓÚÔÚÖ÷ÏûϢѭ»·ÖйýÂËÏûÏ¢¡£


ͨ¹ýµ÷ÓÃCallMsgFilter function¿ÉÒÔÖ±½ÓµÄµ÷ÓÃWH_MSGFILTER Hook¡£Í¨¹ýʹÓÃÕâ¸öº¯Êý£¬Ó¦ÓóÌÐòÄܹ»ÔÚģʽѭ»·ÆÚ¼äʹÓÃÏàͬµÄ´úÂëÈ¥¹ýÂËÏûÏ¢£¬ÈçͬÔÚÖ÷ÏûϢѭ»·ÀïÒ»Ñù¡£

13¡¢WH_SHELL Hook

Íâ¿ÇÓ¦ÓóÌÐò¿ÉÒÔʹÓÃWH_SHELL HookÈ¥½ÓÊÕÖØÒªµÄ֪ͨ¡£µ±Íâ¿ÇÓ¦ÓóÌÐòÊǼ¤»îµÄ²¢ÇÒµ±¶¥²ã´°¿Ú½¨Á¢»òÕßÏú»Ùʱ£¬ÏµÍ³µ÷ÓÃWH_SHELL Hook×ӳ̡£

WH_SHELL ¹²ÓУµÖÓÇé›r£º

1. Ö»ÒªÓиötop-level¡¢unowned ´°¿Ú±»²úÉú¡¢Æð×÷ÓᢻòÊDZ»´Ý»Ù£»

2. µ±TaskbarÐèÒªÖØ»­Ä³¸ö°´Å¥£»

3. µ±ÏµÍ³ÐèÒªÏÔʾ¹ØÓÚTaskbarµÄÒ»¸ö³ÌÐòµÄ×îС»¯ÐÎʽ£»

4. µ±Ä¿Ç°µÄ¼üÅ̲¼¾Ö״̬¸Ä±ä£»

5. µ±Ê¹ÓÃÕß°´Ctrl+EscÈ¥Ö´ÐÐTask Manager£¨»òÏàͬ¼¶±ðµÄ³ÌÐò£©¡£

°´ÕÕ¹ßÀý£¬Íâ¿ÇÓ¦ÓóÌÐò¶¼²»½ÓÊÕWH_SHELLÏûÏ¢¡£ËùÒÔ£¬ÔÚÓ¦ÓóÌÐòÄܹ»½ÓÊÕWH_SHELLÏûϢ֮ǰ£¬Ó¦ÓóÌÐò±ØÐëµ÷ÓÃSystemParametersInfo function×¢²áËü×Ô¼º¡£
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ sdlj8051 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 327Çóµ÷¼Á +12 Xxjc1107. 2026-04-13 12/600 2026-04-13 18:13 by YeluoFYS
[¿¼ÑÐ] 310Çóµ÷¼Á +14 666ÕæºÃ 2026-04-11 16/800 2026-04-13 16:44 by 89436494
[¿¼ÑÐ] 293Çóµ÷¼Á +15 ÎÒ°®¸ßÊý¸ßÊý°®Î 2026-04-12 16/800 2026-04-13 11:56 by 414435937
[¿¼ÑÐ] Çóµ÷¼Á£¬985²ÄÁÏÓ뻯¹¤348·Ö +9 º­ÖñÁõ 2026-04-11 13/650 2026-04-12 22:40 by º­ÖñÁõ
[¿¼ÑÐ] 295·ÖÇóµ÷¼Á +13 ?ÒªÉϰ¶? 2026-04-10 13/650 2026-04-12 15:37 by laoshidan
[¿¼ÑÐ] µçÆø×¨Ë¶320Çóµ÷¼Á +6 СÂé×Ó111 2026-04-10 6/300 2026-04-12 10:54 by lemon6009
[¿¼ÑÐ] 291Çóµ÷¼Á +11 ¹ØÒä±±. 2026-04-09 12/600 2026-04-12 10:32 by ÄæË®³Ë·ç
[¿¼ÑÐ] 280Çóµ÷¼Á +7 ÙâÙâÒ¹Ò¹ 2026-04-09 10/500 2026-04-12 00:33 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 22408µ÷¼Á315·Ö +3 zhuangyan123 2026-04-09 3/150 2026-04-12 00:25 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Çóµ÷¼Á +10 Á§ÜÔÒ»¶¨Éϰ¶ 2026-04-10 10/500 2026-04-11 13:31 by 1005715100
[¿¼ÑÐ] 275Çóµ÷¼Á +9 1624447980 2026-04-08 10/500 2026-04-11 10:20 by Delta2012
[¿¼ÑÐ] 0854µ÷¼Á +8 950824he@ 2026-04-09 8/400 2026-04-11 10:11 by zhq0425
[¿¼ÑÐ] Ò»Ö¾Ô¸211£¬»¯Ñ§Ñ§Ë¶£¬310·Ö£¬±¾¿ÆÖصãË«·Ç£¬Çóµ÷¼Á +17 ŬÁ¦·Ü¶·112 2026-04-06 20/1000 2026-04-11 00:31 by wangjihu
[¿¼ÑÐ] µ÷¼Á »¯Ñ§ 307 +21 73372112 2026-04-09 23/1150 2026-04-10 23:53 by wj165256
[¿¼ÑÐ] Çóµ÷¼Á ²ÄÁÏÓ빤³Ì 324·Ö ר˶ +19 ôæôæÒ»ÊéÉú 2026-04-10 21/1050 2026-04-10 11:41 by wp06
[¿¼ÑÐ] 367Çóµ÷¼Á +10 hffQAQ 2026-04-09 10/500 2026-04-09 18:06 by lijunpoly
[¿¼ÑÐ] »úе¹¤³Ì313·ÖÕÒ¹¤¿Æµ÷¼Á +3 ˫һÁ÷±¾¿Æ»úе 2026-04-08 3/150 2026-04-08 20:41 by ÍÁľ˶ʿÕÐÉú
[¿¼ÑÐ] Ò»Ö¾Ô¸¼ª´ó»¯Ñ§327Çóµ÷¼Á +12 ÍõÍõ°×ʯ 2026-04-06 13/650 2026-04-08 16:05 by luoyongfeng
[¿¼ÑÐ] Ò»Ö¾Ô¸211£¬»¯Ñ§Ñ§Ë¶£¬310·Ö£¬±¾¿ÆÖصãË«·Ç£¬Çóµ÷¼Á +10 ŬÁ¦·Ü¶·112 2026-04-07 10/500 2026-04-08 15:01 by screening
[¿¼ÑÐ] 318Çóµ÷¼Á +5 ÀîÇàɽɽɽ 2026-04-07 5/250 2026-04-07 18:24 by À¶ÔÆË¼Óê
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û