[FORENSIC] ZIP 파일헤더 및 분석방법

두비니

·

2021. 3. 6. 00:25

 

 

 

 

 


ZIP FILE HEADER


 

 

 

워게임 문제를 풀다가 만나게 되었는데 생각보다 정리할 부분이 많은 것 같아서 글로 작성합니다. 

 

0. ZIP파일이란?

너무 일상생활에서 많이 쓰여서 다들 알고있는 내용이지만, 위키에서 제공해주는 정의를 봅시다.

ZIP 파일 형식이란 데이터를 압축, 보관하기 위한 파일형식이다. ZIP 파일은 하나 혹은 여러 개의 파일들을 그 크기를 줄여 압축하고 하나로 묶어 저장한다. ZIP 파일 형식에서는 다양한 종류의 압축 알고리즘의 사용이 가능하나, 2009년 현재 Deflate 알고리즘만이 가장 많이 사용되고 지원되는 압축 알고리즘이다.

-WIiki-

 

1. ZIP파일의 일반적인 구조

결국 ZIP의 구조를 봐야하는 경우가 생기겠죠? 다음은 ZIP파일의 내용을 도식화한 내용입니다.

 

 

ZIP파일은 크게 Local File Header, Central Directory, 그리고 End of central directory record로 나뉩니다.

각각 파트가 맡는 일을 알아봅시다.

 

Local File Header : 파일에 대한 기본적인 정보가 저장됩니다. 

-포함 정보-

  • 압축 전후 파일 사이즈
  • 파일 수정 시간
  • CRC-32 체크섬
  • 파일 이름의 지역 포인터
  • 압축 해제시 필요한 정보들

Central Directory : Local File Header에 덧붙여 더 다양한 자료들을 보여줍니다. 파일 속성, 그리고 구조에 대한 로컬 기준을 가짐

 

End of central directory record : 말그대로 파일의 끝을 기록하며, 로컬 파일의 갯수와 상관없이 무조건 하나로 작성이 됩니다. 

 

3. 실습

실습을 직접 해볼 건데, ZIP파일의 헤더를 보는 방법은 HxD같은 응용 프로그램들을 사용하시면 될 것 같습니다. 요즘에는 온라인으로도 있는 것 같더라구요... 

근데 저는 개인적으로 010 Editor를 추천드립니다. 이게 말도 안되게 좋은게 밑에서도 보여주겠지만 각 파일에 대한 구역을 알아서 나눕니다.

010 Editor를 사용하는 방법은 다음 링크를 확인해주시면 될 것 같습니다.

blog.naver.com/koromoon/220582469720

 

헥사에디터 중의 유료 010 Editor 를 써야 하는 이유

이유는 단 하나 각종 파일들의 포맷 구조 템플릿을 지원해줌. 특정 파일의 포맷 구조를 알아본다고 구글링...

blog.naver.com

 

아무튼 010 Editor를 통해서 zip파일을 들여다보면

 

참고로 해당 ZIP파일은 HackCTF의 Secret Document라는 문제입니다.

 

이렇게 알아서 구역이 나누어 보입니다.. 처음 풀때는 노가다로 직접 찾아서 풀었는데 이렇게 보이니깐ㅎ... 허탈하네요

그리고 심지어 각 비트별로 분석 또한 보여줍니다.

 

 

이렇게 선택하면 비트가 선택된다구요!!!

위에서 열심히 공부했는데 툴이 알아서 잘 해줬네요...하하 

 

 

결론적으로 좋은 툴에, 적당한 지식을 겸비하고 있는 것이 가장 좋은 것 같아요. 굳이 계산방법 하나하나 파고있었던 나....바보....

 

 

참고 글

users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html

m.blog.naver.com/PostView.nhn?blogId=koromoon&logNo=220612641115&proxyReferer=https:%2F%2Fwww.google.com%2F

 

 

 

 

'FORENSIC' 카테고리의 다른 글

[Forensic] RDP 로그 분석 + 케이스분석  (0) 2022.10.24
Forensic Tools Starter Kit  (0) 2022.08.24
참고자료  (0) 2021.03.16
[FORENSIC] FAT 분석하기 & 파일 복구하기  (0) 2020.08.24
[FORENSIC] 0822 KUCIS 필기본  (0) 2020.08.22