¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ OkStart Cracking Tutorials No. 14 ¹Ì½ºÅÍ °í½ºÅé 98 ½Ã¸®¾ó º¸±â H O M E : 4´ë Åë½Å¸Á ´Ù ÀÖÀ½.. D O W N : 4´ë Åë½Å¸Á ´Ù ÀÖÀ½.. USINGTools : Numega Soft-Ice Version 3.24 , IDA Version 3.98 , Symbol Loader ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ÀÌ ÇÁ·Î±×·¥Àº W32Dasm À¸·Î ¿ª¾î¼ÀÀ» ÇÏ·Á´Ï DIRECTX ¸¦ »ç¿ëÇÏ¿© ±×·±Áö Error °¡ ³ª´õ±º¿ä. ±×·¡¼­ IDA ¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù. W32Dasm À̳ª IDA À̳ª.. º° Ʋ¸°°ÍÀº ¾øÀ¸´Ï »ç¿ëÇϽôµ¥ À־ ºÒÆíÇÔÀÌ º°·Î ¾øÀ¸¸®¶ó »ý°¢ µË´Ï´Ù. IDA ¸¦ ½ÇÇà½ÃŰ°í ³ª¼­ ÇÁ·Î±×·¥À» ºÒ·¯ µéÀÔ´Ï´Ù. ¿ª¾î¼ÀÀÌ ´Ù ³¡³ª¸é... Alt + T ¸¦ ´­·¯¼­ "µî·ÏÆÇ" À̶ó°í ÀÔ·ÂÇØº¾½Ã´Ù.. ±×·¯¸é ¸Þ¼¼Áö µéÀ» º¸°üÇϰí Àִ°÷À» º¼ ¼ö ÀÖ½À´Ï´Ù. º¸Åë W32Dasm À̶û ºñ½ÁÇÕ´Ï´Ù.. - ºñµî·Ï ¸Þ¼¼Áö º¸°ü - 0426090 aAS98_0 db '¹Ì½ºÅÍ °í½ºÅé 98 (?' ; DATA XREF: sub_4038B0+104 <- Enter - µî·Ï ¸Þ¼¼Áö º¸°ü - 04260B8 aAS98U db '¹Ì½ºÅÍ °í½ºÅé 98 (µî·ÏÆÇ)',0 ; DATA XREF: sub_4038B0+12Bo <- Enter Enter ¸¦ ÀÔ·ÂÇϸé.. ?004039AD loc_4039AD: ; CODE XREF: sub_4038B0+67j ?004039AD push offset unk_431400 ; default ?004039B2 push 64h ?004039B4 mov edi, offset aAS98_0 <- ºñµî·Ï ¸Þ¼¼Áö ?004039B9 call ds:GetCurrentDirectoryA ?004039BF push offset unk_431400 ?004039C4 call ds:SetCurrentDirectoryA ?004039CA push offset aMrgostop_dat ?004039CF call sub_41ADC0 -> ¸¹ÀÌ º¸´ø ±×·± ÄÚµåµé.. ?004039D4 add esp, 4 ?004039D7 test eax, eax ?004039D9 jz short loc_4039E0 ?004039DB mov edi, offset aAS98U -> µî·Ï ¸Þ¼¼Áö ?004039E0 ?004039E0 loc_4039E0: ; CODE XREF: sub_4038B0+129 ?004039E0 push 0 ?004039E2 push esi ?004039E3 mov esi, ds:GetSystemMetrics ?004039E9 push 0 ÀÌ °÷¿¡¼­ À§ÀÇ 4039cf ÀÌ ÁÖ¼Ò¸¦ Àû¾î µÎ½Ê½Ã¿À! ÀÌ ÁÖ¼Ò¸¦ ¼Ò¾Æ¿¡¼­ »ç¿ëÇÒ °Í ÀÔ´Ï´Ù. ¼Ò¾Æ¿¡ º¸¸é SymBol Loader °¡ ÀÖ½À´Ï´Ù. ÀÌ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄѼ­ ½ÇÇàÆÄÀÏÀ» ºÒ·¯µé¸®°í ½ÇÇà½Ã۸é ÇÁ·Î±×·¥ ½ÇÇà óÀ½ ºÎºÐÀÌ ³ª¿Ã °Í ÀÔ´Ï´Ù. ÀÌ ºÎºÐ¿¡¼­ BPX 4039CF ÀÌ·¸°Ô ÀÔ·ÂÇϰí F5 ¹øÀ» ´­·¯¼­ ½ÇÇà½ÃŰ½Ê½Ã¿À! ±×·³ À§ ºÎºÐ¿¡¼­ ºêÆ÷°¡ °É¸± °Í ÀÔ´Ï´Ù. À§ÀÇ ÁÖ¼Ò´Â ¼Ò¾Æ¿¡¼­ ±×´ë·Î »ç¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ ÁÁÁÒ.. ¾Æ·¡¸¦ º¸½Ê½Ã¿À! ±×·³ ¹Ù·Î ½Ã¸®¾ó ³Ñ¹ö¸¦ º¸½Ç ¼ö ÀÖÀ» °Í ÀÔ´Ï´Ù. ?0041ADC0 sub_41ADC0 proc near ; CODE XREF: sub_4038B0+11 ?0041ADC0 ?0041ADC0 arg_0 = dword ptr 4 ?0041ADC0 ?0041ADC0 mov eax, [esp+arg_0] ?0041ADC4 push esi ?0041ADC5 push offset unk_429980 ?0041ADCA push eax ?0041ADCB call _fopen ?0041ADD0 mov esi, eax ?0041ADD2 add esp, 8 ?0041ADD5 test esi, esi ?0041ADD7 jnz short loc_41ADDB ?0041ADD9 pop esi ?0041ADDA retn ?0041ADDB loc_41ADDB: ; CODE XREF: sub_41ADC0+17 ?0041ADDB push 0Ah ?0041ADDD push 0 ?0041ADDF call sub_402E80 ?0041ADE4 add esp, 8 ?0041ADE7 cmp eax, 9 ; switch 10 cases ?0041ADEA ja loc_41AF55 ; default ?0041ADF0 jmp ds:off_41AF68[eax*4] ; switch jump ?0041ADF7 ?0041ADF7 loc_41ADF7: ; DATA XREF: .text:0041AF68 ?0041ADF7 push esi ; case 0 ?0041ADF8 push 1 ?0041ADFA push 4 ?0041ADFC push offset dword_431738 ?0041AE01 call _fread ?0041AE06 mov ecx, dword_431738 <- À½.. DAT ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ½Ã¸®¾ó ?0041AE0C mov eax, dword_430090 <- Á¤½Ä ½Ã¸®¾ó ¹øÈ£ ?0041AE11 add esp, 10h Àû¾îµÎ°í ½ÇÇà½ÃÄѼ­ µî·Ï¹øÈ£ ?0041AE14 jmp loc_41AF44 ¸¦ ÀÔ·ÂÇÏ½Ã¸é µË´Ï´Ù. --- Áß°£»ý·« ----- ?0041AF44 cmp ecx, eax ?0041AF46 jz short loc_41AF55 ; default ?0041AF48 push esi ?0041AF49 call _fclose ?0041AF4E add esp, 4 ?0041AF51 xor eax, eax <- 0 °ú ¹ØÀÇ ?0041AF53 pop esi ?0041AF54 retn ?0041AF55 push esi ?0041AF56 call _fclose ?0041AF5B add esp, 4 ?0041AF5E mov eax, 1 <- ¿ä±â 1... ?0041AF63 pop esi ?0041AF64 retn ¸¹ÀÌ º¸´ø ºÎºÐ ÀÔ´Ï´Ù.