Schablonen-DefinitionKopf

WinHex & X-Ways

Schablonen-Definition: Kopf

 

Der Kopf einer Schablonen-Definition hat das folgende Format. Die Ausdrücke in Klammern sind optional. Die Reihenfolge der Ausdrücke ist nicht von Bedeutung.

 

template "Titel"

[description "Beschreibung"]

[applies_to (file/disk/RAM)]

[fixed_start Offset]

[sector-aligned]

[requires Offset "Hex-Werte"]

[big-endian]

[hexadecimal/octal]

[read-only]

[multiple [fixe Gesamtgröße]]

// Hier ist Platz für allgemeine Kommentare.

begin

         Variablen-Deklarationen

end

 

Ausdrücke müssen nur in Hochkommata eingeschlossen werden, wenn sie Leerzeichen enthalten. Kommentare dürfen überall in einer Schablonen-Definition auftauchen; Zeichen, die einem doppelten Schrägstrich folgen, werden vom Parser ignoriert.

 

Dem Schlüsselwort "applies_to" muß genau eins der Wörter file, disk oder RAM folgen. WinHex gibt eine Warnmeldung aus, wenn Sie eine auf diese Weise gekennzeichnete Schablone auf Daten von einer anderen Quelle anwenden.

 

Während standardmäßig die Schablone beim Starten die Daten an der aktuellen Cursor-Position interpretiert, sorgt die optionale Anweisung "fixed_start" dafür, daß dies am angegebenen absoluten Offset der Datei bzw. des Datenträgers geschieht.

 

Wendet man eine Schablone auf einen Datenträger an, so stellt das Schlüsselwort "sector-aligned" sicher, daß sie ungeachtet der exakten Cursor-Position auf den Anfang des aktuellen Sektors bezogen wird.

 

Ähnlich wie ein "applies_to"-Ausdruck ermöglicht es die "requires"-Anweisung WinHex, eine unabsichtliche Anwendung einer Schablonen-Definition auf nicht auf sie passende Daten zu verhindern. Geben Sie hinter "requires" einen Offset und eine Hex-Wert-Kette beliebiger Länge an. Dies soll die Daten, für die die Schablone konzipiert wurde, identifizieren. Zum Beispiel läßt sich ein gültig Master-Boot-Record an den Hex-Werten 55 AA an Offset 0x1FE erkennen, eine ausführbare Datei an den Hex-Werten 4D 5A ("MZ") an Offset 0x0. Es dürfen mehrere "requires"-Anweisungen im Definitionskopf vorkommen, die alle berücksichtigt werden.

 

Das Schlüsselwort "big-endian" sorgt dafür, daß alle aus mehreren Bytes bestehende Integer- und Boolean-Variablen in Big-Endian-Reihenfolge gelesen und geschrieben werden (höchst-wertiges Byte vorn).

 

Das Schlüsselwort "hexadecimal" bewirkt, daß Integer-Variablen innerhalb der Schablonen-Definition in hexadezimaler Schreibweise angezeigt werden.

 

Das Schlüsselwort "read-only" stellt sicher, daß die Schablone nur benutzt werden kann, um Datenstrukturen einzusehen, nicht um sie zu manipulieren. Die Editierfelder der Schablone erscheinen dann grau.

 

Wenn das Schlüsselwort "multiple" im Definitionskopf angegeben wird, erlaubt WinHex das Wechseln zu benachbarten Datensätzen derselben Struktur. Das erfordert, daß WinHex die Größe eines Datensatzes kennt. Sofern diese nicht fest als Parameter der "multiple"-Anweisung angegeben wurde, nimmt WinHex an, daß die Gesamtgröße sich berechnet als die aktuelle Position nach der Anwendung der Schablonen-Definition minus Startposition. Wenn dies eine variable Größe ergibt, d. h. Array-Größen oder "move"-Parameter sich dynamisch aus den Werten von Variablen bestimmen, kann WinHex nicht zu vorgelagerten Datensätzen wechseln.