¿ìËÙÒµÎñͨµÀ

Win32½á¹¹»¯Òì³£´¦Àí£¨SEH£©Ì½ÃØ(ÉÏ)

×÷Õß ØýÃû¼¼Êõ À´Ô´ ³ÌÐòÉè¼Æ ä¯ÀÀ ·¢²¼Ê±¼ä 2012-06-29
EXCEPTION_REGISTRATION ½á¹¹Á´±íÖÐ µÄij¸öµØ·½ÕÒµ½Ò»¸öÒì³£´¦Àí³ÌÐò¡£Èç¹ûÕÒ²»µ½Ôõô°ìÄØ£¿Êµ¼ÊÉÏ£¬Õ⼸ºõ²»¿ÉÄÜ·¢Éú¡£ÒòΪ²Ù×÷ϵͳ°µÖÐÒѾ­ÎªÃ¿¸öÏ̶߳¼ÌṩÁËÒ»¸öĬÈϵÄÒì³£´¦Àí³ÌÐò¡£Õâ¸öĬÈϵÄÒì³£´¦Àí³ÌÐò×ÜÊÇÁ´±íµÄ×îºóÒ»¸ö½áµã£¬²¢ÇÒËü×ÜÊÇÑ¡Ôñ´¦ÀíÒì³£¡£Ëü½øÐеIJÙ×÷ÓëÆäËüÕý³£µÄÒì³£´¦Àí»Øµ÷º¯ÊýÓÐЩ²»Í¬£¬ÏÂÃæÎÒ»á˵Ã÷¡£

ÈÃÎÒÃÇÀ´¿´Ò»ÏÂϵͳÊÇÔÚʲôʱºò²åÈëÁËÕâ¸öĬÈϵġ¢×îºóÒ»¸öÒì³£´¦Àí³ÌÐò¡£ºÜÃ÷ÏÔËüÐèÒªÔÚÏß³ÌÖ´ÐеÄÔçÆÚ£¬ÔÚÈκÎÓû§´úÂ뿪ʼִÐÐ֮ǰ¡£

ÏÂÃæÊÇÎÒΪ BaseProcessStart º¯ÊýдµÄα´úÂë¡£ËüÊÇ Windows NT KERNEL32.DLL µÄÒ»¸öÄÚ²¿Àý³Ì¡£Õâ¸öº¯Êý´øÒ»¸ö²ÎÊý——Ïß³ÌÈë¿Úµãº¯ÊýµÄµØÖ·¡£BaseProcessStart ÔËÐÐÔÚнø³ÌµÄÉÏÏÂÎÄ»·¾³ÖУ¬²¢ÇҴӸýø³ÌµÄµÚÒ»¸öÏ̵߳ÄÈë¿Úµãº¯Êý¿ªÊ¼Ö´ÐС£¡¡

¡¡BaseProcessStart¡¡Î±Âë
¡¡BaseProcessStart(¡¡PVOID¡¡lpfnEntryPoint¡¡)
¡¡{
¡¡¡¡¡¡DWORD¡¡retValue
¡¡¡¡¡¡DWORD¡¡currentESP;
¡¡¡¡¡¡DWORD¡¡exceptionCode;
¡¡¡¡¡¡currentESP¡¡=¡¡ESP;
¡¡¡¡¡¡_try
¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡NtSetInformationThread(¡¡GetCurrentThread(),
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ThreadQuerySetWin32StartAddress,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&lpfnEntryPoint,¡¡sizeof(lpfnEntryPoint)¡¡);
¡¡¡¡¡¡¡¡¡¡retValue¡¡=¡¡lpfnEntryPoint();
¡¡¡¡¡¡¡¡¡¡ExitThread(¡¡retValue¡¡);
¡¡¡¡¡¡}
¡¡¡¡¡¡_except(//¡¡¹ýÂËÆ÷-±í´ïʽ´úÂë
¡¡¡¡¡¡¡¡¡¡¡¡¡¡exceptionCode¡¡=¡¡GetExceptionInformation(),
¡¡¡¡¡¡¡¡¡¡¡¡¡¡UnhandledExceptionFilter(¡¡GetExceptionInformation()¡¡)¡¡)
¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡ESP¡¡=¡¡currentESP;
¡¡¡¡¡¡¡¡¡¡if¡¡(¡¡!_BaseRunningInServerProcess¡¡)¡¡¡¡¡¡¡¡¡¡//¡¡³£¹æ½ø³Ì
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ExitProcess(¡¡exceptionCode¡¡);
¡¡¡¡¡¡¡¡¡¡else¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡·þÎñ
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ExitThread(¡¡exceptionCode¡¡);
¡¡¡¡¡¡}
¡¡}

