본문 바로가기

Forensics/Windows Forensics

Thumbnail

썸네일(Thumbnail)은 원본 이미지를 축소하여 빠르게 검색할 수 있도록 해주는 기능이다. 이는 다양한 프로그램에서 사용되며, 대표적으로 윈도우 탐색기(Explorer)가 있다.

 

운영체제마다 지원하는 파일 형식은 다르지만, 일반적으로 이미지, 동영상, PDF, HTML 등의 미리 보기를 제공한다. 사용자가 특정 파일을 처음 열거나 해당 파일이 포함된 폴더를 탐색할 때, 시스템은 해당 파일의 썸네일을 생성하여 저장한다. 이후 다시 접근할 경우, 기존에 저장된 썸네일을 불러와 미리 보기를 제공함으로써 속도를 향상한다.

 

썸네일은 원본 파일이 삭제되더라도 시스템에 남아 있을 수 있다. 따라서 포렌식 분석 시 삭제된 파일의 흔적을 찾는 중요한 증거가 될 수 있다.

 

경로는 Users\[User Name]\AppData\Local\Microsoft\Windows\Explorer이며 thumbcache_#.db 형태로 저장되어 있다.

이름 정보
thumbcache_idx.db 썸네일의 인덱스 정보
thumbcache_32.db 32x32 픽셀보다 작은 썸네일이 저장되며 모두 BMP 형식
thumbcache_96.db 32x32 ~ 96x96 픽셀 사이의 썸네일이 저장되며 BMP 형식
thumbcahce_256.db 96x96 ~ 256x256 픽셀 사이이 썸네일이 저장되며 JPEG or PNG 형식
thumbcache_1024.db 256x256 ~ 1024x1024 픽셀 사이의 썸네일이 저장되며 모두 JPEG 형식

 

무료 공개 도구인 thumbcache-viewer를 사용하면 썸네일을 확인 가능하다.

 

1.  썸네일 구조

thumbcache_#.db 파일은 시그니처 "CMMM"을 기준으로 File Header와 Cache Entry로 나뉘어있다. 각각의 Cache Entry에는 썸네일이 저장되어 있다.

 

2. File Header 구조

범위(Hex) 크기(Byte) 이름 설명
0x00 - 0x03 4 "CMMM" Signature  
0x04 - 0x07 4 Format Version Windows Vista: 0x14
Windows 7: 0x15
Windows 8: 0x1A
Windows 8v2: 0x1C
Windows 8v3: 0x1E
Windows 8.1: 0x1F
Windows 10: 0x20
0x08 - 0x0B 4 Cache type *Windows 10 기준
16(0x00), 32(0x01), 48(0x02), 96(0x03),
256(0x04), 768(0x05), 1280(0x06), 1920(0x07),
2560(0x08), sr(0x09), wide(0x0A), exif(0x0B),
wide_alternate(0x0C), custom_stream(0x0D)
0x0C - 0x0F 4 Offset to first cache entry  
0x10 - 0x13 4 Offset to first available cache entry  
0x14 - 0x17 4 Total size of entries  

3. Cache Entry 구조

 

범위(Hex) 크기(Byte) 이름 설명
0x08 - 0x0B 4 "CMMM" Signature  
0x0C - 0x0F 4 Cache entry size  
0x10 - 0x17 8 Cache entry hash  
0x18 - 0x1B 4 Filename length  
0x1C - 0x1F 4 Padding size  
0x20 - 0x23 4 Data size  
0x24 - 0x27 4 Width  
0x28 - 0x2B 4 Height  
0x30 - 0x37 8 Data checksum  
0x38 - 0x3F 8 Header checksum  
0x40 - 0x5F 가변적 Filename  
0x62 - 0x-- 가변적 Data  

 

4. 이미지 추출하기

Data offset = Cache entry offset + (Cache entry size - Data size)

                  = 0x18 + (0x9F0 - 0x996)

                  = 0x18 + 0x5A

                  = 0x72

 

Data offset에서 Data size만큼 블록 선택하기(Ctrl + E) - 복사

 

5. 새로 만들기 - 붙여 넣기

 

'Forensics > Windows Forensics' 카테고리의 다른 글

Amcache  (0) 2025.02.27
IconCache  (0) 2025.02.27
점프 리스트  (0) 2025.02.25
Link File  (0) 2025.02.25
슈퍼패치  (0) 2025.02.23