<대회땐 아무문제도못풀었는데 아이다를 써서 분석을하니까 보이더라구요.. 대회떈 사회공학 
바이너리문제 한문제..
내 컴퓨터는 Vista 환경이라그런지 실행시키면 에러가뜨길래 관리자 권한으로 실행시켜주었습니다.
일단 기본적인것을 알아보기 위해 분석도구인PEID 로 보았습니다.
그래서 UPX를 언패킹해주었습니다.
하지만 실행해보면 언팩하기전과 언팩한후는 차이가있습니다.
라고 뜹니다.  
이말은 곧 언팩을 하면 파일이 깨진다는것을 알수있습니다.
하지만 언팩을해야 분석을 할 수 있을것같으므로 언팩한파일을 분석해서 언팩을 안한파일에서 작동시키는 방법으로 해야겠습니다..
이제 OllyDBG로 분석하겠습니다는 아니고요 대회때 이랬다가 망한케이스..
뭐 정답같은 말은없었구요 그럼이제 본론으로가서.
이런 함수가 존재합니다. 근데 보면.. do~while문이 끝나주질않는 코드입니다 ;;;     
코드들이 실행되게 해줘야합니다.
일단 저 함수 주소가 0041~ ##1D20## 으로 끝나주는걸 봐주신뒤 Ollydbg로 여십니다.
열렸습니다.
  