ÔÚÕâ¶ÎαÂëÖУ¬×¢Òâ¶Ô lpfnEntryPoint µÄµ÷Óñ»·â×°ÔÚÒ»¸ö__try ºÍ __except ¿éÖС£ÕýÊÇ´Ë__try ¿é°²×°ÁËĬÈϵġ¢Òì³£´¦Àí³ÌÐòÁ´±íÉϵÄ×îºóÒ»¸öÒì³£´¦Àí³ÌÐò¡£ËùÓкóÀ´×¢²áµÄÒì³£´¦Àí³ÌÐò¶¼±»°²×°ÔÚ´ËÁ´±íÖÐÕâ¸ö½áµãµÄÇ°Ãæ¡£Èç¹û lpfnEntryPoint º¯Êý·µ»Ø£¬ÄÇô±íÃ÷Ïß³ÌÒ»Ö±ÔËÐе½Íê³É²¢ÇÒûÓÐÒý·¢Òì³£¡£Õâʱ BaseProcessStart µ÷Óà ExitThread ʹÏß³ÌÍ˳ö¡£

ÁíÒ»·½Ã棬Èç¹ûÏß³ÌÒý·¢ÁËÒ»¸öÒì³£µ«ÊÇûÓÐÒì³£´¦Àí³ÌÐòÀ´´¦ÀíËüʱ£¬¸ÃÔõô°ìÄØ£¿Õâʱ£¬Ö´ÐÐÁ÷³Ìתµ½ __except ¹Ø¼ü×ÖºóÃæµÄÀ¨ºÅÖС£ÔÚ BaseProcessStart ÖУ¬Õâ¶Î´úÂëµ÷Óà UnhandledExceptionFilter Õâ¸ö API£¬ÉÔºóÎһὲµ½Ëü¡£ÏÖÔÚ¶ÔÓÚÎÒÃÇÀ´Ëµ£¬ÖØÒªµÄÊÇ UnhandledExceptionFilter Õâ¸öAPI°üº¬ÁËĬÈϵÄÒì³£´¦Àí³ÌÐò¡£

Èç¹û UnhandledExceptionFilter ·µ»Ø EXCEPTION_EXECUTE_HANDLER£¬Õâʱ BaseProcessStart ÖеÄ__except ¿é¿ªÊ¼Ö´ÐС£¶ø__except¿éËù×öµÄÖ»Êǵ÷Óà ExitProcess º¯ÊýÈ¥ÖÕÖ¹µ±Ç°½ø³Ì¡£ÉÔ΢ÏëÒ»ÏÂÄã¾Í»áÀí½âÁË¡£³£Ê¶¸æËßÎÒÃÇ£¬Èç¹ûÒ»¸ö½ø³ÌÒý·¢ÁËÒ»¸ö´íÎó¶øûÓÐÒì³£´¦Àí³ÌÐòÈ¥´¦ÀíËü£¬Õâ¸ö½ø³Ì¾Í»á±»ÏµÍ³ÖÕÖ¹¡£ÄãÔÚα´úÂëÖп´µ½µÄÕýÊÇÕâЩ¡£

