Detektor typu súboru

Prípona súboru je iba označenie — premenovanie virus.exe na photo.jpg nič vnútri nezmení. Táto stránka prečíta prvé bajty každého nahraného súboru a porovnáva ich s viac ako 60 reálnymi magickými signatúrami: obrázky, dokumenty, archívy, zvuk/video, písma, spustiteľné súbory, databázy a kľúče. Získa sa zistený typ, typ MIME, prípony, ktoré tento typ zvyčajne používa, upozornenie, keď prípona odporuje obsahu, a tam, kde formát obsahuje údaj (rozmery obrázka, verziu PDF, značku MP4). Všetko sa kontroluje lokálne v prehliadači.
Súbory sa sem presunúalebo kliknutím sa vyberú
Jeden súbor alebo viac. Číta sa iba prvých 512 bajtov každého; súbory nikdy neopustia tento počítač.
Nie sú vybrané žiadne súbory.
Tabuľka detekcie sa zobrazí tu po výbere súborov a stlačení Zistiť.
Čo znamená „zhoda“: konzistentné — prípona súhlasí so zisteným formátom; nezhoda — obsah je iný formát, než aký prípona tvrdí (premenovaný súbor, alebo čo je horšie); „žiadna signatúra“ — prvé bajty nezodpovedajú žiadnej známej signatúre, čo je normálne pri obyčajnom texte, CSV a väčšine dátových formátov, ktoré jednoducho nemajú hlavičku. Súkromie: súbory sa čítajú vlastným FileReaderom prehliadača; nič sa nenahráva.

Čo je signatúra súboru?

Takmer každý binárny formát začína pevnou postupnosťou bajtov — magickým číslom — ktoré tam je umiestnené preto, aby program mohol rozpoznať vlastné súbory bez toho, aby dôveroval názvu. PNG vždy začína ôsmimi bajtmi 89 50 4E 47 0D 0A 1A 0A („\x89PNG\r\n\x1a\n“), PDF textom ASCII %PDF, ZIP PK\x03\x04 (iniciály Phila Katza, ktorý formát navrhol). Operačné systémy tieto bajty väčšinou ignorujú a pozerajú sa na príponu — práve preto sa premenovaný súbor nikde „neotvorí správne“ a preto bezpečnostné nástroje kontrolujú obsah.

Známe prvé bajty

BajtyFormátPoznámka
89 50 4E 47 0D 0A 1A 0AObrázok PNG\r\n chráni pred poškodením konca riadka
FF D8 FFObrázok JPEGkaždý rámec JPEG začína značkou SOI
25 50 44 46 2DDokument PDF„%PDF-1.7“ — za ňou nasleduje verzia
50 4B 03 04Archív ZIPdocx/xlsx/odt/epub sú ZIP s cudzou príponou
D0 CF 11 E0Staré Officedoc/xls/ppt/msi — zložený súbor OLE2
4D 5AWindows EXE„MZ“ podľa Marka Zbikowského z Microsoftu
7F 45 4C 46Linux ELF\x7fELF — programy a zdieľané knižnice
1A 45 DF A3Matroska/WebMzačiatok kontajnera EBML
75 73 74 61 72 na posune 257Archív TARsignatúra sa ukrýva hlboko v hlavičke

Ako detektor rozhoduje

Prvých 512 bajtov každého súboru sa porovnáva s tabuľkou signatúr v poradí špecifickosti: kontajnerové značky (RIFF…WAVE verzus RIFF…AVI verzus RIFF…WEBP, značky ISO boxov na posune 8) sa kontrolujú skôr než ich všeobecné kontajnery a formáty založené na ZIP (EPUB, ODF, OOXML) skôr než obyčajný ZIP. Tam, kde formát nesie samopopisné metadáta, stránka ide o úroveň hlbšie: rozmery PNG/GIF/BMP/JPEG/WebP sa čítajú z ich hlavičiek, verzia PDF z bajtu 5, značka MP4 a verzia triedy Java z ich štandardných posunov. Súbory, ktoré nezodpovedajú ničomu, prejdú heuristikou textu (BOM, <?xml, <html, shebang, pomer tlačiteľných znakov), až potom sa označia ako neznáme.

Časté chyby

„Hovorí ZIP, ale súbor je .docx“ — to je správne: .docx je archív ZIP, ktorého prvá položka je [Content_Types].xml; detektor tento prípad rozpozná a uvedie konkrétne Office Open XML. „Hovorí, že nemá signatúru, ale súbor sa otvorí“ — CSV, väčšina zdrojového kódu a nespočetné vedecké formáty nemajú vôbec žiadne magické bajty; „žiadna signatúra“ nie je obvinenie. „Dokáže mi povedať, či je súbor bezpečný?“ — nie. Kontrola obsahu hovorí, čím súbor je, nie čo robí; EXE je EXE, či ide o inštalátor, alebo o malvér.

FAQ

Prečo iba 512 bajtov? — každá podporovaná signatúra leží v prvých 512 bajtoch (najhlbšia je ustar v TAR na posune 257); čítanie viac by spomalilo veľké dávky bez akéhokoľvek prínosu.
Zisťuje sa dĺžka videa? — nie, iba kontajner a jeho značka; dĺžka vyžaduje spracovanie celého indexu, čo je úloha prehrávača.
Viac súborov naraz? — áno, celý výber sa dá naraz pretiahnuť; každý riadok sa zisťuje samostatne.
Súvisiaca stránka: na opačný smer — prípona na typ MIME — slúži Vyhľadávanie typu MIME; na hashovanie tých istých súborov slúži Hash dávky súborov.