Analyse roher Daten mit CI Hex Viewer

Analyse roher Daten ist ein unentbehrliches Teil des Prozesses von Datenrettung und forensischer Untersuchung. Datensuche und Datenanalyse auf einem Speicher werden normalerweise mithilfe spezieller Software durchgeführt. Es gibt aber Fälle, die die automatischen Softwaremechanismen nicht bedecken können. Dann müssen die rohen Daten direkt vom User analysiert werden.


In diesem Artikel wird ein Beispiel zur Analyse roher Daten mit Programm CI Hex Viewer angeführt. Hier wird die Struktur des Bootsektors der NTFS-Partition mit dem Zweck der Suche der Dateitabelle MFT für weitere Datenrettung analysiert. Dabei werden einige Tipps zur Programmbenutzung gegeben.



Zuerst öffnen wir den NTFS-Volumen im Programm CI Hex Viewer. Dazu drücken wir den Knopf Öffnen, dann Physische Festplatte und wählen die zu analysierende NTFS-Partition aus der Speicherliste im Dialogfenster.







Eine virtuelle Festplatte wird dabei als eine Datei mit Option Als Speicherabbilddateigeöffnet.





Mit der im Programm schon geöffneter Festplatte kann man Partitionen auch durch die Option Partition aus diesem Speicher öffnen.







NTFS-Bootsektor hat die folgende Struktur:


Offset

Feldlänge
(Bytes)

Feldname

0x0

3

Sprung auf Bootstrap-Code

0x03

8

„NTFS“-Kennzeichen

0x0B

25

Bios Parameter Block (BPB)

0x24

48

Erweiterter BPB

0x54

426

Bootstrap-Code

0x01FE

2

Marker für das Ende des Bootsektors



Zur Einteilung des Bereiches markieren wir sofort die Datenblöcke des Bootsektors im Programm. Dazu wählen wir Position markieren aus der Toolbar



und speichern die Position mit unserem Kommentar.



Alle markierten Positionen werden in eine Liste eingetragen.





Um diese Struktur auch für weitere Analysen zu verwenden, speichern wir die Liste in eine Datei drückend auf den Knopf Speichern. Die gespeicherte Liste wird durch den Knopf Öffnen ins Programm geladen. Mit dem Knopf Löschen wird die aktuelle Liste entfernt.



Der BPB und der erweiterte BPB sind das wichtigste Teil des Bootsektors für Datenrettung aus einem NTFS-Laufwerk. Sie enthalten wesentliche Informationen über die Architektur des Laufwerks und weisen auf die MFT, wo sich die Einträge über alle Dateien im NTFS-System befinden. Insgesamt hat der BPB die folgende Struktur:

Offset

Feldlänge (Bytes)

Feldname

0x0B

2

Anzahl von Bytes pro Sektor

0x0D

1

Anzahl von Sektoren pro Cluster

0x0E

2

Anzahl von reservierten Sektoren

0x10

3

Immer 0

0x13

2

Wird durch NTFS nicht benutzt

0x15

1

Quellentyp

0x16

2

Immer 0

0x18

2

Anzahl von Sektoren pro Spur

0x1A

2

Anzahl von Köpfen

0x1C

4

Anzahl versteckter Sektoren

0x20

4

Wird durch NTFS nicht benutzt

0x24

4

Wird durch NTFS nicht benutzt

0x28

8

Anzahl von Sektoren im NTFS-Volumen

0x30

8

Startcluster von MFT

0x38

8

Startcluster der MFT-Kopie

0x40

4

Anzahl von Clustern pro MFT-Eintrag

0x44

4

Anzahl von Clustern pro Index-Eintrag

0x48

8

Einzigartige Seriennummer des Volumens

0x50

4

Kontrollsumme



Der BPB beginnt mit Offset 0x0B, gefolgt vom erweiterten BPB ab Offset 0x24. Insgesamt nimmt der BPB den Datenbereich von Offset 0x0B bis Offset 0x53 (73 Bytes). Von der Liste markierter Positionen übergehen wir auf den Anfang des BPB.



Zu einem leichten Anschauen heben wir diesen Bereich hervor, indem wir den Knopf Bereich wählen drücken



und den Bereich durch Angabe der Positionen ab 0x0B bis 0x53



bzw. durch Angabe von der Anzahl von Bytes markieren.







Die Information über den Markierungsbereich wird in der kontextuellen Zeile widerspiegelt. Hier finden wir den Anfang, die Länge und die Gesamtgröße des markierten Bereiches. Die hexadezimale Darstellung lässt sich leicht in dezimal konvertieren. Dazu drücken wir [DEC] an der Spitze von der Spalte für die Zeilenadresse.





