1. File Signature
- 파일의 가장 처음에 위치하는 특정 바이트 (정체성을 나타냄)
- 파일의 첫 4bytes에 주로 표시 ( 일반적으로 부가정보 포함 16bytes 정도)
- Magic Number라고도 함
- 파일 포맷을 구분하기 위해 사용
- 아래 사이트에서 여러 파일의 시그니처를 볼 수 있다.
- http://forensic-proof.com/archives/300
파일 시그니처 모음 (Common File Signatures) | FORENSIC-PROOF
forensic-proof.com
2. 자주 쓰는 File Signature
1. PNG : 89 50 4E 47 0D 0A 1A 0A
2. PE (Portable Executable) : 4D 5A (MZ : Mark Zbicowski)
3 ZIP, APK, docx/pptx/xlsx : 50 4B 03 04 (PK : Phil Katz)
4. PDF는 '%PDF-버전'으로 시작 ---> 구글 검색
3. File Signature 복구
1. Hex Editor 열기
Mannayo 라는 파일이 있다.
무슨 파일일까? 어디서 만난다는 것일까?

우선 앞의 4bytes를 구글에 검색해보자.

7z 파일시그니처의 앞부분이 사라진 것을 알 수 있다.
따라서 사라진 부분을 채워주면 되겠다.
7z 확장자를 추가하고 압축을 풀어주니
yogi라는 파일이 생성됐다.

이번엔 무슨 파일일까
옆의 Text 부분을 보면 IHDR이라는 부분이 있다.
IHDR은 PNG 파일의 맨 앞에 위치하는 청크다.
그렇다면 이 파일은 PNG파일이고 PNG파일의 시그니처를 추가해주면 되겠다.
그리고 확장자를 바꿔주면

갤러리아백화점에서 만난다는 것을 알 수 있다.
다음은 조금 더 어려운 문제를 살펴보자.
Recme.zip 이라는 파일이 있다.

일단 zip파일은 맞을까?
파일에는 3가지 시그니쳐 부분이 있다.
1. Local File Header
- Local File Header 부분은 압축파일에 대한 기본 정보들이 포함되어 있다.
- 압축 전후 파일 크기, 파일 수정 시간, CRC-32 체크섬
- 파일 이름의 지역포인터, 압축 해제시 필요한 아카이브 버전 등의 정보가 있다.
File Name?
-> 압축된 파일 이름 형식에 대해 임의의 길이와 바이트 순서를 나타냄
-> 임의의 길이로 구성된 바이트 배열 형태로 압축된 파일 컨텐츠
-> 비어있거나 디렉토리를 포함하는 경우 사용 안함

2. Central Directory
- Central Directory 부분은 Local File Header 의 확장된 부분이다.
- Local File Header의 데이터와 더해, 파일 속성, 구조에 대한 로컬 기준을 가진다.

3. End of Central directory Record
- ECDR 부분은 모든 아카이브의 싱글 템플릿으로 제공되며
- 아카이브의 종료를 작성한다.
- 포함된 데이터 중 가장 중요한 데이터는
- Central Directory 블록의 시작과 로컬 참조의 시작, 아카이브 레코드들의 숫자다.

자 이제 어느정도 정리가 되었다면, 다시 Recme로 돌아가보자.
이 파일의 앞부분 (c5 59 6d 6f)은 구글링 해도 좀처럼 나오지 않는다.
그럼 파일의 ECDR 부분을 찾아가보자.

파일의 이름이 Begging.py인가보다.
ECDR이 PK..로 시작되는 것을 보니 ZIP파일임을 추정할 수 있고
그 위에는 Central Directory의 PK도 보인다.
그럼 Central Directory가 Local File Header의 확장된 버전이므로
Central Directory가 손상되지 않았다는 가정하에
Local File Header에 필요한 부분만 추출하여 복구할 수 있겠다.

Central Directory는 File name으로 끝난다는 것을 알면
쉽게 특정할 수 있다.
이제 Central Directory와 Local FIle Header 구조를 비교하며
Local File Header에 필요한 부분을 옮겨보자.
물론 ZIP파일의 Central Directory는 50 4b 01 02로 시작하고
Local FIle Header는 50 4b 03 04로 시작한다는 것을 알고 있어야 한다.

File SIgnature부터 Version 정보, CRC, File Name까지 복구 하고나면

파일이 정상적으로 압축 해제된다.
'정보보안 > Forensic' 카테고리의 다른 글
| [정보보안][포렌식] 파일 시그니처(File Signature) (0) | 2023.07.21 |
|---|