문제 설명은 딱히 없고 힌트가 두 개 있는 것을 볼 수 있다.
그래서 zip 파일을 먼저 다운받아서 압축을 풀면,
이렇게 그림은 같지만 파일 명은 다른 비트맵 이미지 두 개와 힌트 png를 얻을 수 있었다.
hint에는
인간의 눈으로 볼 수 없다고 나와있다 그래서 HxD를 사용해야 하나보다라고 생각했다.
근데 열어서 비트맵 헤더 시그니처를 봤더니 별다른 이상이 없어서 뭐지 싶었다.
그래서 일단 문제에 있는 힌트를 활용해보기로 했다.
첫 번째 힌트는 리눅스 파일 비교 명령어를 사용해야 한다고 나와있었다.
그래서 리눅스 파일 비교 명령어를 구글링해봤는데 diff랑 cmp가 나왔다.
나는 열심히 diff로 하고 있었는데,, 나중에 두 번째 힌트가 나왔는데 cmp를 사용해야한다고 했다.
그래서 cmp로 두 비트맵 이미지를 비교해본 결과
228771바이트가 다르고, 3707줄이 다르다고 했다.
근데 HxD로 파일을 열어보면 쭉 데이터 값을 볼 수 있는데, 어떻게 저 다른 부분을 알아내는지 모르겠다.
그래서 cmp 명령어의 옵션을 찾아보았는데,
https://guswnsla1223.tistory.com/76
비교하는 두 파일 간 다른 문자 위치와 문자를 출력하는 옵션을 발견할 수 있었다.
그래서 옵션 l을 사용했더니
맨 앞 숫자는 두 파일간 다른 문자 위치인 것 같고 나머지 두 숫자는 두 파일 간 다른 문자를 나타내는 것 같았다.
바이너리 파일이므로 아스키코드로 문자를 표현하는 것 같아 아스키코드 표를 가지고 나타내보기로 했다.
170번대 숫자까지 있는 것으로 보아 Oct 부분을 이용해 문자로 변환하면 될 것 같았다.
그래서 먼저 helltaker.bmp의 부분을 메모장에다가 적어놓고 위의 표를 보면서 하나하나 번역했더니
Flag를 획득할 수 있었다.
성공!
출제: N0Named 해킹팀
'Forensics > CTF Write-Ups' 카테고리의 다른 글
[SWING 내부 CTF] Misunderstanding (0) | 2020.09.14 |
---|---|
[SWING 내부 CTF] OurImportantMemories (0) | 2020.09.13 |
[SWING 내부 CTF] baby_stego (0) | 2020.08.31 |
[SWING 내부 CTF] GroupProject_BadEnding (0) | 2020.08.31 |
[SWING 내부 CTF] What_did_you_do_yesterday (0) | 2020.08.22 |
댓글