짱짱해커가 되고 싶은 나

[NONamed Wargame] 입사 테스트 [2] writeup 본문

forensic

[NONamed Wargame] 입사 테스트 [2] writeup

동로시 2021. 1. 7. 23:19

문제 파일을 다운 받았더니 열 수 없다고 한다.

이미지 파일 복구 문제라고 한다.

음..? jpg인데 익숙한 헤더 시그니처가 보인다. 저건 png의 파일 헤더다.

그러면 확장자를 png로 바꾸면 열릴까?

앗.. 그래도 안된다.. 왜쥥

 

아 png 는 89 50 4E 47이다. 고쳐보자.

열리긴 했는데 검정 화면만 보인다. 무언가 더 복구해야할 것 같다.

png는 footer 시그니처도 있으니까 여기도 한 번 확인해보자.

 

뒤에 FFD9는 jpg 푸터니까 이 부분만 지워준다.

이미지 복구를 검색해보니 삭제된 이미지 파일 복구가 많이 뜬다.

 

이것도 삭제된 이미지 파일일까..? 흠냐; 힌트를 들었는데 apng 문제라고 한다.

 

*APNG : PNG를 확장한 이미지 파일 포맷.

apng는 사진 여러장을 합쳐 애니메이션을 구현하는 형식의 파일이라고 한다.

 

즉, 이 png에는 여러 사진 파일이 존재할 것이다.

 

출처: 위키백과

png는 보통 시그니처 + 그림 헤더 + 그림 데이터 + 그림 끝부분 의 형식으로 구성되어 있다고 한다.

 

출처: 위키백과

그리고 이게 apng로 변환될때는 다음과 같이 png 시그니처 + 그림 헤더 + (그림 데이터) + (fdAT) + .. + (그림 끝) 으로 구성된다.

 

처음 IDAT
두 번재 IDAT

총 2개의 IDAT가 나왔다. 즉, 이. 파일은 2개의 png파일로 만들어졌다는 것이다.

 

그러면 이걸 분리시켜야 답이 나오는걸까 아니면 apng 중에서 잘못된 부분이 있다면 고쳐서 나오게 하는걸까..?

처음 가정으로 foremost를 써봤는데 파일이 분리 되지 않았다. 흠.. 후자로 생각해보고 apng를 조금 더 자세히 알아보자.

 

아까 구조를 봤을 때 넘긴 부분 중에 acTL, fcTL, frame의 개념이 있다.

acTL은 청크는 처음 IDAT 이전에 나오는 청크라고 한다.

초기에 output buffer에는 우리가 본 것처럼 검정 화면이 보인다고 한다. 이 때 너비와 높이는 IHDR chunk에서 가져온다.

디폴트 이미지는 IDAT 전에 하나의 fcTL 청크를 갖고 있는데 이로써 애니메이션의 첫번째 프레임을 갖는 거라고 한다.

만약 그렇지 않다면 디폴트 이미지는 애니메이션의 일부가 아니라고 한다. 보면 얘는 처음에 IDAT 전에 fcTL을 갖고 있다.

 

각 프레임들의 fcTL은 시퀀스 번호가 있는데 0 부터 중복이나 간격 없이 차례대로여야한다.

두 번째 프레임부터는 fdAT 청크로 인코딩이 되기 때문에 fcTL - fdAT 순서다.

 

tweakpng를 쓰고 싶은데 맥은 지원을 안해서.. 툴을 찾...는..중... 인데.. 못 찾겠어서 윈도우로 옮겨서.. 해봐야겠다..

아는 사람.. 추천.. 좀

 

흠 보니까 좀 순서가 뒤죽박죽 같다. 흐음

일단 acTL은 첫 번째 fcTL 바로 앞으로 가야한다.

그 다음은 fcTL - IDAT 순으로 가면 되는데 fcTL도 2개 IDAT도 2개다.

fcTL은 앞에서 시퀀스 순서대로라고 했으니까 sequence 0이 먼저다.

IDAT는 여러 개일 경우 length가 긴 것이 우선이다. 따라서 IDAT length 32768이 먼저다.

 

IDHR - acTL - fcTL(#0) - IDAT(32768) - IDAT(7316) - fcTL(#1) - fdAT(2241) - IEND

 

이제 tRNS가 어디로 가야하는지 알아야한다.

tRNS chunk는 trasparency 정보가 들어있는 청크인데 png chunk 구조를 찾아보면 IDHR 다음에 나온다.

 

그래서 최종적으로 IDHR - tRNS - acTL - fcTL(8) - IDAT(32768) - IDAT(7316) - fcTL(26) - fdAT(2241) - IEND 순서가 된다.

 

또 보니까 안 움직이고 네모 박스만 보여서 찾아보니까 크롬은 뭐 png 지원 안한다 이러길레 맥으로 가져와서 열었다.

그랬더니 이미지가 2개가 나왔고 그 중 하나에서 두둥~ ^^;

'forensic' 카테고리의 다른 글

03. 디지털 증거  (0) 2021.01.17
02. 포렌식 랩과 툴  (0) 2021.01.13
[NONamed Wargame] MagicIMAGE writeup  (0) 2021.01.05
[Suninatas] 21 writeup  (0) 2021.01.04
01. 디지털 포렌식  (1) 2021.01.03
Comments