[KH Wargame] Reversing02 풀이
Wargame/KH Wargame

[KH Wargame] Reversing02 풀이

문제 종류 - Reversing
사용한 툴 - Ollydbg, HxD
Flag, Hint, 정답 형식

flag = ?

hint: X

정답 형식: flag의 해쉬 값

 

풀이

 

파일이 하나 주어진다. HxD로 분석해보자.

MZ로 시작하므로 .exe로 확장자를 바꾸고 프로그램을 실행해보자.

File Not Found! 라는 오류와 함께 프로그램이 정상적으로 실행이 되지 않는다.

Ollydbg를 이용해 이 프로그램을 분석해보자.

 

우선 해당 MessageBox를 출력하는 함수를 찾아보자

해당 함수에 해당하는 주소를 클릭하여 이동해보자.

역시 예상대로 이 부분에서 File Not Found! 라는 문자열을 출력한다.

좀 더 위로 구문을 올려서 왜 이러한 오류가 뜨는지 분석해보자.

00401000 주소에 BP를 걸고 00401050 주소까지 실행해보자.

그럼 ESP에 다음과 같은 문구가 저장된다.

이 makeflag.source 파일을 이 프로그램과 같은 경로에 만들어주자.

나는 간단하게 메모장을 이용해 만들었다.

그 후, 다시 실행해보자.

이번에는 File Size Incorrect! 라는 문구가 뜨면서 정상적으로 실행이 되지 않는다.

또 다시 Ollydbg를 이용해 분석해보자.

이 부분에서 makeflag.source 파일의 Size를 읽어

EBP-4 부분인 0019FEDC에 값을 저장한다.

그 후, 0F 와 EBP-4를 비교해 JE문을 실행시킨다.

makeflag.source 파일의 Size를 15로 맞추고 다시 실행해보자.

 

나는 abcdeabcdeabcde를 makeflag.source에 입력해줬다.

그 후 프로그램을 실행해봤다.

^_^ 이번에는 File Content Incorrect! 라는 문구와 함께 프로그램이 정상적으로 실행이 되지 않는다.

다시 Ollydbg를 이용해 분석해봤다.

이 구문은 EBP-A ~ EBP-18 부분에 makeflag.source 파일의 내용을 저장한다.

그 후, 0x(31, 32, 32, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 35)와 비교한다.

모두 맞으면 JE문을 실행해 Flag를 출력한다.

0x31 -> 1

0x32 -> 2

0x33 -> 3

0x34 -> 4

0x35 -> 5

이므로 makeflag.source 파일 내용을 12233344455555로 바꾸고 다시 실행해봤다.

 

flag: md5(flag)

Reversing ALL Clear!

'Wargame > KH Wargame' 카테고리의 다른 글

[KH Wargame] Web07 풀이  (0) 2020.08.07
[KH Wargame] Network04 풀이  (0) 2020.08.07
[KH Wargame] Reversing01 풀이  (0) 2020.04.25
[KH Wargame] Misc04 풀이  (0) 2020.04.25
[KH Wargame] Misc03 풀이  (0) 2020.04.24