Digital_forensic/File_format 4

[PNG] Python으로 CRC32 함수를 이용한 width, height 구하기

파이썬 zlib 라이브러리의 crc32 함수를 추가(import)하면 IHDR 청크의 CRC값을 이용하여 width 값과 height 값을 다음과 같이 구할 수 있다. from zlib import crc32 file_name = input('파일 이름 입력: ') data = open(file_name, 'rb').read() index = 12 IHDR = bytearray(data[index:index + 17]) width_index = 7 height_index = 11 target_crc = input('CRC 값 입력: ') target_crc = int(target_crc, 16) # target_crc = 0x3CFA9C16 for width in range(1, 2000): width_..

PNG file structure analysis

HEX editor를 활용하여 2개의 PNG 사진 파일을 직접 분석해본다. "사진1"을 HEX editor로 열은 뒤에 “CTRL+F” 버튼을 눌러 찾기 창을 열은 뒤에 PNG 파일의 헤더 시그니처 값을 입력하여 찾는다. '사진1_1'의 드래그한 부분이 헤더 시그니처 데이터들이다. 우측의 ‘Decoded text’를 확인 해보면 그 이후부터 순서대로 IHDR, PLTE, IDAT등의 청크들이 있는 것을 볼 수 있다. 또는 각 청크들의 이름을 찾기 창을 이용하여 검색해보는 것으로도 알 수 있다. PNG 파일의 필수 청크인 IHDR과 IDAT청크는 화면상에 보이지만 IEND청크는 보이지 않기에 푸터 부분인 IEND 청크를 검색해보면 '사진1_2'처럼 파일의 아랫 부분에 위치하여 있는 것을 알 수 있다. 처음..

PNG file structure

PNG 파일은 파일 시그니처와 다양한 청크(Chunk)들의 연속으로 이루어져 있다. 각 청크는 데이터와 해당 데이터의 길이, 유형을 포함하는 구조로 구성된다. 이 청크들은 디지털 포렌식(Digital Forensic) 관점에서 파일의 무결성(File Intergrity)을 확인하고 이미지를 복원하는 데 필수적이다. 따라서 특정한 청크를 무단으로 삭제하면 이미지 파일이 손상될 수 있다. 여기서 파일의 무결성은 파일이나 데이터의 원본 상태가 변조되지 않았음을 나타낸다. 파일이나 데이터의 무결성을 보장한다는 것은 해당 파일 또는 데이터가 정확하게 그대로 유지되었음을 의미한다. 청크(Chunk)는 PNG 파일 내의 데이터 조각을 나타내며 각각의 청크는 특정 유형의 데이터를 포함하는 논리적 단위로 구성된 구조이다..

파일 시그니처(File Signature)

‘파일 시그니처(File Signature)’는 문서에 따라 ‘파일 매직 넘버(File Magic Number)’라고도 부르며 파일 형식마다 가지고 있는 고유한 이진(binary) 패턴 이다. 파일 시그니처는 파일 형식(format)을 식별하고, 파일이 어떤 종류의 데이터를 포함하고 있는지를 알려준다. Signature Header Signature Footer Signature 파일의 처음 부분에 있는 시그니처는 헤더 시그니처(Header Signature)라고 하고, 마지막에 있는 시그니처를 푸터 시그니처(Footer Signature)라고 한다. 컴퓨터 소프트웨어나 응용 프로그램은 파일 시그니처를 사용하여 파일을 열 때 해당 파일 형식을 식별하고, 이에 따라 어떻게 처리해야 할지 결정할 수 있다. ..