파일의 확장자는 그저 라벨입니다 — virus.exe를 photo.jpg로 이름 바꿔도 내용은 바뀌지 않습니다. 이 페이지는 각 파일의 처음 바이트를 읽어 60개 이상의 실제 매직 시그니처와 대조합니다: 이미지, 문서, 아카이브, 오디오/비디오, 글꼴, 실행 파일, 데이터베이스, 키. 감지된 형식, MIME 형식, 그 형식이 보통 쓰는 확장자, 확장자가 내용과 어긋날 때 경고, 형식이 실는 정보(이미지 크기, PDF 버전, MP4 브랜드)를 받습니다. 모든 검사가 브라우저에서 로컬로 이루어집니다.
파일 고르기
파일을 여기에 끌어다 놓으세요, 또는 클릭해서 선택 하나 또는 여러 파일. 각 파일의 처음 512바이트만 읽습니다.
선택된 파일이 없습니다.
결과
파일을 고르고 감지를 누르면 감지 표가 여기에 나타납니다...
"일치"의 의미:일치 — 확장자가 감지된 형식과 같음; 불일치 — 내용이 확장자가 주장하는 형식과 다름(이름 바뀐 파일, 또는 그 이상); "시그니처 없음" — 처음 바이트가 알려진 시그니처와 맞지 않음. 평범한 텍스트, CSV, 헤더가 없는 대부분의 데이터 형식에서는 정상입니다. 프라이버시: 파일은 브라우저 자체 FileReader로 읽히며 아무것도 업로드되지 않습니다.
파일 시그니처란?
거의 모든 이진 형식은 고정된 바이트 시퀀스 — 매직 넘버 — 로 시작합니다. 프로그램이 이름을 믿지 않고 자기 파일을 알아보도록 그곳에 놓인 것입니다. PNG는 항상 여덟 바이트 89 50 4E 47 0D 0A 1A 0A("\x89PNG\r\n\x1a\n")로, PDF는 ASCII 텍스트 %PDF로, ZIP은 PK\x03\x04(형식 설계자 Phil Katz의 이니셜)로 시작합니다. 운영 체제는 대부분 이 바이트를 무시하고 확장자를 봅니다 — 그래서 이름 바뀐 파일이 아무 데서도 "잘 열리지" 않고 보안 도구가 내용을 스니핑하는 것입니다.
유명한 첫 바이트들
바이트
형식
비고
89 50 4E 47 0D 0A 1A 0A
PNG 이미지
\r\n은 줄 끝 오염을 막습니다
FF D8 FF
JPEG 이미지
모든 JPEG 프레임은 SOI 마커로 시작합니다
25 50 44 46 2D
PDF 문서
“%PDF-1.7” — 버전이 뒤따릅니다
50 4B 03 04
ZIP 아카이브
docx/xlsx/odt/epub는 확장자를 쓴 ZIP입니다
D0 CF 11 E0
레거시 Office
doc/xls/ppt/msi — OLE2 복합 파일
4D 5A
Windows EXE
“MZ”, Microsoft의 Mark Zbikowski에서
7F 45 4C 46
Linux ELF
\x7fELF — 프로그램과 공유 라이브러리
1A 45 DF A3
Matroska/WebM
EBML 컨테이너 시작
75 73 74 61 72오프셋 257에서
TAR 아카이브
시그니처가 헤더 깊숙이 숨어 있습니다
감지기의 판단 방식
각 파일의 처음 512바이트를 특이성 순서의 시그니처 표와 비교합니다: 컨테이너 브랜드(RIFF…WAVE vs RIFF…AVI vs RIFF…WEBP, 오프셋 8의 ISO 브랜드 박스)를 일반 컨테이너보다 먼저 검사하고 ZIP 기반 형식(EPUB, ODF, OOXML)을 평범한 ZIP보다 먼저 검사합니다. 형식이 자기 서술 메타데이터를 실으면 한 수준 더 들어갑니다. PNG/GIF/BMP/JPEG/WebP 크기는 헤더에서, PDF 버전은 바이트 5에서, MP4 브랜드와 Java 클래스 버전은 표준 오프셋에서 읽습니다. 아무것도 맞지 않는 파일은 알려지지 않음이라 불리기 전에 텍스트 휴리스틱(BOM, <?xml, <html, shebang, 인쇄 가능 비율)을 받습니다.
흔한 오해
"ZIP이라고 하는데 파일이 .docx예요" — 맞습니다: .docx는 첫 항목이 [Content_Types].xml인 ZIP 아카이브입니다. 감지기는 그 경우를 알아보고 특별히 Office Open XML로 보고합니다. "시그니처 없다고 하는데 잘 열려요" — CSV, 대부분의 소스 코드, 수많은 과학 형식엔 매직 바이트가 아예 없습니다. "시그니처 없음"은 비난이 아닙니다. "파일이 안전한지 알 수 있나요?" — 아니요. 내용 스니핑은 파일이 무엇인지 말하지 무엇을 하는지 말하지 않습니다. EXE는 설치 프로그램이든 멀웨어든 EXE입니다.
FAQ
왜 512바이트만? — 지원하는 모든 시그니처가 처음 512바이트 안에 있습니다(가장 깊은 것은 오프셋 257의 TAR ustar). 더 읽으면 큰 묶음이 쓸데없이 느려집니다. 동영상 길이를 감지하나요? — 아니요, 컨테이너와 브랜드만 감지합니다. 길이는 전체 인덱스를 파싱해야 하며, 그것은 플레이어의 일입니다. 여러 파일을 한꺼번에? — 네, 선택 전체를 끌어다 놓으세요. 각 행이 독립적으로 감지됩니다. 관련 페이지: 반대 방향 — 확장자에서 MIME 유형으로 가려면 MIME 유형 조회를, 같은 파일을 해시하려면 일괄 파일 해시를 사용하세요.