------------------------------------------------------------------------------ ÆÐÄ¡ °­Á No. 1 - 30 / 08 / 98 ÇÁ·Î±×·¥ : À̾߱â 7.7 - º£Å¸ 2 rev 1.0.2 : ³¯Â¥ Á¦ÇÑ , ³»±× ½ºÅ©¸° ------------------------------------------------------------------------------ ÀÌ ÇÁ·Î±×·¥Àº ³¯Â¥°¡ Áö³ªµµ ³¯Â¥°¡ Áö³µ´Ù´Â ¸Þ¼¼Áö¸¦ ¶Ù¿ìÁú ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ¸Þ¼¼Áö¸¦ ¶Ù¿î´Ù¸é °£´ÜÇÑ MessageBoxA ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÆÐÄ¡ ÇÒ ¼ö ÀÖÁö¸¸ ÀÌ ÇÁ·Î±×·¥Àº ¸Þ¼¼Áö¸¦ ¶Ù¿ìÁú ¾Ê±â ¶§¹®¿¡. ½Ã°£¿¡ °üÇÑ API ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ÆÐÄ¡ ÇÏ¿©¾ß ÇÕ´Ï´Ù. ÀÌ ÇÁ·Î±×·¥À» ÆÐÄ¡ Çϴµ¥ »ç¿ëÇÑ ÇÔ¼ö´Â GetLocalTime À̶õ ÇÔ¼ö ÀÔ´Ï´Ù. ¸¸¾à ´ç½ÅÀÇ ÄÄÇ»ÅÍ¿¡ ÀÖ´Â ÀÌ ÇÁ·Î±×·¥ »ç¿ë ±â°£ÀÌ Áö³ª¼­ ÀÌ ÇÁ·Î ±×·¥À» ½ÇÇà ÇÏ¿´´Ù¸é ¾Æ¹«·± ¹ÝÀÀµµ ÀϾÁú ¾Ê°í ÇÁ·Î±×·¥ÀÌ Á¾·áµÉ °Í ÀÔ´Ï´Ù. ³¯Â¥ Á¦ÇÑ ÇÁ·Î±×·¥À» ÆÐÄ¡ ÇϽ÷Á¸é ÇÁ·Î±×·¥À» ½ÇÇà ½Ã۱â Àü¿¡ ¸ÕÀú Soft-Ice ¸¦ ½ÇÇà ½ÃÄÑ GetLocalTime À̶ó´Â ÇÔ¼ö¸¦ °É¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù. - BPX GETLOCALTIME ´ÙÀ½À» ÀÔ·Â ÇϼÌÀ¸¸é ÇÁ·Î±×·¥À» ½ÇÇà ½ÃÄÑ º¾½Ã´Ù.. KERNEL32!GetLocalTime :BFF77254 SUB EDX,EDX ÀÌ·± °÷ÀÌ Soft-Ice È­¸é¿¡ ÀâÈù´Ù¸é ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ Àß °Å½Å °Ì´Ï´Ù. ±×·³. À̰÷¿¡¼­ 'P RET' ¸¦ ÀÔ·ÂÇÏ¿© º¸½Ã±â ¹Ù¶ø´Ï´Ù. ±×·³. ¸Þ¸ð¸® ÁÖ¼Ò°¡ ¹¹¶ó °í µÇ¾î ÀÖ³ª¿ä! :7802D3FF CALL [KERNEL32!GetLocalTime] ÀÌ·±½ÄÀ¸·Î µÇ¾î ÀÖ³ª¿ä. °£´ÜÇÑ °Í Çϳª¸¸ ¾Ë·Á µå¸®°Ú½À´Ï´Ù. ¸Þ¸ð¸® ÁÖ¼Ò°¡ ¾Õ¿¡ À§Ã³·³ BFF.... ÀÌ·±½ÄÀ¸·Î ½ÃÀÛÇϰųª ¹Ù·Î À§Ã³·³ 780.... ÀÌ·±½ÄÀ¸·Î µÇ¾î ÀÖ´Ù¸é ±× ºÎºÐÀº ÇÁ·Î±×·¥¿¡ ³»ÀåµÈ DLL ÆÄÀÏÀ̰ųª ¾Æ´Ï¸é À© µµ¿ìÁîÀÇ DLL ÆÄÀÏÀÏ °Í ÀÔ´Ï´Ù. º¸Åë ¿ì¸®°¡ ã¾Æ¼­ °íÃÄ¾ß ÇÒ ºÎºÐÀº À©µµ¿ìÀÇ DLL ÆÄÀÏÀÌ ¾Æ´Ï¶ó ÇÁ·Î±×·¥À» ½ÇÇà ½ÃŰ´Â EXE ÆÄÀÏ ÀÔ´Ï´Ù. EXE ¾È¿¡ ÀÖ´Ù¸é ¸Þ¸ð¸® ÁÖ¼Ò´Â 000.... ÀÌ·±½ÄÀ¸·Î µÇ¾î ÀÖ½À´Ï´Ù. ±×³É ¿Ü¿ö ÁÖ½Ã¸é °í¸¿°Ú½À´Ï´Ù ±×·³ À§ ºÎºÐÀÌ ¾Æ´Ï¶õ ¿¹±â 'F5' ۸¦ ´­·¯¼­ ½ÇÇàÀ» ½ÃÄÑ º¾½Ã´Ù. KERNEL32!GetLocalTime :BFF77254 SUB EDX,EDX ÀÌ ºÎºÐÀÌ ´Ù½Ã ÀâÈ÷°í 'P RET' ¸¦ ´­·¯ º¸½Ã¸é :0041530C E8BFA10600 call 0047F4D0 <- ºüÁ® ³ª¿Â ºÎºÐ. :00415311 8B442404 mov eax, dword ptr [esp+04] <- ÀúÀå :00415315 83C404 add esp, 00000004 1 :00415318 3DCE070000 cmp eax, 000007CE <- ³âµµ :0041531D 7C13 jl 00415332 :0041531F 807C240505 cmp byte ptr [esp+05], 05 <- ¿ù :00415324 760C jbe 00415332 <- No Jump :00415326 A1500A5700 mov eax, dword ptr [00570A50] :0041532B C6802B0300007D mov byte ptr [eax+0000032B], 7D :00415332 660DFFFF or ax, FFFF :00415336 83C408 add esp, 00000008 :00415339 C3 ret ÀÌ ºÎºÐÀÌ ³ª¿À½Å´Ù¸é ¸Â°Ô ã¾Æ ¿À½Å °Í ÀÔ´Ï´Ù. Áö±ÝÀº ³¯Â¥¸¦ ±¸Çؼ­ ÀúÀå ÇÏ¿´½À´Ï´Ù. À§ÀÇ '1' À̶ó°í ¾²Àΰ÷À» Àß º¸¼¼¿ä. cmp eax, 000007CE À̰ÍÀº ¹»±î¿ä?? '? 7CE' ¶ó°í ÀÔ·ÂÇÏ¿© º¸½Ê½Ã¿ä. ? 7CE 000007CE 00001998 ÀÌ·±½ÄÀ¸·Î ³ª¿À³ª¿ä? 7CE ´Â ÇÙ»çÄÚµåÀÌ°í ¿·ÀÇ 1998 Àº ¾Æ½ºÅ° ÄÚµå ÀÔ´Ï´Ù. 1998 À½??? ÀÌ°Ç ³âµµ¸¦ ³ªÅ¸³»´Â °Í À̰ÚÁÒ! ±×·³ ±× ´ÙÀ½ÀÇ cmp byte ptr [esp+05], 05 Àº ¹» ³ªÅ¸³»´Â °É ±î¿ä?? ¹°·Ð ¿ù À̰ÚÁÒ! Æ®·£½Ì ÇØ º¸´Ï ±× ´ÙÀ½ÀÇ jbe 00415332 ´Â ¾î¶»°Ô µÇ³ª¿ä. No Jump ÀÌÁö¿ä! ÀÌ ºÎºÐÀ» ¹«Á¶°Ç Jump ÇÏ°Ô ¸¸µé¾î ÁÖ¸é ³¯Â¥ Á¦ÇÑÀº ¿ÏÀüÈ÷ »ç¶óÁý´Ï´Ù. ¾Æ´Ï¸é À§ÀÇ ³âµµ °Ë»ç ºÎºÐ¿¡¼­ jl 00415332 ¸¦ jmp 00415332 ·Î ¸¸µé¾î Áּŵµ ³¯Â¥ Á¦ÇÑÀ» »ç¶ó Áý´Ï´Ù. À½. ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ°í ³ª¸é ±× Áö°Ü¿î ³»±× ½ºÅ©¸°ÀÌ ³ªÅ¸ ³³´Ï´Ù. ÇÁ·Î±×·¥ ½ÃÀÛ ÇÒ ¶§¸¶´Ù ¸¶¿ì½º·Î È®ÀÎ ¹öưÀ» ´­·¯¾ß ÇÏ´Â ¼ö°íµµ ´ú¾î¾ß °ÚÁö¿ä! À§ ºÎºÐÀ» ¼öÁ¤ Çϼ̴ٸé?! ±× ³»±× ½ºÅ©¸°µµ ¾ø¾ÝÀ¸¸é ÇϽÃÁÒ? ÀÌ ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇÒ ÇÔ¼ö´Â DialogBoxParamA ÀÔ´Ï´Ù. °í·³. ÇÁ·Î±×·¥ ½ÇÇà ½Ã۱â Àü¿¡ ´ÙÀ½À» ÀÔ·ÂÇϽʽÿä. - BPX DIALOGBOXPARAMA ±×·±´ÙÀ½ ÇÁ·Î±×·¥ ½ÇÇà ±×·³ ÇÔ¼ö°¡ ÀâÈ÷°í 'P RET'·Î ¹ÙÁ® ³ª¿À¸é :0045E540 56 push esi :0045E541 8B742408 mov esi, dword ptr [esp+08] :0045E545 56 push esi :0045E546 E8A5750100 call 00475AF0 :0045E54B 6A00 push 00000000 :0045E54D 68C0E34500 push 0045E3C0 :0045E552 56 push esi :0045E553 6804F35100 push 0051F304 :0045E558 50 push eax :0045E559 FF15C8EB5800 Call dword ptr [USER32!DialogBoxParamA] <- :0045E55F 5E pop esi :0045E560 C3 ret ¿ä±â¿¡¼­ ºüÁ® ³ª¿À¸é ¾Æ·¡°¡ ³ª¿É´Ï´Ù. :0041E8F1 53 push ebx :0041E8F2 E849FC0300 call 0045E540 <- ºüÁ® ³ª¿Â ºÎºÐ.. :0041E8F7 83C404 add esp, 00000004 :0041E8FA 6685C0 test ax, ax <- È®ÀÎÀÌ³Ä Ãë¼Ò³Ä? :0041E8FD 0F8400010000 je 0041EA03 <- È®ÀÎ No Jump ÈÞ! À§¿¡¼­ ±× ³»±× ½ºÅ©¸°À» »Ñ¸®´Â °÷À» ¾ø¾Ö ¹ö¸°´Ù¸é µÇ°ÚÁÒ! call 0045E540 ÀÌ ºÎºÐÀ» ´Ù nop ·Î ¸Å²Ù¾î ¹ö¸®¼¼¿ä.. ±×·³ ³»±× ½ºÅ©¸°ÀÌ ³ª¿ÀÁú ¾ÊÀ» °Í ÀÔ´Ï´Ù. ÃÖÁ¾ ÀûÀ¸·Î ¼öÁ¤ÇÑ ºÎºÐÀ» ¾Ë·Á µå¸³´Ï´Ù. ÆÄÀÏ À̸§ : IYAGI.EXE , 1,728,512 Bytes ³¯Â¥ Á¦ÇÑ Offset : 1471D h ¼öÁ¤ : 7C13 -> EB13 ³»±× ½ºÅ©¸° Offset : 1DCF2 h ¼öÁ¤ : E849FC0300 -> 9090909090 ÀÌ ÇÁ·Î±×·¥¿¡ °°ÀÌ ºÙ¾î ÀÖ´Â À̾߱⠿¡µðÅÍ ÇÁ·Î±×·¥µµ À§¿Í °°Àº Á¾·ù ÀÔ´Ï´Ù. Çѹø È¥ÀÚ ÇØº¸½Ã±â ¹Ù¶ø´Ï´Ù. ³¡.