Filendelsen til en fil er bare en merkelapp — å gi nytt navn til virus.exe til foto.jpg endrer ingenting inni. Denne siden leser de første bytene i hver opplastet fil og sammenligner dem med over 60 ekte magiske signaturer: bilder, dokumenter, arkiver, lyd/video, fonter, kjørbare filer, databaser og nøkler. Man får den oppdagede typen, MIME-typen, filendelsene den typen vanligvis bruker, en advarsel når filendelsen strider mot innholdet, og der formatet har det, også det (bildedimensjoner, PDF-versjon, MP4-merke). Alt inspiseres lokalt i nettleseren.
Velg filer
Slipp filer her, eller klikk for å velge dem En fil eller mange. Bare de første 512 bytene av hver leses; filene forlater aldri denne maskinen.
Ingen filer er valgt.
Resultater
Detekteringstabellen vises her etter at filer er valgt og Oppdag er trykket.
Hva “treff” betyr:konsistent — filendelsen stemmer med det oppdagede formatet; avvik — innholdet er et annet format enn filendelsen tilsier (en omdøpt fil, eller verre); “ingen signatur” — de første bytene passer ingen kjent signatur, noe som er normalt for ren tekst, CSV og de fleste dataformater som ganske enkelt ikke har en header. Personvern: filene leses med nettleserens egen FileReader; ingenting lastes opp.
Hva er en filsignatur?
Nesten alle binærformater starter med en fast byte-sekvens — det magiske tallet — plassert der for at et program skal kunne kjenne igjen sine egne filer uten å stole på navnet. En PNG begynner alltid med de åtte bytene 89 50 4E 47 0D 0A 1A 0A (“\x89PNG\r\n\x1a\n”), en PDF med ASCII-teksten %PDF, en ZIP med PK\x03\x04 (initialene til Phil Katz, som designet formatet). Operativsystemer ignorerer for det meste disse bytene og ser på filendelsen i stedet — nettopp derfor “åpner seg fint” en omdøpt fil ingensteds, og derfor sniffer sikkerhetsverktøy innholdet.
Kjente første byte
Byte
Formater
Merknad
89 50 4E 47 0D 0A 1A 0A
PNG-bilde
\r\n-en beskytter mot ødelagte linjeskift
FF D8 FF
JPEG-bilde
hver JPEG-ramme starter med en SOI-markør
25 50 44 46 2D
PDF-dokument
“%PDF-1.7” — versjonen følger
50 4B 03 04
ZIP-arkiv
docx/xlsx/odt/epub er ZIP-filer med en annen filendelse
D0 CF 11 E0
Eldre Office
doc/xls/ppt/msi — OLE2-sammensatt fil
4D 5A
Windows EXE
“MZ”, etter Microsofts Mark Zbikowski
7F 45 4C 46
Linux ELF
\x7fELF — programmer og delte biblioteker
1A 45 DF A3
Matroska/WebM
EBML-beholderstart
75 73 74 61 72ved offset 257
TAR-arkiv
signaturen gjemmer seg dypt i headeren
Slik avgjør detektoren
De første 512 bytene av hver fil sammenlignes med en tabell over signaturer i spesifisitetsrekkefølge: beholder-merker (RIFF…WAVE kontra RIFF…AVI kontra RIFF…WEBP, ISO-merkeboksene ved offset 8) sjekkes før deres generiske beholdere, og ZIP-baserte formater (EPUB, ODF, OOXML) før vanlig ZIP. Der et format bærer selvbeskrivende metadata, graver siden ett nivå dypere: PNG/GIF/BMP/JPEG/WebP-dimensjoner leses fra headerne, PDF-versjonen fra byte 5, MP4-merket og Java-klasseversjonen fra sine standardposisjoner. Filer som ikke treffer noe, får et tekstheuristisk gjennomløp (BOM, <?xml, <html, shebang, andel utskrivbare tegn) før de kalles ukjente.
Vanlige feil
“Det står ZIP, men filen er .docx” — det er riktig: en .docx er et ZIP-arkiv der første oppføring er [Content_Types].xml; detektoren gjenkjenner det tilfellet og rapporterer Office Open XML spesifikt. “Den sier ingen signatur, men filen åpner seg fint” — CSV, de fleste kildekoder og utallige vitenskapelige formater har ingen magiske byte i det hele tatt; “ingen signatur” er ikke en anklage. “Kan den si om filen er trygg?” — nei. Innholdssniffing sier hva en fil er, ikke hva den gjør; en EXE er en EXE enten den er et installasjonsprogram eller skadevare.
Ofte stilte spørsmål
Hvorfor bare 512 byte? — hver støttet signatur ligger innenfor de første 512 bytene (den dypeste er TARs ustar ved offset 257); å lese mer ville bremse store batcher uten grunn. Oppdager den videolengde? — nei, bare beholderen og merket; lengde krever å parse hele indeksen, som er en avspillers jobb. Flere filer samtidig? — ja, dra et helt utvalg; hver rad oppdages uavhengig. Relatert side: for å gå den andre veien — filendelse til MIME-type — bruk MIME Type Lookup; for å hashe de samme filene, bruk Batch File Hash.