Wykrywanie typu pliku

Rozszerzenie pliku to tylko etykieta — zmiana nazwy virus.exe na photo.jpg niczego nie zmienia w środku. Ta strona odczytuje pierwsze bajty każdego wgranego pliku i porównuje je z ponad 60 prawdziwymi sygnaturami: obrazy, dokumenty, archiwa, audio i wideo, czcionki, pliki wykonywalne, bazy danych i klucze. Otrzymujesz wykryty typ, typ MIME, rozszerzenia zwykle używane przez ten typ, ostrzeżenie, gdy rozszerzenie przeczy zawartości, a tam, gdzie format je przechowuje, także dane (wymiary obrazu, wersję PDF, markę MP4). Wszystko jest sprawdzane lokalnie w przeglądarce.
Upuść pliki tutaj, albo kliknij, aby je wybrać
Jeden plik lub wiele. Odczytywane są tylko pierwsze 512 bajtów każdego; pliki nigdy nie opuszczają tego komputera.
Nie wybrano plików.
Tabela wykrywania pojawi się tutaj po wybraniu plików i naciśnięciu Wykryj.
Co oznacza „dopasowanie”: zgodne — rozszerzenie zgadza się z wykrytym formatem; niezgodność — zawartość to inny format, niż deklaruje rozszerzenie (przemianowany plik albo coś gorszego); „brak sygnatury” — pierwsze bajty nie pasują do żadnej znanej sygnatury, co jest normalne dla zwykłego tekstu, CSV i większości formatów danych, które po prostu nie mają nagłówka. Prywatność: pliki są czytane natywnym FileReader przeglądarki; nic nie jest wysyłane.

Czym jest sygnatura pliku?

Prawie każdy format binarny zaczyna się od stałej sekwencji bajtów — liczby magicznej — umieszczonej tam, aby program mógł rozpoznać własne pliki bez ufania nazwie. PNG zawsze zaczyna się od ośmiu bajtów 89 50 4E 47 0D 0A 1A 0A („\x89PNG\r\n\x1a\n”), PDF od tekstu ASCII %PDF, a ZIP od PK\x03\x04 (inicjały Phila Katza, twórcy formatu). Systemy operacyjne w większości ignorują te bajty i patrzą na rozszerzenie — dlatego przemianowany plik nigdzie „nie otwiera się poprawnie”, i dlatego narzędzia bezpieczeństwa sprawdzają zawartość.

Znane pierwsze bajty

BajtyFormatUwaga
89 50 4E 47 0D 0A 1A 0Aobraz PNG\r\n chroni przed uszkodzeniem zakończeń wierszy
FF D8 FFobraz JPEGkażda ramka JPEG zaczyna się od znacznika SOI
25 50 44 46 2Ddokument PDF„%PDF-1.7” — wersja następuje po nim
50 4B 03 04archiwum ZIPdocx/xlsx/odt/epub to archiwa ZIP z przebranym rozszerzeniem
D0 CF 11 E0starszy Officedoc/xls/ppt/msi — złożony plik OLE2
4D 5Aplik wykonywalny Windows EXE„MZ”, od inicjałów Marka Zbikowskiego z Microsoftu
7F 45 4C 46Linux ELF\x7fELF — programy i biblioteki współdzielone
1A 45 DF A3Matroska/WebMpoczątek kontenera EBML
75 73 74 61 72 na przesunięciu 257archiwum TARsygnatura ukryta głęboko w nagłówku

Jak wykrywacz podejmuje decyzję

Pierwsze 512 bajtów każdego pliku jest porównywane z tabelą sygnatur w kolejności specyficzności: kontenerowe marki (RIFF…WAVE vs RIFF…AVI vs RIFF…WEBP, pola ISO na przesunięciu 8) są sprawdzane przed ogólnymi kontenerami, a formaty oparte na ZIP (EPUB, ODF, OOXML) przed zwykłym ZIP. Gdy format przechowuje samoopisujące metadane, strona zagląda o poziom głębiej: wymiary PNG/GIF/BMP/JPEG/WebP są odczytywane z nagłówków, wersja PDF z bajtu 5, marka MP4 i wersja klasy Java z ich standardowych przesunięć. Pliki, które nie pasują do niczego, przechodzą heurystykę tekstową (BOM, <?xml, <html, shebang, udział znaków drukowalnych), zanim zostaną uznane za nieznane.

Typowe błędy

„Mówi ZIP, a plik to .docx” — to poprawne: .docx to archiwum ZIP, którego pierwszym wpisem jest [Content_Types].xml; wykrywacz rozpoznaje ten przypadek i podaje konkretnie Office Open XML. „Mówi brak sygnatury, ale plik się otwiera” — CSV, większość kodu źródłowego i niezliczone formaty naukowe nie mają bajtów magicznych; „brak sygnatury” to nie oskarżenie. „Czy może mi powiedzieć, czy plik jest bezpieczny?” — nie. Analiza zawartości mówi, czym plik jest, a nie co robi; EXE to EXE, czy jest instalatorem, czy złośliwym oprogramowaniem.

FAQ

Dlaczego tylko 512 bajtów? — każda obsługiwana sygnatura mieści się w pierwszych 512 bajtach (najgłębsza to ustar w TAR na przesunięciu 257); czytanie większej ilości spowolniłoby duże partie bez potrzeby.
Czy wykrywa czas trwania wideo? — nie, tylko kontener i jego markę; czas trwania wymaga przeanalizowania całego indeksu, co jest zadaniem odtwarzacza.
Wiele plików naraz? — tak, przeciągnij całe zaznaczenie; każdy wiersz jest wykrywany niezależnie.
Powiązana strona: by pójść w drugą stronę — od rozszerzenia do typu MIME — użyj Wyszukiwarki typów MIME; by policzyć skróty tych samych plików, użyj Batch File Hash.