Áö±Ý ÀÌ ¹®¼­¿¡¼­ Å©·¢ÇÏ´Â MSN 7.5 ¹öÀüÀº ¿µ¹® ¹öÀüÀ» ´ë»óÀ¸·Î ÇÕ´Ï´Ù.

MSN Å©·¢Àº »ý°¢º¸´Ù »ó´çÈ÷ ½±½À´Ï´Ù.

ÀϹÝÀûÀ¸·Î »ó¿ë ÇÁ·Î±×·¥°°Àº °æ¿ì µð¹ö±ëÀ» Èûµé°Ô Çϱâ À§Çؼ­ ½ÇÇàÆÄÀÏ Çì´õ¿¡ º¯°æÀ» °¡ÇÏ°í ¾ÐÃàÀ» ÇÑ´Ù´ø°¡

¾ÈƼ µð¹ö±ë Äڵ带 »ðÀÔÇѴٰųª Çϴµ¥ ÀÌ·±°ÍÀÌ ÀüÇô¾ø±â ¶§¹®ÀÔ´Ï´Ù.

´ÜÁö ÇÁ·Î±×·¥¿¡ ¿ë·®ÀÌ Ä¿¼­ µð½º ¾î¼Àºí¸® µÈ Äڵ尡 ³Ê¹« ¾çÀÌ ¸¹¾Æ

º¹ÀâÇØº¸ÀÌ´Â Á¡ »©°í ¸»ÀÔ´Ï´Ù.

Âü°í·Î Å©·¢½Ã ¿øº»ÆÄÀÏÀº ¹é¾÷ÇÏ½Ç ÇÊ¿ä ¾ø½À´Ï´Ù.

¾îÂ÷ÇÇ ÄÚµå ¼öÁ¤ ÈÄ ´Ù¸¥ À̸§À¸·Î ÀúÀå ÇÒ °Í À̱⠶§¹®¿¡..

 

¿ì¼±ÀûÀ¸·Î Å©·¢ÇϱâÀü¿¡ ´ÙÀ½°ú °°Àº »óȲÀ» ¼÷ÁöÇÏ¼Å¾ß ÇÕ´Ï´Ù.

ÀÌÀü ¹®¼­¿¡¼­ Ǭ Å©·¢¹Ìº¸´Ù Äڵ尡 »ó´çÈ÷ ±æ°í º¹ÀâÇÕ´Ï´Ù.

ÀÏÀÏÀÌ ÇÑ ÁÙ¾¿ Äڵ带 ÇØ¼®ÇÏ½Ã¸é ¾ÈµË´Ï´Ù.

´ëÃæ Äڵ带 Àо°¡¸é¼­ ´ÙÁß ½ÇÇàÀ» ¸·´Â ·çƾÀ» ãÀ¸¼Å¾ß ÇÕ´Ï´Ù.

 

´ÙÁß ½ÇÇàÀ» ¸·´Â °¡Àå °£´ÜÇÑ ¹æ¹ýÀ¸·Î´Â

FindWindow API ÇÔ¼ö°¡ ÀÖ½À´Ï´Ù.

FindWindow ÇÔ¼ö¸¦ ÅëÇØ¼­ ³ªÀÇ À©µµ¿ì¿Í µ¿ÀÏÇÑ Å¬·¡½º¿Í Á¦¸ñÀ» ã¾Æ¼­ ÀÖ´Ù¸é

±× ÇÁ·Î±×·¥À» Ȱ¼ºÈ­Çϰí Á¾·áÇÕ´Ï´Ù.

¸¸¾à¿¡ ãÁö ¸ø Çß´Ù¸é ³» ÇÁ·Î±×·¥ÀÌ ½ÇÇàÁßÀÌÁö ¾ÊÀº °ÍÀ¸·Î °£ÁÖÇϰí ÇÁ·Î±×·¥À» Á¤»óÀûÀ¸·Î

½ÇÇà½Ãŵ´Ï´Ù.

