Die inhaltsbewusste Suche verwendet eine Implementierung eines Signatursuchalgorithmus, um Dateien bestimmter Typen zu identifizieren und zu lokalisieren. Im Allgemeinen wird eine persistente Dateisignatur verwendet, um die Existenz einer Datei zu erkennen, dann wird eine Header-Analyse durchgeführt, um die Länge der Datei zu bestimmen.
Es gibt jedoch einige Ausnahmen von dieser Regel. In diesem Artikel werden wir uns zwei Extreme ansehen: ein Binärdateiformat mit einer sehr persistenten Struktur und ein Textformat ohne Struktur.
Inhalt
Erkennung von JPEG-Bildern
JPEG-Dateien sind leicht zu identifizieren und zu analysieren. Das Format ist gut dokumentiert, daher ist das Parsen eines Datei-Headers im Allgemeinen kein Problem. Schauen wir uns zum Beispiel eine typische JPEG-Datei an.
JPEG-Dateien haben eine charakteristische Signatur und ein stark strukturiertes Format, was sie leicht erkennbar macht. Alle JPEG-Dateien beginnen mit einem hexadezimalen Wert von FFD8 und enden mit einem Wert von FFD9. In JPEG-Dateien können diese Signaturen mehrmals verwendet werden, um Miniaturansichten in verschiedenen Größen zu identifizieren.
Zum Beispiel erstellt die Canon EOS 5D JPEG-Dateien mit folgender Struktur.
FFD8 — Beginn der Datei
FFD8 — erste Miniaturansicht
FFD9 — Ende der ersten Vorschau
FFD8 — zweite Miniaturansicht
FFD9 — Ende der zweiten Vorschau
FFD9 — Ende der Datei
Wie Sie sehen, reicht es nicht aus, einfach feste Signaturen zu erkennen. Das Programm muss den Datei-Header analysieren, die tatsächliche Dateistruktur kennen und berücksichtigen. Wenn die im Datei-Header gespeicherten Informationen nicht mit dem tatsächlichen Inhalt übereinstimmen, kann die wiederhergestellte Datei beschädigt werden. Beschädigte Bilder können mit einem spezialisierten Tool wie RS File Repair wiederhergestellt werden.
Erkennung von Textdateien
Textdateien befinden sich am anderen Ende der Dateiformate. Ohne jegliche persistente Struktur sind Textdateien die schwierigsten zu lokalisieren ? aber unter den leichtesten zu wiederherstellen. Sogar fragmentierte Textdateien können wiederhergestellt werden (wenn sie erfolgreich identifiziert wurden) und bei Bedarf zu einer einzigen Datei kombiniert werden. Es gibt keine Datei-Header oder Systemstrukturen, um sich Sorgen zu machen.
Manchmal sind keine formalen Datei-Header verfügbar (z. B. für Text- oder HTML-Dateien), aber diese Dateien können trotzdem wiederhergestellt werden. Im Fall von textbasierten Dokumenten analysiert ein Datenwiederherstellungstool tatsächliche Datenblöcke und versucht herauszufinden, ob die Blöcke zu dem gehören, was anscheinend eine Textdatei ist. Die Entscheidung wird durch Analyse des Zeichensatzes der Datei getroffen. Wenn ein bestimmter Datenblock hauptsächlich ASCII-Zeichen aus einem bekannten Zeichensatz enthält (z. B. Westeuropäisch, Unicode oder Arabisch usw.), wird der Block als Textdatei betrachtet. Das Ende solcher Textdateien wird normalerweise nach dem Erscheinen einer bestimmten Anzahl von nicht-ASCII-Symbolen (Binärdaten) erkannt.
Erkennung von XML- und HTML-Dokumenten
XML- und HTML-Dokumente sind strukturierte Textdateien. Sie beginnen normalerweise mit bestimmten Tags und enden mit anderen Tags. Obwohl es keine genaue binäre Signatur gibt, nach der gesucht werden kann, können XML- und HTML-Dokumente durch Suche nach einem der Öffnungstags (z. B. Öffnungstags , , <?xml, Schließungstags: , usw.) erkannt werden. Die Suche muss nicht auf Groß- und Kleinschreibung achten, da Tags in Groß- oder Kleinschreibung oder sogar mit Zeichen in gemischten Fällen geschrieben werden können (z. B. ). Die bloße Existenz von Öffnungs- und Schließungstags ermöglicht eine zuverlässige Erkennung des Beginns und des Endes solcher Dokumente.