악성코드 분석, 디지털 포렌식 등을 할 때 파일의 포맷을 아는 것은 굉장히 중요하다.
각자 개인 폴더에 있는 사진하나씩을 있을것이다. 대부분의 사진들은 JPG, JPEG, PNG 의 확장자로 되어있다.
포토샵을 자주 다루거나 디자인 쪽 하는 사람들은 많이 들어봤을 텐데 이러한 것들을 확장자라고 한다.
파일 형식이라고도 하는데 각 파일 형식마다 가지고 있는 고유의 특징이 있다. 이러한 특징들은 정해져 있으며 이를 파일 시그니처 또는 파일 매직 넘버라고 한다.
파일 시그니처 = 매직넘버
손상된 파일을 복구하거나 안에 숨겨진 내용을 파악하는 포렌식같은 경우에 이를 주로 사용한다고 한다.
다음의 사진을 보자.
PNG 이미지 | JPG 이미지 |
왼쪽은 PNG 파일이고 오른쪽은 JPG 파일이다. 그림의 이미지는 그냥 아무거나 가져온 것이다. 위에서 말한대로 각 파일 형식마다 고유의 시그니처를 가지고 있다고 했다. 해당 시그니처는 헥사코드 즉 16진수로 구성되어 있으며 이는 HXD 라는 프로그램을 통해서 확인이 가능하다.
파일 시작 부분 | 파일 끝 부분 |
HXD라는 프로그램을 사용해서 왼쪽사진을 돌려본 결과이다. 존나 길게 16진수 값이 나오는데 왼쪽 그림은 파일 시작부분이고 오른쪽 부분은 파일의 끝 부분이다.
이제 PNG의 시그니처를 확인해보자
89 50 4E 47 OD OA 1A OA 이렇게 7번째 숫자까지 표시된 부분이 파일의 시그니처(헤더라고도 함)이다. 이 부분을 가지고 이 파일이 어떠한 포맷인지 알수 있는 것이다. 또한 파일 헤더 뿐만 아니라 footer(푸터)라는 것으로도 형식을 알수있다.
오른쪽 그림에서 보면 49 45 4E 44 AE 42 60 82 이 부분이 푸터 부분이다.
정리하자면 파일의 헤더와 푸터를 확인하여 해당 파일의 포맷을 확인할 수 가 있다.
아래의 표는 파일 형식이 가지고 있는 헤더와 푸터를 나타내고 있다. 아래의 JPG 형식의 헤더와 푸터를 확인하고 HXD 프로그램을 통하여 위에있는 JPG 파일을 돌려보면 동일한 값이 나온다.
이러한 점을 응용해서 생각해자면, 만약 어떠한 파일의 헤더는 PNG인데 푸터 부분이 이상하거나 다른 형식, 예를들어 JPG다? 그렇다면 해당 파일은 먼가 문제가 있거나 특정 누군가에 의해 조작된 파일로 의심된다. 두개의 파일이 합쳐졌다던지 .. 등..등..
결론을 말하면 각 파일의 형식마다 정해져 있는 특정 바이트로 파일에 포함되는 바이트들을 시그니처라고 한다.
File Type | Header Signature | Footer Signature | Description |
ICO | 00 00 01 00 | – | Windows Icon Format |
CUR | 00 00 02 00 | – | Windows Cursor Format |
BMP, DIB | 42 4D B M | – | Windows Bitmap Format |
GIF | 47 49 46 38 37 61 G I F 8 7 a | 00 3B ; | Graphics Interchange Format |
GIF | 47 49 46 38 39 61 G I F 8 9 a | 00 3B ; | Graphics Interchange Format |
TIF, TIFF | 49 49 2A I I * | – | Tagged Image File Format (little endian) |
TIF, TIFF | 4D 4D 2A M M * | – | Tagged Image File Format (big endian) |
PNG | 89 50 4E 47 0D 0A 1A 0A P N G | 49 45 4E 44 AE 42 60 82 I E N D B ` | Portable Network Graphics Format |
JPEG/JFIF | FF D8 FF E0 xx xx 4A 46 49 46 | FF D9 | JPEG/JFIF Format |
JPEG/EXIF | FF D8 FF E8 xx xx 45 78 69 66 | FF D9 | JPEG/Exif Format – Digital Camera Exchangeable File Format |
WMF | D7 CD C6 9A | – | Windows Metafile Format |
EMF | 01 00 00 00 | – | Extended(Enhanced) Windows Metafile Format Printer Spool File |
EPS | 25 21 50 53 2D 41 64 6F % ! P S – A d o 62 65 2D b e – | 25 25 54 72 61 69 6C 65 72 % % T r a i l e r 0A (presumption) | Adobe Encapsulated PostScript File |
출처 : http://forensic-proof.com/archives/323
'보안 > Linux' 카테고리의 다른 글
모스신호 wav 파일 생성하기 (0) | 2019.02.23 |
---|---|
network recovery (0) | 2019.02.17 |
스테가노그라피란? (0) | 2019.02.16 |
비즈네르 암호문 (0) | 2019.02.16 |
모스부호란? (0) | 2019.02.16 |