Přípona souboru je jen štítek — přejmenování virus.exe na photo.jpg uvnitř nic nezmění. Tato stránka čte první bajty každého nahraného souboru a porovnává je s více než 60 skutečnými magickými signaturami: obrázky, dokumenty, archivy, zvuk/video, písma, spustitelné soubory, databáze a klíče. Dostanete zjištěný typ, typ MIME, přípony, které tento typ obvykle používá, varování, když přípona odporuje obsahu, a tam, kde formát údaje obsahuje (rozměry obrázku, verze PDF, značka MP4). Vše se kontroluje lokálně ve vašem prohlížeči.
Vyberte soubory
Sem přetáhněte soubory, nebo klikněte a vyberte je Jeden soubor nebo mnoho. Čte se jen prvních 512 bajtů každého souboru; soubory nikdy neopustí tento počítač.
Nejsou vybrány žádné soubory.
Výsledky
Tabulka detekce se zobrazí zde, jakmile vyberete soubory a stisknete Zjistit.
Co znamená „shoda“:v pořádku — přípona souhlasí se zjištěným formátem; nesoulad — obsah je jiný formát, než jaký přípona uvádí (přejmenovaný soubor, nebo něco horšího); „žádná signatura“ — první bajty neodpovídají žádné známé signatuře, což je běžné u prostého textu, CSV a většiny datových formátů, které prostě nemají hlavičku. Soukromí: soubory se čtou vlastním FileReaderem prohlížeče; nic se nenahrává.
Co je signatura souboru?
Téměř každý binární formát začíná pevnou posloupností bajtů — magickým číslem — uloženou tam proto, aby program poznal své soubory, aniž by se spoléhal na název. PNG vždy začíná osmi bajty 89 50 4E 47 0D 0A 1A 0A (“\x89PNG\r\n\x1a\n”), PDF ASCII textem %PDF, ZIP bajty PK\x03\x04 (iniciály Phila Katze, který formát navrhl). Operační systémy tyto bajty většinou ignorují a dívají se místo toho na příponu — a právě proto přejmenovaný soubor nikde „neotevře správně“ a bezpečnostní nástroje kontrolují obsah.
Slavné první bajty
Bajty
Formát
Poznámka
89 50 4E 47 0D 0A 1A 0A
Obrázek PNG
\r\n chrání před poškozením konců řádků
FF D8 FF
Obrázek JPEG
každý rámec JPEG začíná značkou SOI
25 50 44 46 2D
Dokument PDF
“%PDF-1.7” — verze následuje
50 4B 03 04
Archiv ZIP
docx/xlsx/odt/epub jsou ZIP s jinou příponou
D0 CF 11 E0
Starší Office
doc/xls/ppt/msi — složený soubor OLE2
4D 5A
EXE pro Windows
“MZ”, podle Microsoftu Marka Zbikowskiho
7F 45 4C 46
Linux ELF
\x7fELF — programy a sdílené knihovny
1A 45 DF A3
Matroska/WebM
začátek kontejneru EBML
75 73 74 61 72na posunu 257
Archiv TAR
signatura se ukrývá hluboko v hlavičce
Jak detektor rozhoduje
Prvních 512 bajtů každého souboru se porovnává s tabulkou signatur v pořadí specifičnosti: značky kontejnerů (RIFF…WAVE vs RIFF…AVI vs RIFF…WEBP, značky ISO na posunu 8) se kontrolují dříve než jejich obecné kontejnery a formáty založené na ZIP (EPUB, ODF, OOXML) dříve než prostý ZIP. Tam, kde formát nese vlastní popisná metadata, stránka jde o úroveň hlouběji: rozměry PNG/GIF/BMP/JPEG/WebP se čtou z jejich hlaviček, verze PDF z bajtu 5, značka MP4 a verze třídy Javy z jejich standardních posunů. Soubory, které neodpovídají ničemu, projdou textovou heuristikou (BOM, <?xml, <html, shebang, poměr tisknutelných znaků), než se označí jako neznámé.
Časté chyby
„Říká ZIP, ale soubor je .docx“ — to je správně: .docx je archiv ZIP, jehož první položkou je [Content_Types].xml; detektor tento případ rozpozná a uvede konkrétně Office Open XML. „Říká, že signatura chybí, ale soubor se otevře v pořádku“ — CSV, většina zdrojového kódu a nespočet vědeckých formátů nemá žádné magické bajty; „žádná signatura“ není obvinění. „Dokáže mi říct, zda je soubor bezpečný?“ — ne. Kontrola obsahu říká, čím soubor je, ne co dělá; EXE zůstává EXE, ať je to instalátor, nebo malware.
Časté dotazy
Proč jen 512 bajtů? — každá podporovaná signatura leží v prvních 512 bajtech (nejhlouběji je ustar v TARu na posunu 257); čtení dalšího by zpomalilo velké dávky bez užitku. Zjišťuje délku videa? — ne, jen kontejner a jeho značku; délka vyžaduje zpracování celého indexu, což je úkol přehrávače. Více souborů najednou? — ano, přetáhněte celý výběr; každý řádek se zjišťuje samostatně. Související stránka: pro opačný směr — přípona na typ MIME — použijte vyhledávání typu MIME; pro hashování stejných souborů použijte Hromadný hash souborů.