ÀÌ ¹æ¹ýÀº »ó´çÇÑ ¹®Á¦Á¡ÀÌ ÀÖÀ¸¹Ç·Î °ÅÀÇ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù.

¶Ç ÇѰ¡Áö ¹æ¹ýÀ¸·Î´Â ¹ÂÅØ½º¸¦ ÀÌ¿ëÇÑ ¹æ¹ýÀÔ´Ï´Ù.

 

 CreateMutex(nil, True, '¾È³ç');

 if (GetLastError = ERROR_ALREADY_EXISTS) then

  // ¾ÖÇø®ÄÉÀÌ¼Ç Á¾·á ÄÚµå

 

CreateMutex ¼¼¹øÂ° ÀÎÀÚ¸¦ ÅëÇØ¼­ Áߺ¹ ½ÇÇàÀ» °Ë»çÇÏ°Ô µË´Ï´Ù.

ÀϹÝÀûÀ¸·Î ¹ÂÅØ½º°¡ °¡Àå ¾µ¸¸ÇÑ °Í °°½À´Ï´Ù.

( ¹°·Ð Àú´Â ¾Ê ½áºÃ½À´Ï´Ù................................ )

 

´Ù½Ã ÇÑ ¹ø Å©·¢À» ÇϱâÀü¿¡ ¶Ç »ý°¢Çغ¼ Â÷·ÊÀÔ´Ï´Ù.

MSN ÀÌ ½ÇÇàµÇ¸é ¾Æ¸¶ ¿ì¼±ÀûÀ¸·Î MSN ÀÌ ÀÌ¹Ì ½ÇÇàÁßÀΰ¡ Á¡°ËÇÏ°Ô µÉ °Ì´Ï´Ù. ( ¹°·Ð ±× Àü¿¡ ´Ù¸¥ ÀÛ¾÷À» Çϱ⵵ ÇϰÚÁÒ )

±×¸®°í ÀÌ¹Ì ½ÇÇàÁßÀ̶ó¸é ±× MSN À» Ȱ¼ºÈ­ »óÅ·Π¸¸µé°í ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.

ÇÏÁö¸¸ MSN ÀÌ ½ÇÇàÁßÀÌ ¾Æ´Ï¶ó¸é MSN À» Á¤»óÀûÀ¸·Î ½ÇÇàÇÏ°Ô µÉ °Ì´Ï´Ù.

¿ì¸®°¡ ÇØ¾ß ÇÒ °ÍÀº MSN ÀÌ ½ÇÇàÁßÀÎÁö Á¡°ËÇÏ´Â ·çƾÀ» ¾Ë¾Æ³»¾ß ÇÕ´Ï´Ù.

±× ºÎºÐÀº CMP ¸í·É¾î¸¦ ¾µ °¡´É¼ºÀÌ ¸Å¿ì ³ô°ÚÁÒ.

 

¿ì¼± ¿Ã¸®µðºñ°Å·Î ¿­¾îº¾½Ã´Ù.

 

 

 

 

 

 

¿Ã¸® µð¹ö°Å·Î ¿©´Âµ¥¿¡µµ ÀÌÀü º¸´Ù Á¶±Ý ½Ã°£ÀÌ °É¸³´Ï´Ù.

±×¸®°í ´ÙÀ½°í °°ÀÌ Å×½ºÆ®ÇÕ´Ï´Ù.

MSN À» À̹̽ÇÇàÇÑ »óÅÂ¿Í ½ÇÇàÇÏÁö ¾Ê¾ÒÀ» »óÅ¿¡¼­ Step over ¿Í ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ ÀÌ¿ëÇØ¼­

MSN À» ÄÚµå ÇÑÁÙ ÇÑÁÙ¾¿ ½ÇÇàÇØº¾´Ï´Ù.

 

MSN À» ÀÌ¹Ì ½ÇÇàÇÑ »óÅ¿¡¼­´Â ÀÌ Äڵ尡 ½ÇÇàµÇÁö ¾Ê¾Ò´Âµ¥ MSN À» ½ÇÇàÇÏÁö ¾ÊÀº »óÅ¿¡¼­´Â

