디지털 데이터
리틀 엔디언
컴퓨터에서 2바이트 이상의 데이터를 저장할 때 빅 엔디언(Big Endian)과 리틀 엔디언(Little Endian) 방식 중 하나를 사용
리틀 엔디언
: 작은 바이트부터 메모리에 저장하는 방식
ex) 0x01234567을 메모리에 저장하면 아래처럼 저장됨
| 메모리 주소 | 0x100 | 0x101 | 0x102 | 0x103 |
| 16진수 | 0x67 | 0x45 | 0x23 | 0x01 |
| 2진수 | 0110 0111 | 0100 0101 | 0100 0111 | 0000 0001 |
리틀 엔디언에 대해 잘 알아야 하는 이유
1) 디지털 포렌식에서 주로 다루는 Windows 운영체제는 Intel 기반의 CPU 아키텍쳐로 구성되어 있고, 상당수의 CPU 아키텍쳐는 리틀 엔디언 방식을 적용
2) 파일 시스템이나 파일 구조를 자주 분석하는데 리틀 엔디언 표현 방식으로 값을 읽는 경우가 많음
리틀 엔디언 실습
VBR을 Hxd로 조회
0x0B - 0x0C (2byte): Bytes per sector
0x0D - 0x0D (1byte): Sectors per cluster
0x1C - 0x1F (4byte): Hidden sectors
0x28 - 0x2F (8byte): Total sectors

Bytes per sector = 0x200
Sectors per cluster = 0x8
Hidden sectors = 0x3A800
Total sectors = 0x3A1E246F
*파일 시그니처 영역은 리틀 앤디언 방식 적용하지 않고 읽기도 함
ex)
0x03 -0x0A (8byte): OEM ID
리틀 앤디언 방식: SFTN이라고 읽음
but 대부분 NTFS로 읽음
=> 시그니처 영역은 예외적으로 적용됨
인코딩
인코딩
: 데이터를 정해진 규칙에 따라 특정한 형식으로 변환
인코딩 vs 암호화
| 인코딩 | 암호화 |
| 누구나 규칭에 따라 디코딩하면 해석 가능 | 암호화 키없이 복호화 불가능 |
| 데이터 전달이 목적 | 데이터 유출 및 변조 방지가 목적 |
ASCII 인코딩
:ASCII 테이블에 따라 값을 문자로 변환하는 인코딩

총 128개 문자와 특수문자를 0x00 = 0x7F (0-127)의 숫자로 매핑한 테이블

Base64 인코딩
: 바이너리 데이터를 미리 지정된 64개의 문자를 이용해 표현하는 인코딩
- 오직 패딩으로만 사용되는 =문자를 제외하고 64개 문자만 이용(바이너리 데이터는 0x00부터 0xFF까지 값을 가짐)
- Base64 인코딩이 적용된 데이터는 원본에 비해 길이가 약간 증가

- 독특한 형태때문에 데이터의 형태를 보고 Base64 인코딩 여부 확인 가능

- 영어 대문자, 소문자, 숫자, 일부 특수문자로 인코딩
- 온라인 웹사이트로 쉽게 수행 및 변환 가능
- 인코딩/디코딩할 크기가 너무 큰 경우, Python 같은 프로그래밍 언어로 수행 가능
UTF-8 인코딩
: 현재 인터넷 사이트 및 프로그램에서 가장 많이 사용되는 방식
- 주로 유니코드에 사용
가변 길이 인코딩: 입력 값이 존재하는 범위에 따라 인코딩 결과를 표시하는 바이트 수가 달라지는 인코딩 방식
- 데이터를 몇 바이트 단위로 끊어 해석해야 하는지 알려주는 지시자를 인코딩되는 데이터에 포함함
유니코드
: ASCII와 달리 한국/중국/일본어 등 전 세계 문자를 다루도록 설계된 표준 문자 전산 처리 방식
- 모든 글자는 U+AC00 - D7A3으로 매핑되어 있음
- 유니코드 내 한글이 가지는 범위 값에 UTF-8 인코딩 수행 시 3바이트 크기를 가짐
- 아래와 같은 모양을 가지므로 이 패턴으로 바이너리 데이터 분석으로 한글 찾기 가능

