Study/Reversing
FSC_Level1 풀이
blupine
2019. 3. 20. 09:25
- 사전 정보 수집
- 해당 바이너리를 실행할 경우 위와 같이 키를 입력하라는 메시지가 출력된다.
- 바이너리가 요구하는 키를 맞힐 경우 플래그가 출력되는 형식이라고 추측할 수 있다.
- PEiD를 이용하여 확인해본 결과 해당 바이너리는 PEiD로는 알 수 없는 방법으로 패킹되었거나 패킹되지 않았음을 확인할 수 있다.
- 패커가 사용되었는지 확실히 하기 위해 IAT를 봐서 추가적으로 확인할 수 있다.
- 패커는 대부분 IAT를 망가뜨리기 때문에 PEView를 이용하여 해당 바이너리의 IAT를 확인했을 때 Import한 함수의 개수가 적으면 패킹이 되었을 것이라 의심해볼 수 있다.
- PEView를 이용하여 해당 바이너리의 IAT를 확인해본다.
- 해당 바이너리가 두 개의 dll로부터 충분히 많은 Import 함수가 존재하므로 패킹되지 않은 바이너리임을 알 수 있다.
- 추가적으로 해당 바이너리의 Image Base는 일반적인 EXE 파일이 가지는 0x400000 번지가 아닌 0x69000000이었다. 따라서 해당 주소부터 분석을 진행한다.
- 분석
- 먼저 실패할 경우 출력되는 메시지부터 백트레이싱을 수행한다.
- 참조된 문자열들을 검색해본 결과 0x69001152번지에 해당 문자열이 있는 것을 확인했다.
- 해당 위치의 윗부분에 문자열을 입력받고 특정 문자열과 비교를 하는 stricmp 함수를 발견할 수 있었다.
- 해당 함수에 bp를 걸고 실행 시 어떤 문자열이 오는지 확인해본다.
- 비교 대상 문자열은 "Asm07REC"이다.
- 해당 문자열을 입력하면 다음과 같이 플래그가 출력된다