¶ÔÓÚÉÏÊöÄÚÈÝÎÒ»¹ÓÐÒ»µãÒª²¹³ä¡£Èç¹ûÒý·¢´íÎóµÄÏß³ÌÊÇ×÷Ϊ·þÎñÀ´ÔËÐеģ¬²¢ÇÒÊÇ»ùÓÚÏ̵߳ķþÎñ£¬ÄÇô__except ¿é²¢²»µ÷Óà ExitProcess£¬¶øÊǵ÷Óà ExitThread¡£²»Äܽö½öÒòΪһ¸ö·þÎñ³ö´í¾ÍÖÕÖ¹Õû¸ö·þÎñ½ø³Ì¡£

UnhandledExceptionFilter ÖеÄĬÈÏÒì³£´¦Àí³ÌÐò¶¼×öÁËʲôÄØ£¿µ±ÎÒÔÚÒ»¸ö¼¼Êõ½²×ùÉÏÎÊÆðÕâ¸öÎÊÌâʱ£¬ÏìÓ¦ÕßÁÈÁÈÎÞ¼¸¡£¼¸ºõûÓÐÈËÖªµÀµ±Î´´¦ÀíÒì³£·¢Éúʱ£¬µ½µ×²Ù×÷ϵͳµÄĬÈÏÐÐΪÊÇʲô¡£¼òµ¥µØÑÝʾһÏÂÕâ¸öĬÈϵÄÐÐΪҲÐí»áÈúܶàÈË»íÈ»¿ªÀÊ¡£ÎÒÔËÐÐÒ»¸ö¹ÊÒâÒý·¢´íÎóµÄ³ÌÐò£¬Æä

ÁèÖڿƼ¼×¨ÒµÌṩ·þÎñÆ÷×âÓᢷþÎñÆ÷Íйܡ¢ÆóÒµÓʾ֡¢ÐéÄâÖ÷»úµÈ·þÎñ£¬¹«Ë¾ÍøÕ¾£ºhttp://www.lingzhong.cn ΪÁ˸ø¹ã´ó¿Í»§Á˽â¸ü¶àµÄ¼¼ÊõÐÅÏ¢£¬±¾¼¼ÊõÎÄÕÂÊÕ¼¯À´Ô´ÓÚÍøÂç,ÁèÖڿƼ¼×ðÖØÎÄÕÂ×÷ÕߵİæȨ£¬Èç¹ûÓÐÉæ¼°ÄãµÄ°æȨÓбØҪɾ³ýÄãµÄÎÄÕ£¬ÇëºÍÎÒÃÇÁªÏµ¡£ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúҪתÔر¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!

·ÖÏíµ½£º ¸ü¶à
HTTP/1.1 401 Access Denied ëÃÅÍø
  • Photoshop»æÖƸ߹âË®¾§ÖʸÐË®¾§Æ»¹û
  • Copyright ©1999-2011 ÏÃÃÅÁèÖڿƼ¼ÓÐÏÞ¹«Ë¾ ÏÃÃÅÓÅͨ»¥Áª¿Æ¼¼¿ª·¢ÓÐÏÞ¹«Ë¾ All rights reserved

    µØÖ·(ADD)£ºÏÃÃÅÈí¼þÔ°¶þÆÚÍûº£Â·63ºÅ701E£¨¶«ÄÏÈÚͨÅÔ£© Óʱà(ZIP)£º361008

    µç»°£º0592-5908028 ´«Õ棺0592-5908039 ×ÉѯÐÅÏ䣺web@lingzhong.cn ×ÉѯOICQ£º173723134

    ¡¶ÖлªÈËÃñ¹²ºÍ¹úÔöÖµµçÐÅÒµÎñ¾­ÓªÐí¿ÉÖ¤¡·ÃöB2-20100024  ICP±¸°¸:ÃöICP±¸05037997ºÅ