DD Gelöschte Textdatei mittels Textstring auslesen

Aus Reparatur.IT
Zur Navigation springen Zur Suche springen

Wenn es sich um eine Textdatei, ein Skript, einen Quellcode oder ähnliches handelt, haben wir eine gute Chance, den Inhalt einer gelöschten Textdatei mit dd zu erhalten.

Um an den Inhalt zu gelangen, sollte er sich noch irgendwo in einem gelöschten Datenblock befinden. Alles, was wir brauchen, ist die Partition, auf der sich das Dateisystem befindet, die ungefähre Größe dieser Datei in Zeilen, eine sehr markante Wortkombination innerhalb einer Zeile, die nur in dieser Datei oder ihren Kopien vorkommen kann, und eine mögliche Position dieses Suchbegriffs in Zeilen innerhalb der Datei.

Wir nehmen das Folgende an:

-Partition /dev/hda2

-Größe der Datei 100-150 Zeilen

-exakte Wortkombination im letzten Drittel "darf ich mir notieren".

dd if=/dev/hda2 bs=4K | strings | grep -B 150 -A 100 "darf ich mir vormerken" > /tmp/gefunden.txt

Damit lesen wir die Partition mit dd ein, strings entfernt alles aus diesem Datenstrom, was nicht wie druckbar aussieht, grep durchsucht nun diesen Datenstrom nach dem Vorkommen der Wortkombination und wenn es eine solche Kombination gefunden hat, dann schreibt grep die Zeilen von 150 Zeilen davor bis 100 Zeilen danach in eine Datei namens /tmp/found.txt, wenn mehrere solcher Wortkombinationen gefunden werden, dann auch die entsprechenden Bereiche aus diesen Blöcken.

Wenn es also einen Datenblock auf der Festplatte gibt, der genau die Zeilen-Wort-Kombination enthält, dann finden wir den Textinhalt irgendwo in der found.txt. Ohne Leerzeilen sind allerdings auch extrem kurze Zeilen (weniger als 4 druckbare Zeichen) verschwunden. Aber zumindest können wir diesen Inhalt nun aus found.txt herauskopieren und wieder in eine geeignete Datei umformatieren.