Tiedostotyypin tunnistin

Tiedoston pääte on vain tunniste — virus.exe-tiedoston nimeäminen uudelleen muotoon photo.jpg ei muuta sisältöä. Tämä sivu lukee jokaisen ladatun tiedoston ensimmäiset tavut ja vertaa niitä yli 60 todelliseen tunnistetavujonoon: kuviin, asiakirjoihin, arkistoihin, ääneen ja videoon, fontteihin, suoritettaviin tiedostoihin, tietokantoihin ja avaimiin. Tuloksena saadaan tunnistettu tyyppi, MIME-tyyppi, tyypin tavallisesti käyttämät päätteet, varoitus, kun pääte on ristiriidassa sisällön kanssa, ja missä muodossa sen kantaa (kuvan mitat, PDF-versio, MP4-merkki). Kaikki tarkistetaan paikallisesti selaimessa.
Pudota tiedostot tähäntai napsauta valitakseen ne
Yksi tiedosto tai useita. Jokaisesta luetaan vain ensimmäiset 512 tavua; tiedostot eivät koskaan poistu tältä koneelta.
Tiedostoja ei ole valittu.
Tunnistustaulukko näkyy tässä, kun tiedostot on valittu ja painettu Tunnista-painiketta.
Mitä “vastaa” tarkoittaa: yhteensopiva — pääte vastaa tunnistettua muotoa; ristiriita — sisältö on eri muoto kuin päätteen ilmoittama (uudelleen nimetty tiedosto tai pahempi); “ei tunnistetta” — ensimmäiset tavut eivät vastaa yhtään tunnettua tunnistetta, mikä on normaalia pelkälle tekstille, CSV:lle ja useimmille datamuodoille, joilla ei ole ollenkaan otsikkoa. Yksityisyys: tiedostot luetaan selaimen oman FileReaderin avulla; mitään ei ladata.

Mikä on tiedostotunniste?

Lähes jokainen binäärimuoto alkaa kiinteällä tavujonolla — taikaluvulla — joka on asetettu sinne, jotta ohjelma voi tunnistaa omat tiedostonsa luottamatta nimeen. PNG alkaa aina kahdeksalla tavulla 89 50 4E 47 0D 0A 1A 0A (“\x89PNG\r\n\x1a\n”), PDF alkaa ASCII-tekstillä %PDF, ZIP alkaa tavuilla PK\x03\x04 (muodon suunnitelleen Phil Katzin alkukirjaimet). Käyttöjärjestelmät useimmiten ohittavat nämä tavut ja katsovat sen sijaan päätettä — mikä on juuri syy siihen, miksi uudelleen nimetty tiedosto “avautuu hyvin” ei missään, ja siksi tietoturvatyökalut tarkistavat sisällön.

Tunnettuja alkutavuja

TavutMuotoHuomautus
89 50 4E 47 0D 0A 1A 0APNG-kuva\r\n suojaa rivinvaihtojen vioittumiselta
FF D8 FFJPEG-kuvajokainen JPEG-kehys alkaa SOI-merkillä
25 50 44 46 2DPDF-asiakirja“%PDF-1.7” — versio seuraa
50 4B 03 04ZIP-arkistodocx/xlsx/odt/epub ovat ZIP-arkistoja omalla päätteellään
D0 CF 11 E0Vanha Officedoc/xls/ppt/msi — OLE2-yhdistelmätiedosto
4D 5AWindows EXE“MZ”, Microsoftin Mark Zbikowskin mukaan
7F 45 4C 46Linux ELF\x7fELF — ohjelmat ja jaetut kirjastot
1A 45 DF A3Matroska/WebMEBML-kontin alku
75 73 74 61 72 siirtymällä 257TAR-arkistotunniste piilee syvällä otsikossa

Miten tunnistin päättää

Jokaisen tiedoston ensimmäiset 512 tavua verrataan tunnistetaulukkoon tarkkuusjärjestyksessä: konttitunnisteet (RIFF…WAVE vs RIFF…AVI vs RIFF…WEBP, ISO-merkkilaatikot siirtymällä 8) tarkistetaan ennen yleisiä konttejaan, ja ZIP-pohjaiset muodot (EPUB, ODF, OOXML) ennen tavallista ZIP:iä. Jos muodossa on itsekuvaileva metatieto, sivu menee yhden tason syvemmälle: PNG/GIF/BMP/JPEG/WebP-mitat luetaan niiden otsikoista, PDF-versio tavusta 5, MP4-merkki ja Java-luokan versio standardisiirtymistä. Tiedostoille, jotka eivät täsmää mihinkään, tehdään tekstiheuristiikka (BOM, <?xml, <html, shebang, tulostettavien merkkien osuus) ennen kuin ne luokitellaan tuntemattomiksi.

Yleisiä virheitä

“Se sanoo ZIP, mutta tiedosto on .docx” — tämä on oikein: .docx on ZIP-arkisto, jonka ensimmäinen merkintä on [Content_Types].xml; tunnistin tunnistaa tapauksen ja raportoi erikseen Office Open XML -muodon. “Se sanoo, ettei tunnistetta ole, mutta tiedosto avautuu hyvin” — CSV, useimmat lähdekoodit ja lukemattomat tieteelliset muodot eivät lainkaan sisällä taikatavuja; “ei tunnistetta” ei ole syytös. “Voiko se kertoa, onko tiedosto turvallinen?” — ei. Sisällön tunnistaminen kertoo, mikä tiedosto on, ei sitä, mitä se tekee; EXE on EXE, olipa se asennusohjelma tai haittaohjelma.

UKK

Miksi vain 512 tavua? — jokainen tuettu tunniste on ensimmäisten 512 tavun sisällä (syvin on TAR:n ustar siirtymällä 257); lisäluku hidastaisi suuria eriä turhaan.
Tunnistaako se videon keston? — ei, vain kontin ja sen merkin; kesto vaatii koko indeksin jäsentämisen, mikä on soittimen tehtävä.
Useita tiedostoja kerralla? — kyllä, vedä koko valinta; jokainen rivi tunnistetaan itsenäisesti.
Aiheeseen liittyvä sivu: toiseen suuntaan — päätteestä MIME-tyyppiin — käytä MIME Type Lookup -sivua; samojen tiedostojen tiivistämiseen käytä Batch File Hash -sivua.