
Tool zum Extrahieren des $UsnJrnl von einem NTFS-Volume
Das Änderungsjournal auf NTFS ist eine Datei, die unter $Extend\$UsnJrnl zu finden ist. Es handelt sich um eine System-Metadatei, die weder in einer normalen Verzeichnisauflistung noch auf regulärem Weg gefunden werden kann. Die relevanten Daten befinden sich im alternativen Datenstrom mit dem Namen $J. Es gibt noch einen weiteren ADS namens $Max, der jedoch eher irrelevant ist. $J kann sparse sein, was bedeutet, dass Teile der Daten nur aus Nullen bestehen. Dies kann einen erheblichen Teil der Gesamtdaten ausmachen, und die meisten Tools extrahieren diesen Datenstrom in voller Größe (was ärgerlich und eine enorme Verschwendung von Speicherplatz ist). Genau hier kommt dieses Tool ins Spiel, da es nur die tatsächlichen Daten des Änderungsjournals extrahiert. Dadurch ist die Extraktion natürlich auch schneller. Warum 20 GB extrahieren, wenn man vielleicht nur 200 MB benötigt?
Erklärung der Parameter
/ImageFile:
Vollständiger Pfad und Dateiname einer Image-Datei, aus der extrahiert werden soll. Wenn dieser Parameter verwendet wird, muss auch /ImageVolume: gesetzt werden. Optional.
/ImageVolume:
Die zu extrahierende Volume-Nummer. Wenn das Volume nicht NTFS ist, wird nichts extrahiert. Wird nur mit /ImageFile: verwendet.
/DevicePath:
Der vollständige Gerätepfad, von dem extrahiert werden soll. Optional.
/OutputPath:
Der Ausgabepfad, in den die Datei extrahiert werden soll. Optional. Wenn nicht angegeben, wird der Standard-Ausgabepfad das Programmverzeichnis.
/OutputName:
Der Ausgabedateiname. Optional. Wenn nicht angegeben, lautet der Dateiname $UsnJrnl_$J.bin.
Als Eingabe kann somit /ImageFile: oder /DevicePath: verwendet werden. Image-Dateien müssen rohe dd-ähnliche Images sein und entweder Datenträger- oder Partitionsimages sein. Bei Angabe von Gerätepfaden in /DevicePath ist es möglich, auf angeschlossene Geräte zuzugreifen, die keine gemounteten Volumes haben. Beispiele sind HarddiskVolume1, Harddisk0Partition2, HarddiskVolumeShadowCopy1, PhysicalDrive1. Für PhysicalDriveN muss der Parameter /ImageVolume angegeben werden. Standardmäßig wird das UsnJrnl unter dem Namen $UsnJrnl_$J.bin im Programmverzeichnis extrahiert. Wenn die Ausgabedatei bereits existiert, wird die vorhandene Datei umbenannt und erhält den Zusatz „renamed_[timestamp]“, wobei [timestamp] die aktuelle Uhrzeit bei Programmausführung ist.
Beispielverwendung:
ExtractUsnJrnl /ImageFile:e:\images\disk.dd /ImageVolume:1 /OutputPath:e:\temp /OutputName:UsnJrnl_vol1.bin ExtractUsnJrnl /DevicePath:c: ExtractUsnJrnl /DevicePath:\.\HarddiskVolumeShadowCopy1 /OutputPath:e:\temp /OutputName:UsnJrnl_SC1.bin ExtractUsnJrnl /DevicePath:\.\Harddisk0Partition2 /OutputPath:e:\temp ExtractUsnJrnl /DevicePath:\.\PhysicalDrive0 /ImageVolume:3 /OutputPath:e:\temp