- 영어 대/소문자와 숫자는 UTF-8 인코딩 결과가 ASCII와 동일
파일 시그니처
파일 시그니처
: 파일의 콘텐츠를 식별하기 위해 사용되는 데이터
헤더 시그니처: 앞부분의 파일 시그니처 ex) PNG: 89 50 4E 47 0D 0A 1A 0A
푸터 시그니처: 뒷부분의 파일 시그니처 ex) 49 45 4E 44 AE 42 60 82
파일 시그니처의 필요성
- 시그니처를 확인함으로써 해당 파일 형식 구별 가능
- 파일 확장자가 변조 및 없다면 시그니처를 통해 판별해야 함
*파일 확장자: 파일명에 포함되는 . 이후 텍스트
사용자가 임의로 바꿀 수 있으므로 신뢰x
자주 사용하는 파일 시그니처 모음
| 분류 | 파일 형식 | 헤더 시그니처 | 푸터 시그니처 | 비고 |
| 압축 | ZIP | 50 4B 03 04 (PK) |
||
| 압축 | 7Z | 37 7A BC AF 27 1C (7Z) |
||
| 문서 | 25 50 44 46 (%PDF) |
25 25 45 4F 46 (%%E0F) |
||
| 문서 | DOCX XLSX PPTX |
50 4B 03 04 (PK) |
ZIP 구조와 동일 | |
| 그림 | PNG | 89 50 4E 47 0D 0A 1A 1A (PNG) |
49 45 4E 44 AE 42 60 82 (IEND) |
|
| 그림 | JPG(JPEG) | FF D8 FF E0 XX XX 4A 46 49 46 (JFIF) |
FF D9 |
파일 확장자
파일 확장자
: 파일 이름에서 파일 종류와 역할 표시
- . 표시 이후 나타나는 부분 ex) dreamhack.txt => txt부분
- 보통 프로그램에서 자동으로 지정 ex) PPT 사용시 일반적으로 .pptx를 가짐
- 작성한 엑셀 파일은 .xls 또는 .xlsx, 메모장 파일은 .txt
| 분류 | 확장자 | 비고 |
| 압축 | .zip .rar .7z .tar .gz |
|
| 문서 | .pdf .doc/docx .xls/xlsx .ppt/pptx .hwp |
Adobe Word Excel Powerpoint 한글 |
| 그림 | .png .jpg/jpeg .gif |
|
| 오디오 | .mp3 .wav |
|
| 비디오 | .mp4 .avi |
|
| 텍스트 및 코드 | .txt .json .xml .html .js |
텍스트 JSON 형식 데이터 XML 형식 데이터 HTML 스크립트 자바 스크립트 코드 |
| Windows 프로그램 | .exe .dll .lnk .tmp |
응용프로그램 라이브러리 바로가기 임시파일 |
파일 확장자 활용
Everything
:컴퓨터에 있는 모든 파일을 쉽게 검색할 수 있는 도구
- Windows 운영체제에서 제공하는 Windows 인덱싱 서비스를 이용해 컴퓨터에 존재하는 대부분의 파일 정보를 데이터베이스로 만들어 두고 빠르게 검색 가능

path: <검색 경로>
- 특정 경로 내 파일들을 수정날짜가 빠른 순서대로 정렬
- 하위 폴더도 재귀적으로 검색됨

path: <검색 경로> //해당 경로 내에 있는 모든 파일
*.exe //.exe 를 이름으로 하는 모든 파일
size: <크기 조건> //해당 크기 조건을 만족하는 모든 파일
디지털 장치
저장장치
컴퓨터 구조와 저장장치

메모리(RAM): 휘발성 메모리를 저장하고, CPU에서 접근 속도가 빠르기 때문에 주기억장치라고도 부름
- 사진처럼 길고 얇으면서 아래쪽에 연결 단자가 있는 형태

RAM 메모리: 컴퓨터 인쇄회로기판(PCB) 중 아래 사진과 같은 RAM 슬롯에 장착되어 있음

하드디스크(HDD)
하드디스크와 SSD: 일반적으로 저장장치라 부르는 장치
- 비휘발성 데이터 저장
- 바탕화면이나 C드라이브에 저장된 파일들이 저장됨
- 데스크톱이나 노트북은 SSD를 사용하는 추세이지만,
- HDD는 기업용PC나 대용량 저장이 필요한 경우에 여전히 많이 사용됨
- 하드디스크는 충격으로 인한 데이터 손상 방지를 위해 커버가 있음

- 커버를 벗기면 사진처럼 내부구조가 있음
- 동그란 플래터가 계속해서 회전하고 바늘모양의 헤드가 플래터로부터 데이터를 읽어오는 방식
- 크기가 크고 충격에 약하기 때문에 보통 별도의 슬롯에 보관
SSD
SSD: 반도체를 사용해 데이터를 저장하는 장치
- 하드디스크에 비해 높은 속도와 안정성으로 하드디스크를 대체
- 연결되는 인터페이스에 따라 모양이 달라짐
- 외장형 SSD도 자주 사용됨
- 외장형은 USB같은 외부 포트로 연결하기 때문에 데스크톱 외부에서 쉽게 발견 가능
USB 플래스 드라이브
USB 플래스 드라이브: USB 표준 규격을 이용해 데이터를 저장하는 장치
- USB나 USB 메모리라고 부름
- 작고 가벼워 휴대성이 좋음
- 파일 이동 및 보관용
SdCard
SdCard: USB보다 작고 가벼운 저장장치
- 주로 디지털 카메라, 내비게이션, 블랙박스 같은 소형 기기 사용
- 별도의 포트가 있다면 직접 장착하기도 함
저장장치 인터페이스
IDE / ATA
IDE: 과거 하드디스크 연결을 위해 제작된 표준 인터페이스 규격
- 이후 이름이 ATA로 변경됨
- ATA 후속격인 SATA와 차이를 위해 PATA라고도 부름
- IDE = ATA = PATA
- 현재는 자주 사용x

