[리버싱] For 문 분석
C Source
매우 간단한 소스
10번 printf 후 자동으로 꺼짐을 방지한다.
올리디버거로 디버깅 한 결과--------------------------------------------------------------
00F41000 >/$ 56 PUSH ESI
00F41001 |. 57 PUSH EDI
00F41002 |. 8B3D 9C20F400 MOV EDI,DWORD PTR DS:[<&MSVCR100.printf>]
--------------- For 문 진입
00F41008 |. 33F6 XOR ESI,ESI ; ESI 값을 xor 연산 해서 초기화 시킴
00F4100A |. 8D9B 00000000 LEA EBX,DWORD PTR DS:[EBX]
00F41010 |> 46 /INC ESI ; ESI 를 1 증가시킴
00F41011 |. 56 |PUSH ESI ; 스택에 저장
00F41012 |. 68 F420F400 |PUSH OFFSET IF.??_C@_0BA@BFGFEAAF@For?$LJ?$KO?5?$CFd>
00F41017 |. FFD7 |CALL EDI ; printf for문 %d 번째 출력
00F41019 |. 83C4 08 |ADD ESP,8 ; esp 에 8을 더함
00F4101C 83FE 0A CMP ESI,0A ; ESI 값이 16진수 0A 인지 비교함 [10진수로 10]
00F4101F |.^ 7C EF \JL SHORT IF.00F41010 ; 낮을경우 00F41010 으로 점프시킴
----------------- for 문 끝
00F41021 |. 68 0421F400 PUSH OFFSET IF.??_C@_05PDJBBECF@pause?$AA@
00F41026 |. FF15 A420F400 CALL DWORD PTR DS:[<&MSVCR100.system>] ; system pause.
어렵다 ㅠㅠ