003D1D20    55              push ebp
003D1D21    8BEC            mov ebp, esp
003D1D23    81EC D8000000   sub esp, 0D8
003D1D29    53              push ebx
003D1D2A    56              push esi
003D1D2B    57              push edi
003D1D2C    8DBD 28FFFFFF   lea edi, dword ptr ss:[ebp-D8]
003D1D32    B9 36000000     mov ecx, 36
003D1D37    B8 CCCCCCCC     mov eax, CCCCCCCC
003D1D3C    F3:AB           rep stos dword ptr es:[edi]
003D1D3E    C745 EC 7800000>mov dword ptr ss:[ebp-14], 78
003D1D45    B8 01000000     mov eax, 1
003D1D4A    85C0            test eax, eax
003D1D4C    0F84 D8000000   je BluePC.003D1E2A
003D1D52    837D EC 78      cmp dword ptr ss:[ebp-14], 78
003D1D56    75 4E           jnz short BluePC.003D1DA6
003D1D58    C645 FB 08      mov byte ptr ss:[ebp-5], 8
003D1D5C    EB 08           jmp short BluePC.003D1D66
003D1D5E    8A45 FB         mov al, byte ptr ss:[ebp-5]
003D1D61    04 01           add al, 1
003D1D63    8845 FB         mov byte ptr ss:[ebp-5], al
003D1D66    0FBE45 FB       movsx eax, byte ptr ss:[ebp-5]
003D1D6A    3D BE000000     cmp eax, 0BE
003D1D6F    7F 33           jg short BluePC.003D1DA4
003D1D71    0FBE45 FB       movsx eax, byte ptr ss:[ebp-5]
003D1D75    8BF4            mov esi, esp
003D1D77    50              push eax
003D1D78    FF15 04A43D00   call near dword ptr ds:[3DA404]          ; USER32.GetAsyncKeyState
003D1D7E    3BF4            cmp esi, esp
003D1D80    E8 01F4FFFF     call BluePC.003D1186
003D1D85    0FBFC8          movsx ecx, ax
003D1D88    81F9 0180FFFF   cmp ecx, FFFF8001
003D1D8E    75 12           jnz short BluePC.003D1DA2
003D1D90    68 C46A3D00     push BluePC.003D6AC4                     ; ASCII "C:\Program Files\LOG.txt"
003D1D95    0FBE45 FB       movsx eax, byte ptr ss:[ebp-5]
003D1D99    50              push eax
003D1D9A    E8 3DF3FFFF     call BluePC.003D10DC
003D1D9F    83C4 08         add esp, 8
003D1DA2  ^ EB BA           jmp short BluePC.003D1D5E
003D1DA4    EB 7F           jmp short BluePC.003D1E25
003D1DA6    837D EC 79      cmp dword ptr ss:[ebp-14], 79
003D1DAA    75 79           jnz short BluePC.003D1E25
003D1DAC    E8 81F2FFFF     call BluePC.003D1032
003D1DB1    68 68913D00     push BluePC.003D9168
003D1DB6    68 58953D00     push BluePC.003D9558
003D1DBB    68 08903D00     push BluePC.003D9008                     ; ASCII "BLUEPC"
003D1DC0    E8 EAF2FFFF     call BluePC.003D10AF
003D1DC5    83C4 0C         add esp, 0C
003D1DC8    0FB605 6B913D00 movzx eax, byte ptr ds:[3D916B]
003D1DCF    8BF4            mov esi, esp
003D1DD1    50              push eax
003D1DD2    0FB60D 6A913D00 movzx ecx, byte ptr ds:[3D916A]
003D1DD9    51              push ecx
003D1DDA    0FB615 69913D00 movzx edx, byte ptr ds:[3D9169]
003D1DE1    52              push edx
003D1DE2    0FB605 68913D00 movzx eax, byte ptr ds:[3D9168]
003D1DE9    50              push eax
003D1DEA    68 B06A3D00     push BluePC.003D6AB0                     ; ASCII "%02x%02x%02x%02x"
003D1DEF    68 18903D00     push BluePC.003D9018
003D1DF4    FF15 08A43D00   call near dword ptr ds:[3DA408]          ; USER32.wsprintfA
003D1DFA    83C4 18         add esp, 18
003D1DFD    3BF4            cmp esi, esp
003D1DFF    E8 82F3FFFF     call BluePC.003D1186
003D1E04    8BF4            mov esi, esp
003D1E06    6A 00           push 0
003D1E08    68 A06A3D00     push BluePC.003D6AA0                     ; ASCII "Turn it off"
003D1E0D    68 18903D00     push BluePC.003D9018
003D1E12    6A 00           push 0
003D1E14    FF15 0CA43D00   call near dword ptr ds:[3DA40C]          ; USER32.MessageBoxA
003D1E1A    3BF4            cmp esi, esp
003D1E1C    E8 65F3FFFF     call BluePC.003D1186
003D1E21    33C0            xor eax, eax
003D1E23    EB 1E           jmp short BluePC.003D1E43
003D1E25  ^ E9 1BFFFFFF     jmp BluePC.003D1D45
003D1E2A    8BF4            mov esi, esp
003D1E2C    68 986A3D00     push BluePC.003D6A98                     ; ASCII "PAUSE"
003D1E31    FF15 9CA33D00   call near dword ptr ds:[3DA39C]          ; MSVCR100.system
003D1E37    83C4 04         add esp, 4
003D1E3A    3BF4            cmp esi, esp
003D1E3C    E8 45F3FFFF     call BluePC.003D1186
003D1E41    33C0            xor eax, eax
003D1E43    5F              pop edi
003D1E44    5E              pop esi
003D1E45    5B              pop ebx
003D1E46    81C4 D8000000   add esp, 0D8
003D1E4C    3BEC            cmp ebp, esp
003D1E4E    E8 33F3FFFF     call BluePC.003D1186
003D1E53    8BE5            mov esp, ebp
003D1E55    5D              pop ebp
003D1E56    C3              retn
 
이것은 현재계속 실행되고있을 코드입니다.
반복문을 끝낼지 안끝낼지를 정하는 부분이기에  그러므로 003D1D6F 이것에 BP를 걸어줍니다.
그러면 바로 그 번지에걸리게됩니다.
이제 jg 이것을 무조건 190이넘은것처럼 속이기위해 jmp로 바꿔줍니다.
그럼 이렇게 보이게 되는데요.     우리가간곳은 "003D1DA4" 입니다.
##003D1DA6##  ##003D1DAA## 가 더눈에 띕니다.
저것은 while ( v2 != 121); 이코드와 동일합니다.
변경하여보았습니다.
이제는 dowhile 연산이 깨졌을테니 F9(RUN)을 해보면..
P.S   제가 오랜만에써서 더 못썻었습니다. 이해가안가시면 댓글로 남겨주세요 금방 담변해드릴게요.. ㅜㅜ