본문 바로가기

포렌식/NONamed Wargame

포렌식_WEEK1_# NONamed Wargame Forensic_[A] 입사테스트 [2]

728x90
반응형
SMALL

이미지 파일을 복구하는 문제라구 한다.

파일을 다운받아서 열어보니 역시 이상하다…. 잘 열리지 않는다..

속성을 확인해 보아도 별게 없다

WinHex로 분석해보쟈.

 

분석을 통해 알 수 있게 되었따.

이 문제도 1주차에 풀었던 다른 문제들 처럼 "시그니처" 관련 문제이다.

 

이 파일에서는 헤더, 푸터 모두 잘못된 형태를 띄고 있다.

올바르지 않은 헤더 시그니처
푸터 시그니처

그래서 이 시그니처를 올바르게 바꿔주었다. 근데 여전히 파일이 이상하다….

오잉 머지

 

그래서 좀 더 알아보다가 "청크"라는 개념에 대해 알게 되었다.

요렇게 나와있다.

 

엇 근데 저기 IHDR이 눈에 익다.

아까 그 파일에서 IHDR이 있었다. Jpg로 괜히 바꾼 것 같다는 생각이 들었다

사실 png파일이었던 건가..?? 그래서 png파일의 헤더, 푸터 시그니처로 다시 바꾸었다.

 

 

그리고 푸처 시그니처도 다시보니 png 의 푸터 시그니처 뒤에 jpg의 푸터 시그니처가 붙어있었다ㅂ ㄷ ㅂ ㄷ

이것도 고쳐줬다.

 

 

기대를 하고 파일을 다시 열어보았는데 여전히 검은 화면이다….

뭐가 문제일까

 

이것저것 찾아보다가 *tweakpng라는 프로그램을 알게 되었다.

(*PNG 는 작은 chunk 단위로 이루어진 이미지 포맷인데, 이러한 단위를 분석해주는 툴)

이 툴을 이용해 분석을 해봤고...

어찌어찌해서 이렇게 나왔다.

 

여기에 있는 청크 각각을 잘 모르니까 간단하게 공부를 해보쟈.

 

*좀~더~알아~보고~가쟈~*

 

<fcTL : 프레임 제어 청크>

: PNG 명세에 정의된 부수적인 청크

 

<acTL : 애니메이션 제어 청크>

: 역시 PNG 명세에 정의된 부수적인 청크

acTL 청크 관련 부연 설명

대충 청크들을 분석해보면....(물론 이러한 분석이 없어서 알아낼 수 있긴 하겠지만..)

APNG 파일이라는 것을 알 수 있다.

그러니까 이에 대해서도 잠깐 공부하고 가쟈.

 

<APNG 파일>

: PNG와 후위 호환이 가능.

움직이는 이미지에 대한 지원을 추가한 '이식가능한 네트워크 그래픽(=PNG)' 포맷의 확장형.

전통적으로 GIF 포맷을 사용했던 간단한 움직이는 이미지를 대체하기 위한 형태.

즉, 모든 PNG 디코더는 APNG 특정 청크를 무시하고 단일 이미지를 표시할 수 있어야 한다.

(이 문장을 기억하라! 문제 풀이의 실마리를 제공해주는 단서이댜! )

 

 

이런 청크들 사이에도 정해진 순서가 존재한다.

 

이 위의 사진은 3개의 PNG 파일을 한개의 APNG파일로 만드는 것에 대해 청크를 어떻게 배열하는지를 나타내고 있는 것 같당.

청크들이 여러개 존재할 수 있는지, 어떤 순서로 배열되어야 하는지 등의 규칙...

사실 이것도 외우는 건 불가능할 것 같고...

필요할 때마다 찾아보는 게 좋을 것 같다.

이를 참고해서 내가 받은 파일도 나름 분석을 해봐야 할 것 같다.

일단 이거에 따라서 IHDR, acTL 순서로 먼저 만들어주쟈.

그리고 그 다음부터는 위의 그림처럼 프레임 여러개가 배열되어야 한다.

일단 tRNS IDAT 전에 와야 한다.

그리고 IDAT는 여러개가 존재하는 것이 가능하며, 만약 여러개가 존재한다면 연속으로 배열되어야 한다.

 

이러한 규칙들을 지켜가면서 배열을 바꾸니 다음과 같이 나왔당.

 

이거에서 두 IDAT의 순서를 추가로 후에 바꾸어주었다.

IDAT가 여러개 존재할 경우에는 크기가 큰것부터 배열해 주어야 한다고 한다.

두근두근하다.

 

한번 사진을 다시 열어 보쟈.

 

 

드디어 나왔다 무언가가…!!

음 먼가 별게 없다여기에 플래그값이 나와야 할 것 같은데

Winhex로 처리를 해봐도 역시 이거 하나밖에 안나온담..압축되거나 그런 형태는 아닌가보다.

움짤... 그니까 gif파일을 보면 여러 방법들로 프레임을 추출해서 저장할 수 있다.

Apng 파일도 이런식으로 할 수 있을 것 같아서 검색해보았다.

 

 

요런 사이트를 찾게 되었고 apng파일을 재생해 주었다.

캡쳐를 통해 다음과 같은 플래그값을 알아내었다…..

 

성공!

728x90
LIST