Die Werte von Datenfelder lassen sich auch mit dem Rohdateninspektor leicht lesen. Zur Widerspiegelung von Werten der Datenfelder im Rohdateninspektor wird der Cursor an die Anfangsposition des Feldes gestellt. Danach wird die Zeile mit einer entsprechenden Feldlänge in der Tafel gesucht. Zum Beispiel, befindet sich der Wert des 2-Byte-Feldes ab Position 0x0B in der Zeile Word (2 Bytes) – 0x0200.



Zum Hinzufügen bzw. zur Entfernung eines Datentyps im Rohdateninspektor wird Abschnitt Konfiguration geöffnet, konfigurieren in der Zeile für den Dateninspektor gedrückt und die nötigen Datentype werden gewählt.






Die Analyse von BPB auf unserer NTFS-Partition ergibt das Folgende:

Offset

Feldlänge (Bytes)

Feldname

Ergebnis

0x0B

2

Anzahl von Bytes pro Sektor

0x200 (512 Bytes)

0x0D

1

Anzahl von Sektoren pro Cluster

0x08 (8 Sektoren)

0x0E

2

Anzahl versteckter Sektoren

0 (Sektoren)

0x15

1

Datenquellentyp

0xF8 (steht für die Festplatte)

0x18

2

Anzahl von Sektoren pro Spur

0x3F (63 Sektoren)

0x1A

2

Anzahl von Köpfen

0xFF (255 Köpfe)

0x1C

4

Anzahl versteckter Sektoren

0x1080 (4224 Sektoren)

0x28

8

Anzahl von Sektoren auf der Partition insgesamt

0x0C247FFF (203 718 655 Sektoren)

0x30

8

MFT-Startcluster

0x0C0000 (Cluster 786432)

0x38

8

Startcluster der MFT- Backupkopie

0x02 (Cluster 2)

0x40

4

Anzahl von Clustern pro MFT-Eintrag

0xF6 (246 Cluster)

0x44

4

Anzahl von Clustern pro Index-Eintrag in NTFS

0x01 (1 Cluster)

0x48

8

Kennung für die NTFS-Partition

0x38 2C 72 B2 2C 72 6B 30

0x50

4

Kontrollsumme

0x00 00 00 00



Anhand von den entsprechenden Werten erkennt und sammelt das Programm die Information über Datenquellen. Die Zusammenfassung von Datenquelleneigenschaften ist in der Informationstafel zu finden.





Der Inspektor kann auch ausblendet werden, indem der Knopf Inspektor-Tafel umschalten gedrückt wird.




Um die Konsistenz des Bootsektors zu überprüfen, öffnen wir den Marker für das Ende des Bootsektors. Dazu wählen wir Nächste Position aus der Drop-Down-Liste und übergehen auf die nötige Position ohne die ganze Liste öffnen zu müssen.



Hier finden wir den Wert AA 55, was dem Wert eines unbeschädigten Bootsektors entspricht.



Die wichtigste Information für die Datenrettung von NTFS ist die Information zum Finden von MFT. Zum Ausrechnen der MFT-Position sind die Startposition des MFT-Clusters, die Anzahl von Sektoren in einem Cluster und die Anzahl von Bytes in einem Sektor wesentlich. Aus unserer Analyse folgt, dass sich die MFT auf Cluster 786432 befindet, dass die Anzahl von Bytes pro Sektor 512 und die Anzahl von Sektoren pro Cluster 8 ist. Der MFT-Startcluster wird mit der Clustergröße multipliziert, was den MFT-Startposition ergibt: 786432 x (512 x 8) = 786432 x 4096 = 3221225472 (0xC0000000).

Wir stellen den Cursor am Start der Partition und überspringen zum MFT-Startposition mit dem Knopf Übergehen.




Dazu geben wir im Dialog zum Positionswechsel Position 0xC0000000, wählen Bytes als Einheit zum Ausrechnen der neuen Position und die Richtung Vom Anfang.




In diesem Block sehen wir die Merkmale von MFT ($M.F.T.):



Zum Zurückkehren auf den Partitionsstart als eine vorherige Position drücken wir den Knopf Vorherige Stelle.



Fazit:

In unserem Beispiel wurde die MFT durch Analyse der Struktur vom Bootsektor gefunden. Es war ein erster Schritt, womit Datenrettung aus einer beschädigten NTFS-Partition beginnen soll. Datenrettungsergebnisse hängen in einer wesentlichen Masse vom Abstand der MFT ab.




Legal notes     Privacy policy     Support     Contact    
Copyright © 2004-2015 LLC SysDev Laboratories. All rights reserved.