문제 종류 - Reversing
사용한 툴 - Ollydbg, HxD
Flag, Hint, 정답 형식
flag = ?
hint: Win32 console application
정답 형식: flag의 해쉬 값
풀이
파일이 하나 주어진다. HxD를 통해 분석해봤다.
MZ로 시작하는 걸 봐서는 .exe 파일인 거 같다. 확장자를 .exe로 바꾸고 실행해보자.
Passcode를 찾는 문제라고 생각이 든다.
여기서 알 수 있는 정보는 Passcode는 10자리란 것이다.
ollydbg를 이용해 분석해보자
우선 main function을 담당하는 이 부분에 BP를 걸어준다.
그 후 F7를 눌러 함수 안으로 들어가보자.
그러면 다음과 같이 스택에 값을 바꾸는 코드가 존재한다.
쭉 내려서 해당 주소에서 BP를 걸어준다.
이 CALL문을 실행시키면 콘솔에서 입력을 받기 시작한다.
abcde12345란 값을 콘솔에 입력해봤다.
해당 EBP 부분에 내가 넣은 값이 저장되었다.
그리고 해당 분기를 보면 EAX와 ECX를 비교해 점프문을 실행한다.
여기서 JNZ = Jump if not zero라는 뜻이다.
모든 분기를 통과하면 다음 문자열을 볼 수 있을 것이다.
아마도 이 구문을 실행시키면 Flag가 나오는 듯 하다.
모든 분기를 지나기엔 너무 귀찮아서 그냥 코드를 패치했다.
임의로 JMP문을 만들어 바로 00401231로 Jump했다.
이 구문을 실행하면 Flag를 얻을 수 있다.
flag: md5(flag)
'Wargame > KH Wargame' 카테고리의 다른 글
[KH Wargame] Network04 풀이 (0) | 2020.08.07 |
---|---|
[KH Wargame] Reversing02 풀이 (0) | 2020.04.25 |
[KH Wargame] Misc04 풀이 (0) | 2020.04.25 |
[KH Wargame] Misc03 풀이 (0) | 2020.04.24 |
[KH Wargame] Misc02 풀이 (0) | 2020.04.24 |