Ανιχνευτής τύπου αρχείου — τα byte αποφασίζουν, όχι το όνομα
Ανιχνευτής τύπου αρχείου
Η επέκταση ενός αρχείου είναι απλώς ετικέτα — η μετονομασία του virus.exe σε photo.jpg δεν αλλάζει τίποτα μέσα του. Αυτή η σελίδα διαβάζει τα πρώτα byte κάθε μεταφορτωμένου αρχείου και τα συγκρίνει με περισσότερες από 60 πραγματικές υπογραφές μαγικών αριθμών: εικόνες, έγγραφα, αρχεία συμπίεσης, ήχος/βίντεο, γραμματοσειρές, εκτελέσιμα, βάσεις δεδομένων και κλειδιά. Λαμβάνεται ο ανιχνευμένος τύπος, ο τύπος MIME, οι επεκτάσεις που συνήθως χρησιμοποιεί ο τύπος, μια προειδοποίηση όταν η επέκταση έρχεται σε αντίφαση με το περιεχόμενο, και όπου η μορφή το μεταφέρει (διαστάσεις εικόνας, έκδοση PDF, brand MP4). Ο έλεγχος γίνεται τοπικά στο πρόγραμμα περιήγησης.
Επιλογή αρχείων
Απόθεση εδώ αρχείωνή κλικ για επιλογή τους Ένα αρχείο ή πολλά. Διαβάζονται μόνο τα πρώτα 512 byte του καθενός· τα αρχεία δεν φεύγουν ποτέ από αυτόν τον υπολογιστή.
Δεν έχουν επιλεγεί αρχεία.
Αποτελέσματα
Ο πίνακας ανίχνευσης εμφανίζεται εδώ μετά την επιλογή αρχείων και το πάτημα της Ανίχνευσης.
Τι σημαίνει “ταίριασμα”:συμβατό — η επέκταση συμφωνεί με τη μορφή που ανιχνεύτηκε· ασυμφωνία — το περιεχόμενο είναι διαφορετική μορφή από αυτή που δηλώνει η επέκταση (μετονομασμένο αρχείο, ή χειρότερα)· “καμία υπογραφή” — τα πρώτα byte δεν ταιριάζουν με καμία γνωστή υπογραφή, κάτι φυσιολογικό για απλό κείμενο, CSV και τα περισσότερα μορφότυπα δεδομένων που απλώς δεν έχουν κεφαλίδα.
Απόρρητο: τα αρχεία διαβάζονται με το δικό του FileReader του προγράμματος περιήγησης· τίποτα δεν μεταφορτώνεται.
Τι είναι η υπογραφή αρχείου;
Σχεδόν κάθε δυαδική μορφή ξεκινά με μια σταθερή ακολουθία byte — τον μαγικό αριθμό — που τοποθετείται εκεί ώστε ένα πρόγραμμα να αναγνωρίζει τα δικά του αρχεία χωρίς να εμπιστεύεται το όνομα. Ένα PNG ξεκινά πάντα με τα οκτώ byte 89 50 4E 47 0D 0A 1A 0A (“\x89PNG\r\n\x1a\n”), ένα PDF με το ASCII κείμενο %PDF, ένα ZIP με PK\x03\x04 (τα αρχικά του Phil Katz, που σχεδίασε τη μορφή). Τα λειτουργικά συστήματα συνήθως αγνοούν αυτά τα byte και κοιτούν την επέκταση — γι' αυτό ένα μετονομασμένο αρχείο “ανοίγει κανονικά” πουθενά, και γι' αυτό τα εργαλεία ασφαλείας ελέγχουν το περιεχόμενο.
Γνωστά πρώτα byte
Byte
Μορφή
Σημείωση
89 50 4E 47 0D 0A 1A 0A
Εικόνα PNG
το \r\n προστατεύει από καταστροφή τέλους γραμμής
FF D8 FF
Εικόνα JPEG
κάθε καρέ JPEG ξεκινά με δείκτη SOI
25 50 44 46 2D
Έγγραφο PDF
“%PDF-1.7” — ακολουθεί η έκδοση
50 4B 03 04
Αρχείο ZIP
docx/xlsx/odt/epub είναι ZIP με επέκταση
D0 CF 11 E0
Παλαιό Office
doc/xls/ppt/msi — το σύνθετο αρχείο OLE2
4D 5A
Windows EXE
“MZ”, από τον Mark Zbikowski της Microsoft
7F 45 4C 46
Linux ELF
\x7fELF — προγράμματα και κοινόχρηστες βιβλιοθήκες
1A 45 DF A3
Matroska/WebM
αρχή δοχείου EBML
75 73 74 61 72στη θέση 257
Αρχείο TAR
η υπογραφή κρύβεται βαθιά στην κεφαλίδα
Πώς αποφασίζει ο ανιχνευτής
Τα πρώτα 512 byte κάθε αρχείου συγκρίνονται με έναν πίνακα υπογραφών με σειρά εξειδίκευσης:
τα brand δοχείων (RIFF…WAVE έναντι RIFF…AVI έναντι RIFF…WEBP, πλαίσια brand ISO στη θέση 8) ελέγχονται πριν από τα γενικά δοχεία τους, και οι μορφές βασισμένες σε ZIP (EPUB, ODF, OOXML) πριν από το απλό ZIP. Όπου μια μορφή φέρει αυτοπεριγραφικά μεταδεδομένα, η σελίδα εξετάζει ένα επίπεδο βαθύτερα: οι διαστάσεις PNG/GIF/BMP/JPEG/WebP διαβάζονται από τις κεφαλίδες τους, η έκδοση PDF από το byte 5, το brand MP4 και η έκδοση κλάσης Java από τις τυπικές τους θέσεις. Τα αρχεία που δεν ταιριάζουν με τίποτα περνούν από ένα στάδιο ευρετικής ανίχνευσης κειμένου (BOM, <?xml, <html, shebang, αναλογία εκτυπώσιμων χαρακτήρων) πριν χαρακτηριστούν ως άγνωστα.
Συνηθισμένα λάθη
“Λέει ZIP αλλά το αρχείο είναι .docx” — αυτό είναι σωστό: ένα .docx είναι αρχείο ZIP του οποίου η πρώτη καταχώριση είναι το [Content_Types].xml· ο ανιχνευτής αναγνωρίζει αυτή την περίπτωση και αναφέρει συγκεκριμένα Office Open XML. “Λέει ότι δεν υπάρχει υπογραφή αλλά το αρχείο ανοίγει κανονικά” — το CSV, το περισσότερο πηγαίο κώδικας και αμέτρητες επιστημονικές μορφές δεν έχουν καθόλου μαγικά byte· το “καμία υπογραφή” δεν είναι κατηγορία. “Μπορεί να εκτιμηθεί αν το αρχείο είναι ασφαλές;” — όχι. Η ανίχνευση περιεχομένου λέει τι είναι ένα αρχείο, όχι τι κάνει· ένα EXE παραμένει EXE είτε είναι πρόγραμμα εγκατάστασης είτε κακόβουλο λογισμικό.
Συχνές ερωτήσεις
Γιατί μόνο 512 byte; — κάθε υποστηριζόμενη υπογραφή βρίσκεται μέσα στα πρώτα 512 byte (η πιο βαθιά είναι το ustar του TAR στη θέση 257)· η ανάγνωση περισσότερων θα επιβράδυνε μεγάλες παρτίδες χωρίς λόγο. Ανιχνεύει τη διάρκεια βίντεο; — όχι, μόνο το δοχείο και το brand του· η διάρκεια απαιτεί ανάλυση ολόκληρου του ευρετηρίου, και αυτό είναι δουλειά του προγράμματος αναπαραγωγής. Πολλά αρχεία μαζί; — ναι, σύρσιμο μιας ολόκληρης επιλογής· κάθε γραμμή ανιχνεύεται ανεξάρτητα. Σχετική σελίδα: για την αντίστροφη κατεύθυνση — από επέκταση σε τύπο MIME — χρησιμοποιείται η Αναζήτηση τύπου MIME· για υπολογισμό hash των ίδιων αρχείων χρησιμοποιείται το Μαζικός υπολογισμός hash αρχείων.
Αυτοέλεγχος
📁 Εργαλεία αρχείων
Τοπικά βοηθητικά εργαλεία αρχείων για το πρόγραμμα περιήγησης.