EnCase

[EnCase] Zip 파일 복구 (1)

도깬리 2022. 8. 3. 07:04

안녕하세요. 도깬리 포렌식스 입니다.

오늘은 Zip 파일 복구에 대하여 알아 보겠습니다. 며칠째 계속 비가 내리네요. 기운 잃지 마세요.

 

Zip 포맷 개요

ZIP 포맷의 개발자: Phil Katz

OS 안에 ZIP 파일을 만들고 풀 수 있는 기능이 내장되어 있습니다.

- Windows Explorer

- Mac OS X Finder

 

파일의 형식

ZIP 포맷에 대한 정보는 KPWARE 사이트에서 APPNOTE.txt 다운받아 확인 가능합니다.

 

 

ZIP 파일에 포함된 모든 개별 파일은 각각의 로컬 파일 헤더와 중앙의 디렉토리 헤더를 모두 갖습니다.

각각의 파일에 대한 압축된 데이터는 각 파일의 로컬 파일 헤더의 바로 다음에 위치합니다.

중앙의 디렉토리 헤더가 있기 때문에  ZIP 파일에 포함되었던 개별 데이터가 삭제되거나 손상되어도 디코딩이 가능합니다.

- 파일의 시그너처: PK

 

로컬 ZIP 파일 헤더의 구조 (기본 구조임)

 

Offset Length Description
0 4 bytes Local file header signature (0x04034b50)
4 2 bytes Version needed to extract
6 2 bytes General purpose bit flag
8 2 bytes Compression method
10 2 bytes Last-modified file-time
12 2 bytes Last-modified file-date
14 4 bytes CRC-32
18 4 bytes Compressed size
22 4 bytes Uncompressed size
26 2 bytes File path/name length
28 2 bytes Extra field length
30 Variable File path/name
Variable Variable Extra field

 

 

중앙 디렉토리 파일 헤더 시그너처(Central Directory File Header Structure)

 

Offset Length Description
0 4 bytes Central file header signature (0x02014b50)
4 2 bytes Version made by
6 2 bytes Version needed to extract
8 2 bytes General purpose bit flag
10 2 bytes Compression method
12 2 bytes Last modified file-time
14 2 bytes Last modified file-date
16 4 bytes CRC-32
20 4 bytes Compressed size
24 4 bytes Uncompressed size
28 2 bytes File path/name length
30 2 bytes Extra field length
32 2 bytes File comment length
34 2 bytes Disk number start
36 2 bytes Internal file attributes
38 4 bytes External file attributes
42 4 bytes Relative offset of local header
46 Variable File path/name
Variable Variable Extra field
Variable Variable File comment

 

 

로우 레벨 ZIP 데이터 복구

압축 파일이 손상되었을 때에도 로컬 ZIP 파일 헤더를 이용하여 개별적으로 압축된 파일에 대한 선별적 복구가 가능합니다.

로컬 및 중앙의 디렉토리 ZIP 파일 헤더는 하나 이상의 파일이 특정한 장치에 존재했었음을 의미합니다.

File Carver EnScript를 이용하면 삭제된 ZIP 파일을 복구 가능합니다.

 

ZIP Index Entry Finder EnScript 모듈 사용하기

로컬, 중앙 디렉토리 파일 헤더를 찾아 디코딩하고, 그것을 자동으로 목록화하는 기능이 있습니다.

파일 이름, 마지막으로 쓰여진 날짜, 파일 크기 등에 대한 데이터를 엑셀형식으로 내보낼 수 있습니다.

각각의 헤더에서 CRC-32 값도 추출 가능합니다.

CRC-32 값을 이용하여 문서의 동일성을 검증할 수 있습니다.

다만, 암호가 걸린 ZIP 파일에 대한 처리 기능은 없습니다.

 

 

위 그림에서 오프셋 2336256 파일의 경우, ZIP 파일 처럼 보이지만 완전한 것이 아닙니다.(압축을 풀면 에러가 남) 왜냐하면 압축된 데이터 다음에 이어지는 로컬 헤더에 불과하고, 중앙 디렉토리 레코드가 없기 때문입니다.

WinRAR는 한꺼번에 여러 개의 압축에 대한 손상을 복원할 수 있습니다.

 

 

 

 

 

감사합니다. 오늘도 즐거운 하루 되세요.

 

"좋아요"와 "구독하기"는 힘이 됩니다.

 

참고문서 : EnCase Advanced Forensics