Inhaltsverzeichnis
ext3undel
Was ist ext3undel?
ext3undel ist eine Skript-Sammlung, die bei der Wiederherstellung (versehentlich) von ext2/ext3 Partitionen gelöschter Dateien zu helfen.
Auch wenn die meisten Seiten im Internet behaupten, diese Wiederherstellung sei unmöglich - ist dies, einfach gesagt, falsch. Denken wir nur einmal an die Forensiker: Dieser Job ist deren täglich Brot, und sie machen ihn meist gut - also muss es schließlich eine Möglichkeit geben. Richtig ist hingegen: Es ist nicht so einfach, wie etwas wieder aus dem Papierkorb zu ziehen. Das ext2/ext3 Dateisystem (und einige andere Unix-Dateisysteme ebenso) speichert die Metadaten (d.h. Dateiname, Größe, Datum, usw.) in seinen iNodes - zusammen mit der Information, in welchen Datenblöcken sich die eigentlichen Daten (also die Datei selbst) befinden. Wird nun eine Datei gelöscht, wird lediglich die Verbindung zwischen diesen beiden Informationen entfernt: Der iNode "vergisst" sozusagen, welche Datenblöcke zu den Metadaten gehören. Außerdem werden sowohl die Datenblöcke als auch der iNode als "frei" markiert. Dennoch verbleiben die nun getrennten Informationen, jede für sich, weiterhin intakt - bis sie irgendwann einmal überschrieben werden.
Auf dieser Grundlage können Tools wie PhotoRec oder foremost "freie Blöcke" nach "Signaturen" scannen (an denen sie bestimmte Dateitypen erkennen), und die gefundenen Dateien wiederherstellen. Da jedoch die Verbindung zum iNode entfernt wurde, können die passenden Metadaten nicht länger zugeordnet werden. Das heißt zum einen, dass sich nicht gezielt eine bestimmte Datei wiederherstellen lässt (da man nich 100%ig weiß, welches die zugehörigen Datenblöcke sind) - aber auch, dass einer "restaurierten" Datei nicht automatisch der "richtige Name" wiedergegeben werden kann. Und berücksichtigen wir nur bisher gesagtes, so haben wir das "Alles-oder-Nichts" Prinzip: Wir können aufgrund der Signaturen die Suche auf bestimmte Dateitypen einschränken - müssen aber entweder alle Dateien dieses Typs wiederherstellen (was bei einer großen Platte eine Menge sein kann, und sicher auch entsprechend dauert) - oder gleich aufgeben.
Aber es gibt zum Glück noch mehr: iNodes sind in "Gruppen" organisiert - und jede dieser Gruppen verwaltet ihrerseits wiederum eine Gruppe von Datenblöcken. Wenn wir also herausfinden können, welchem iNode unsere gelöschte Datei zugeordnet war, lässt sich die Suche auch auf eine Gruppe von Datenblöcken beschränken. Und genau das ist es, was R.A.L.F mit Hilfe des Sleuthkit tut: fls listet alle iNodes zusammen mit deren Metadaten auf - hier suchen wir nach dem Dateinamen, und merken uns die iNode Nummer. fsstat listet wiederum alle iNodes auf - allerdings nicht einzeln, sondern ihre Gruppierung, und diese auch noch zusammen mit den zugehörigen Datenblöcken (woraus wir uns die für unsere Datei interessanten entnehmen können). Jetzt können wir mit dls die entsprechenden Datenblöcke extrahieren, und in eine "Image-Datei" speichern. Somit brauchen PhotoRec (oder foremost) nur noch eine begrenzte Datenmenge auszuwerten - und wir haben aufgrund der geringeren Zielmenge auch weniger Mühe, die gewünschte Datei zu identifizieren.
Anders als R.A.L.F. dient G.A.B.I. dem Zweck, wirklich alle Dateien einer Partition wiederherzustellen. Wahrscheinlich wird niemand dieses Skript wirklich brauchen - zumal das mit PhotoRec und foremost ja auch ohne Frontend ginge. Alles, was G.A.B.I. dazu beiträgt, ist lediglich die Auswahl der Quell- und Zielpartition vorzunehmen - und eventuell die Kenntnis einiger Kommandozeilen-Parameter zu erübrigen.
Feature Übersicht
- Wrappers für Sleuthkit und PhotoRec/foremost
- Alle wiederherstellbaren Dateien einer Partition "retten"
- Vereinfachung des Wiederherstellungsprozesses für spezifische Dateien durch weitestgehende Automatisierung der nötigen Schritte
