
Werkzeug zur Untersuchung, Extraktion, Reparatur und forensischen Analyse von FAT-Dateisystemen

Dieses Tool wurde entwickelt, um FAT-Dateisysteme zu manipulieren, um sie zu erkunden, zu extrahieren, zu reparieren, wiederherzustellen und forensisch zu untersuchen. Es unterstützt derzeit FAT12, FAT16 und FAT32.
Sie können fatcat auf diese Weise bauen:
mkdir build
cd build
cmake ..
make
Und dann installieren:
make install
Fatcat nimmt ein Image als Argument entgegen:
fatcat disk.img [Optionen]
HINWEIS: Je nach Build müssen Sie die Optionen möglicherweise vor disk.img angeben, d.h.
fatcat [Optionen] disk.img
Sie können einen Offset in der Datei mit -O angeben, das kann nützlich sein, wenn es mehrere Partitionen auf einem Blockgerät gibt, zum Beispiel:
fatcat disk.img -O 1048576 [Optionen]
Dies teilt fatcat mit, beim 1048576. Byte zu beginnen. Werfen Sie einen Blick auf das Partitions-Tutorial.
Sie können die FAT-Partition mit der Option -l wie folgt erkunden:
$ fatcat disk.img -l /
Auflisten von Pfad /
Cluster: 2
d 24/10/2013 12:06:00 some_directory/ c=4661
d 24/10/2013 12:06:02 other_directory/ c=4662
f 24/10/2013 12:06:40 picture.jpg c=4672 s=532480 (520K)
f 24/10/2013 12:06:06 hello.txt c=4671 s=13 (13B)
Sie können auch einen Pfad wie -l /some/directory angeben.
Mit -L können Sie eine Clusternummer anstelle eines Pfades angeben, das kann manchmal nützlich sein.
Wenn Sie -d hinzufügen, werden auch gelöschte Dateien angezeigt.
In der Auflistung steht das Präfix f oder d dafür, ob die Zeile eine Datei oder ein Verzeichnis betrifft.
Das c= gibt die Clusternummer an, s= die Größe in Bytes (die der hübschen Größe direkt danach entsprechen sollte).
Der Buchstabe h am Ende zeigt an, dass die Datei als versteckt gilt.
Der Buchstabe d am Ende zeigt an, dass die Datei gelöscht wurde.
Sie können eine Datei mit -r lesen; die Datei wird auf die Standardausgabe geschrieben:
$ fatcat disk.img -r /hello.txt
Hallo Welt!
$ fatcat disk.img -r /picture.jpg > save.jpg
Mit -R können Sie eine Clusternummer anstelle eines Pfades angeben, aber die Dateigrößeninformation geht verloren und die Datei wird auf die Anzahl der Cluster gerundet, in die sie passt, es sei denn, Sie geben die Option -s an, um die zu lesende Dateigröße festzulegen.
Sie können -x verwenden, um die FAT-Dateisystemverzeichnisse in ein Verzeichnis zu extrahieren:
fatcat disk.img -x output/
Wenn Sie aus einem bestimmten Cluster extrahieren möchten, geben Sie ihn mit -c an.
Wenn Sie -d zum Extrahieren angeben, werden auch gelöschte Dateien extrahiert.
Wie oben erklärt, können gelöschte Dateien in der Auflistung gefunden werden, indem Sie -d angeben:
$ fatcat disk.img -l / -d
f 24/10/2013 12:13:24 delete_me.txt c=5764 s=16 (16B) d
Sie können erkunden und eine Datei oder ein interessantes gelöschtes Verzeichnis ausfindig machen.
Um eine gelöschte Datei wiederherzustellen, verwenden Sie einfach -r, um sie zu lesen. Beachten Sie, dass die erzeugte Datei zusammenhängend aus dem ursprünglichen FAT-System gelesen wird und beschädigt sein kann.
Um ein gelöschtes Verzeichnis wiederherzustellen, notieren Sie sich seine Clusternummer und extrahieren Sie es wie oben:
# Wenn Ihr gelöschtes Verzeichnis Cluster 71829 ist
fatcat disk.img -x output/ -c 71829
Siehe auch: Undelete-Tutorial
Angenommen, Ihre Festplatte hat defekte Sektoren, möchten Sie möglicherweise eine Wiederherstellung durchführen.
Der erste Ratschlag ist, eine Kopie Ihrer Daten mit ddrescue zu erstellen und Ihre Festplatte auf eine andere oder in eine intakte Datei zu sichern.
Wenn Sektoren defekt sind, werden ihre Bytes in dem ddrescue-Image durch 0 ersetzt.
Eine erste Möglichkeit besteht darin, zu versuchen, Ihr Image mit -l wie oben zu erkunden und mit -i zu prüfen, ob fatcat die Festplatte als FAT-System erkennt.
Dann können Sie versuchen, einen Blick auf -2 zu werfen, um zu prüfen, ob sich die Dateizuordnungstabellen unterscheiden und ob sie zusammenführbar erscheinen. Es ist sehr wahrscheinlich, dass sie zusammenführbar sind; in diesem Fall können Sie -m ausprobieren, um die FAT-Tabellen zusammenzuführen. Vergessen Sie nicht, vorher ein Backup zu erstellen (siehe unten).
Wenn Ihr Dateisystem beschädigt ist, gibt es Dateien und verlorene Dateien und verlorene Verzeichnisse, die wir "verwaist" nennen, weil Sie sie nicht über das normale System erreichen können.
fatcat bietet Ihnen eine Option, um diese Knoten zu finden. Es führt eine automatisierte Analyse Ihres Systems durch und erkundet zugewiesene Sektoren Ihres Dateisystems. Dies geschieht mit -o.
Sie erhalten eine Liste von Verzeichnissen und Dateien, wie diese:
Es gibt 2 verwaiste Elemente:
Verzeichniscluster 4592 bis 4592: 2 Elemente, 49B
Dateicluster 4611 bis 4611: ~512B
Sie können dann direkt -L und -R verwenden, um einen Blick auf diese Dateien und Verzeichnisse zu werfen:
$ fatcat disk.img -L 4592
Auflisten von Cluster 4592
Cluster: 4592
d 23/10/2013 17:45:06 ./ c=4592
d 23/10/2013 17:45:06 ../ c=0
f 23/10/2013 17:45:22 poor_orphan.txt c=4601 s=49 (49B)
Beachten Sie, dass verwaiste Dateien eine unbekannte Größe haben; das bedeutet, dass Sie beim Lesen eine Datei erhalten, die ein Vielfaches der Clustergrößen beträgt.
Siehe auch: Tutorial zu verwaisten Dateien
Sie können fatcat verwenden, um Ihr FAT-Dateisystem zu hacken.
Die -i-Flagge liefert Ihnen eine Vielzahl von Informationen über das Dateisystem:
fatcat disk.img -i
Dies gibt Headerdaten wie Sektorgrößen, FAT-Größen, Datenträgerbezeichnung usw. aus. Es liest auch die FAT-Tabelle, um die Belegung der Festplatte zu schätzen.
Sie können auch Informationen über einen bestimmten Cluster mit -@ abrufen:
fatcat disk.img -@ 1384
Dies gibt die Clusteradresse (Offset des Clusters im Dateisystem) und den Wert des nächsten Clusters in den beiden FAT-Tabellen aus.
Sie können -b verwenden, um Ihre FAT-Tabellen zu sichern:
fatcat disk.img -b backup.fats
Und -p verwenden, um sie wiederherzustellen:
fatcat disk.img -p backup.fats
Sie können mit -w und -v in die FAT-Tabellen schreiben:
fatcat disk.img -w 123 -v 124
Dies schreibt 124 als Wert des nächsten Clusters von 123.
Sie können die Tabelle auch mit -t auswählen, 0 für beide Tabellen, 1 für die erste und 2 für die zweite.
Sie können sich den Unterschied zwischen den beiden FATs mit -2 ansehen:
# Den Unterschied anzeigen
$ fatcat disk.img -2
Vergleiche die FATs
FATs sind exakt gleich
# 123 in den 500. Cluster nur in FAT1 schreiben
$ fatcat disk.img -w 500 -v 123 -t 1
Schreibe nächsten Cluster von 500 von 0 auf 123
Schreibe auf FAT1
# Den Unterschied anzeigen
$ fatcat disk.img -2
Vergleiche die FATs
[000001f4] 1:0000007b 2:00000000
FATs unterscheiden sich
Es scheint zusammenführbar
Sie können zwei FATs mit -m zusammenführen. Für jeden unterschiedlichen Eintrag in der Tabelle wird, wenn einer null ist und der andere nicht, der Nicht-Null-Eintrag gewählt:
$ fatcat disk.img -m
Beginne mit der Zusammenführung...
Führe Cluster 500 zusammen
Zusammenführung abgeschlossen, 1 Cluster zusammengeführt
Siehe auch: Tutorial zur FAT-Reparatur
Fatcat kann Verzeichnisse reparieren, die eine defekte FAT-Verkettung aufweisen.
Verwenden Sie dazu -f. Der gesamte Dateisystembaum wird durchlaufen, und die Verzeichnisse, die in der FAT nicht zugewiesen sind, die aber gelesen werden können, werden in der FAT repariert.
Sie können Informationen über einen Eintrag mit -e abrufen:
fatcat disk.img -e /hello.txt
Dies zeigt die Adresse des Eintrags (nicht der Datei selbst), die Clusterreferenz und die Dateigröße (falls kein Verzeichnis) an.
Sie können das Flag -c [Cluster] hinzufügen, um den Cluster des Eintrags zu ändern, und das Flag -s [Größe], um die Eintragsgröße zu ändern.
Siehe auch: Tutorial zum Spaß mit FAT
Sie können -k verwenden, um nach einer Clusterreferenz zu suchen.
Sie können Daten in nicht zugewiesenen Sektoren löschen, mit Nullen mittels -z oder mit Zufallsdaten mittels -S.
Zum Beispiel werden gelöschte Dateien dann unlesbar.
Dies steht unter der MIT-Lizenz.