- 왼쪽부분에 IDE 커넥터, 오른쪽부분에 전원 연결
- IDE 커넥터: 총 40판의 규격을 가짐
SATA
SATA: 직렬 전송 방식을 이용하면서 기존 IDE 방식에 비해 더 빠른 속도와 높은 안정성 지원
- 현재까지도 데스크톱에서 많이 이용되는 인터페이스

- 왼쪽이 SATA 데이터 단자, 오른쪽이 STAT 파워 단자
PCI / PCIe
PCI: 컴퓨터 메인 보드에 주변 장치를 장착하기 위한 컴퓨터 버스의 일종이자 인터페이스
- 속도가 빠르고 다양한 크기를 가져서 현재도 자주 사용
- 버스: 컴퓨터 부품을 연결해 정보 전송하는 통신 시스템
- PCI는 고정된 크기, PCIe는 다양한 크기를 가짐
- 주로 그래픽 카드 연결에 사용됨
- SSD가 PCI/PCIe에 연결되는 경우도 있음
M.2
M.2: 소형 커넥터 규격으로, 현재 소형 중 가장 많이 사용됨
- 최근 데스크톱이나 노트북에는 M.2 전용 슬롯이 있음
주의할점
- M.2는 연결 단자 형태에 대한 표준
- 여러 형태에 따라 데이터 전송 방식이 달라질 수 있음
USB
USB: 장치와 장치를 연결하는 인터페이스의 규격이자 동시에 데이터를 전송하는 프로토콜
- 여러 타입 존재
- A 타입: 일반적으로 사용(키보드, 마우스, 무선 블루투스 등)
- B타입: 과거 디지털 카메라나 프린터, MP3등에 사용(현재는 자주 사용x)
- C타입: 빠른 속도로 최근도 사용됨
- USB 프로토콜 버전중 2와 3버전이 주로 사용됨
- 이론적으로 두 버전은 호환 가능하지만, 장치에 따라 3은 동작하지 않을 수도 있음
디지털 포렌식 도구
하드웨어 장비
디스크 이미지 장비
디지털 포렌식 이미지 장비: 디스크 이미징이나 복제 수행
쓰기 방지 장치(Write-Blocker): 하드디스크와 같은 저장 매체에 접속해 데이터 살펴볼 때 데이터 쓰기를 방지해 불필요한 변조를 막아주는 장비
패러데이(Faraday): 디지털 장치의 전자기파를 차단해 외부와의 통신 차단
- 무선 통신이 주로 일어나는 스마트폰이나 임베디드 기기에서 불필요한 무선 통신으로
- 데이터 변조가 발생하지 않도록 방지
소프트웨어 도구
비휘발성 데이터 수집 및 분석 도구
1) FTK Imager
- 비휘발성 데이터 수집 빛 분석
2) KAPE(Kroll Artifact Parser And Extractor)
- Eric Zimmerman의 도구를 이용해 데이터 수집부터 분석까지 한번에 수행할 수 있는 플랫폼
- 자주 사용하는 데이터 종류 및 분석방법을 지정해두면 빠른 속도로 반복적인 작업까지 대체 가능
휘발성 데이터 수집 및 분석 도구
- 불필요한 변형을 방지하기 위해 GUI도구보다 CLI 기반 도구 선호
Volatility
- 메모리 덤프 내에서 프로세스 정보를 분석하고 프로세스와 연관된 파일 추출 도구
통합 포렌식 도구
- 한번에 많은 작업 수행 가능
- 반복작업 단순하게 처리
- 분석 시간이 오래 걸리고 자동분석만으로 온전히 해석 불가
- 비쌈
- ex) Magnet AXIOM
'SWUFORCE > 드림핵' 카테고리의 다른 글
| 시스템 로그 (0) | 2026.05.17 |
|---|---|
| 레지스트리 (0) | 2026.05.06 |
| 파일 시스템 (0) | 2026.04.29 |
| [Digital Forensics Basics] 디지털 증거(디스크 이미징, 메모리 덤프, 해시함수) (0) | 2026.03.27 |
| [Digital Forensics Basics] 소개&디지털 포렌식 기초 (0) | 2026.03.22 |