CodeEngn advance 02
코드엔진 advance 02번 문제풀이
프로그램을 실행하면 아래와 같은 창이 하나 뜨는 것을 볼 수 있다.
PEiD로 확인해본 결과 패킹은 되어있지 않은 것으로 확인이 되었다. PE View를 사용하여 파일의 EP를 찾고 올리 디버거로 파일을 열어 EP까지 실행한다.
이제 EP부터 F8을 사용하여 파일을 실행하면서 분석해보면 0040662B주소의 CALL 00401000에서 파일이 시작되는 것을 확인할 수 있으니 이 부분에 브레이크 포인트를 걸고 파일을 다시 시작한다.
이제 F7을 사용해 00401000으로 가서 분석을 해보면 패스워드를 입력받은 뒤 주소 004013C5에서 종료되는 것을 확인할 수 있었다.
레지스터를 살펴보니 위와 같이 edx레지스터에 12F75C 값이 들어있는 것을 확인할 수 있고 F7을 눌러 edx로 들어가 보면 아래와 같이 좀 전에 내가 입력한 패스워드와 임의의 값들을 비교하는 여러 cmp문을 볼 수 있었다.
이 값들을 살펴보면 43 52 41 41 41 43 4B 45 44 21 임을임을 알 수 있고 이 값이 패스워드임을 유추할 수 있었다. 이제 이 값을 아스키코드로 변환해 보면 C R A A A C K E D ! 임을임을 알 수 있고 이 값이 플래그 값이다. CRAAACKED!