Sharif 2016 - forensic 150
문제는 바이너리 데이터 파일이 주어진다.
이미지 파일도 아니고 어떤 파일도 아니다. 파일을 훑어보면 png파일을 카빙할 수 있다.
이유는 모르겠으나 winhex에서는 카빙이 되지 않아 손으로 직접 카빙했다.
카빙된 이미지 파일은 다음과 같다.
width = 1570, height = 74, bit depth = 8로 가로, 세로길이, bit depth를 하면 1570*74*8 => 116,180 bytes가 된다.
여기서 알아야 할 점은 주어진 바이너리 데이터가 png이미지의 바이너리 파일이라는 점이다.
하지만 제공된 데이터 파일에서 png파일을 빼면 116,254 bytes가 남는다. 위 사진에서 계산한 116,180 bytes 와는 맞지 않는데 두 차이가 74 bytes가 된다.
그렇다면 위 사진에서 제공된 이미지 픽셀의 가로 길이가 1570이 아닌 1571이라는 점을 알아야 한다.
이제 바이너리 데이터 파일을 png로 변환해야 하는데 convert기능을 이용한다.
그러면 1571x74의 png이미지가 데이터를 기반으로 생성이 되며 이를 열어보면
위 이미지가 나온다.
[ 파이썬으로 convert를 대신하는 소스코드 작성 필요 ]
Answer : SharifCTF{100ae53903cbb68ab523c8e858034988}
'CTF | wargame' 카테고리의 다른 글
Sharif 2016 / forensic 200 Bsniff (패킷 분석, 비트코인) (0) | 2017.03.30 |
---|---|
Sharif 2016 / forensic 150 strange pdf (pdf 분석) (0) | 2017.03.30 |
codgate 2013 - forensic 100 (sqlite분석, plist분석) (0) | 2017.03.30 |
Sharif 2016 / misc 150 Lost Voice (ffmpeg, mp4 frame 추출) (0) | 2017.03.30 |
codegate 2013 - forensic 200 (torrent 분석, bencode editor, 증거물 찾기) (0) | 2017.03.29 |