CodeEngn advance 02

코드엔진 advance 02번 문제풀이

프로그램을 실행하면 아래와 같은 창이 하나 뜨는 것을 볼 수 있다.

ad2

PEiD로 확인해본 결과 패킹은 되어있지 않은 것으로 확인이 되었다. PE View를 사용하여 파일의 EP를 찾고 올리 디버거로 파일을 열어 EP까지 실행한다.

ad2-1

이제 EP부터 F8을 사용하여 파일을 실행하면서 분석해보면 0040662B주소의 CALL 00401000에서 파일이 시작되는 것을 확인할 수 있으니 이 부분에 브레이크 포인트를 걸고 파일을 다시 시작한다.

ad2-2

이제 F7을 사용해 00401000으로 가서 분석을 해보면 패스워드를 입력받은 뒤 주소 004013C5에서 종료되는 것을 확인할 수 있었다.

ad2-3 ad2-4

레지스터를 살펴보니 위와 같이 edx레지스터에 12F75C 값이 들어있는 것을 확인할 수 있고 F7을 눌러 edx로 들어가 보면 아래와 같이 좀 전에 내가 입력한 패스워드와 임의의 값들을 비교하는 여러 cmp문을 볼 수 있었다.

ad2-5

이 값들을 살펴보면 43 52 41 41 41 43 4B 45 44 21 임을임을 알 수 있고 이 값이 패스워드임을 유추할 수 있었다. 이제 이 값을 아스키코드로 변환해 보면 C R A A A C K E D ! 임을임을 알 수 있고 이 값이 플래그 값이다. CRAAACKED!

ad2-6