Was ist was?

sint45, sfixed5.4, bool - was sind das für komische Sachen in dieser Kategorie?

Veröffentlicht am 10.06.2018, aktualisiert am 18.03.2019

In dieser Rubrik gibt es (bald) allerlei Artikel über Dateiformate und Reverse Engineering.

Nun ist es aber so:
Es gibt da draußen viele Programmiersprachen und viele Leute, die manche Dinge unter völlig anderen Namen kennen - oder gar keine Ahnung von der Existenz fundamentalster Dinge haben, weil ihre Programmiersprache das von ihnen wegabstrahiert.

tl;dr:
Meine Notation entspricht größtenteils C99 . Wer mit dieser Notation etwas anfangen kann, wird mit meiner Notation sicher klarkommen.
Meine Float-Notation wird - sobald ich diese mal verwende - darauf aufbauen und zu gegebener Zeit ergänzt.

Integer

Integer sind schlicht gesagt Ganz-Zahlen, sprich Zahlen ohne Nachkomma-Anteil.
Dabei sind Integer in Datenformaten in aller Regel innerhalb eines festen Zahlenspektrums, quasi einer Auflösung, definiert. Diese gebe ich dabei in Bit an - aus dem Grunde, da ein "Byte" und darauf aufbauende Typen (Word, Qword, ...) in aller Regel Plattformabhängig sind.
Zudem unterscheidet man bei Integer-Typen auch noch zwischen natürlichen Zahlen (ℕ, sprich, ohne Vorzeichen - Unsigned) und ganzen Zahlen (ℤ, sprich, mit Vorzeichen - Signed). Diese Information ist über ein Vorzeichen im Bezeichner (u oder s) ersichtlich.
Dabei ist es möglich, dass Ganzzahlen entweder als Einerkomplement dargestellt werden oder als Zweierkomplement. Solange es nicht anders angegeben ist, wird das Zweierkomplement verwendet.

Ich verzichte auf die Verwendung des Datentyps "char" für Zeichen, da Zeichenketten in der Regel nur Integer-Werte mit einer speziellen Intepretation darstellen.

Beispiele:

Notation Beschreibung Zahlenraum
uint16 Unsigned Integer, 16 Bit Länge 0 - 65.535
sint8 Signed Integer, 8 Bit Länge, Zweierkomplement -126 - 127
uint24 Unsigned Integer, 24 Bit Länge 0 - 16.777.216

Tabellen

In dieser Kategorie wirst du Tabellen wie die folgende vorfinden:

ADR x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0000 0000 43 50 41 4C xx xx xx xx  
Anzahl an Dingen Datentyp: uint24
Gibt an, wieviele Dinge existieren
Anzahl an Undingen Datentyp: uint8
So genau weiß man das nicht

Diese Tabellen entsprechen Hexadezimal-Darstellungen von Datenblöcken. Dabei wird der Datenstrom ähnlich wie in vielen Hex-Editoren in einer 1+16-Spaltigen Ansicht dargestellt. Die allererste Spalte gibt dabei die Adresse bzw. den Offset an.

Felder, die Zahlenwerte beinhalten, stehen dabei für Konstanten oder unwichtige Daten. Ist dagegen "xx" angegeben, so handelt es sich um einen variablen Wert.

Sind Felder farblich hervorgehoben, so wird der Wert in der darunter folgenden Tabelle in der Zeile mit der gleichen Farbe detailliert erklärt. Für diesen Zweck sind 13 Farben verfügbar; leider reicht dies nicht für alle Inhalte dieser Welt, weshalb sich nach dem 13. Wert die Palette von vorne wiederholt. Die untere Tabelle spiegelt dabei stets die Reihenfolge im Datenstrom wider.

Kommentare

Kommentar hinzufügen

Dein Kommentar wird möglicherweise nicht sofort dargestellt werden. Kommentare werden aus Spamschutzgründen moderiert.