ÀÌ Äڵ尡 ½ÇÇàµÇ¾ú´Ù¸é ±× ºÎºÐÀ» ÁýÁß °ø·«Çϼ¼¿ä.

±× ºÎºÐ ±Ùó¿¡ MSN ½ÇÇà¿©ºÎ Á¡°Ë ·çƾÀÌ ÀÖÀ» °¡´É¼ºÀÌ ¸Å¿ì ³ô½À´Ï´Ù.

 

¿ÏÀü ³ë°¡´ÙÀÔ´Ï´Ù.

³ë°¡´Ù ³¡¿¡ ã¾Æ³½ ·çƾºÎºÐ ÀÔ´Ï´Ù.

 

 

005580C9  |> 68 FC494100    PUSH msnmsgr.004149FC                    ; /EventName = "MSNMSGR"

005580CE  |. 53             PUSH EBX                                 ; |InitiallySignaled

005580CF  |. 6A 01          PUSH 1                                   ; |ManualReset = TRUE

005580D1  |. 53             PUSH EBX                                 ; |pSecurity

005580D2  |. FF15 58134000  CALL DWORD PTR DS:[<&KERNEL32.CreateEven>; \CreateEventA

005580D8  |. 3BC3           CMP EAX,EBX

005580DA  |. 8B7D F0        MOV EDI,DWORD PTR SS:[EBP-10]

005580DD  |. 8947 28        MOV DWORD PTR DS:[EDI+28],EAX

005580E0  |. 0F84 CD010000  JE msnmsgr.005582B3

005580E6  |. FF15 74144000  CALL DWORD PTR DS:[<&KERNEL32.GetLastErr>; [GetLastError

005580EC  |. 3D B7000000    CMP EAX,0B7

005580F1     0F85 B5010000  JNZ msnmsgr.005582AC

 

¹Ù·Î ÀÌ ºÎºÐÀÔ´Ï´Ù.

CreateEvent API ÇÔ¼ö »ç¿ë½Ã 4 ¹øÂ° ÀÎÀÚ¿¡ ¹®ÀÚ¿­À» ÅëÇØ¼­ MSN ÀÇ Áߺ¹ ½ÇÇàÀ» ¹æÁöÇÏ´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

¸¶Áö¸·¿¡ JNZ ¸í·É¾î¸¦ ÅëÇØ¼­ ÇÁ·Î±×·¥À» °è¼Ó ½ÇÇà ÇÒ °ÍÀΰ¡ ½ÇÇàÇÏÁö ¾ÊÀ» °ÍÀΰ¡¸¦ °áÁ¤ÇÏ°Ô µË´Ï´Ù.

005580F1     0F85 B5010000  JNZ msnmsgr.005582AC

¹Ù·Î ¹Ø¿¡ ºÎºÐÀº MSN À» Ȱ¼ºÈ­½Ã۰í ÀÚ±âÀÚ½ÅÀ» Á¾·á½ÃŰ°Ô µË´Ï´Ù.

µû¶ó¼­ ºñ±³¹® ÈÄ¿¡ JNZ ºÎºÐÀ» JMP ¸í·É¾î·Î ¹Ù²Ù¸é µË´Ï´Ù.

 

 

 

 

±×¸®°í Å©·¢ µÈ ÄÚµå·Î ÇÁ·Î±×·¥À» ÀúÀåÇÏ½Ã¸é µÇ°Ú½À´Ï´Ù.

ÀúÀåÇÏ´Â ¹æ¹ýÀº ¼öÁ¤ µÈ Äڵ带 ¸¶¿ì½º·Î µå·¡±× ÇØ¼­ ¼±Åà ÈÄ¿¡ ÀÌÀü ¹®¼­¿¡¼­Ã³·³ ÀúÀåÇÏ½Ã¸é µË´Ï´Ù.

 

½ÇÇà°á°ú´Â ´ÙÀ½°ú °°½À´Ï´Ù.