Die Binärdatei enthält Zeichenfolgen und einige Zahlen. Wenn ich od -c filename
oder tue
strings filename
, kann ich die Zeichenfolgen richtig sehen. Aber was ist mit Zahlen? Sie haben ein komisches Format.
Der Text danach od -c filename
ist wie folgt:
0000000 036 \ 0 032 004 SD \ 0 \ 0 \ 0 \ 0 Seq 1 0000020 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ t \ 0 - 002 3 001 0000040 & \ 0 032 \ f O 2 006 \ 0 \ 0 \ 0 osfus 1 0000060 - 002 3 001 - \ r \ 0 \ 0 \ t \ 0 \ 0 @ 3 × 0000100 233 º 004 \ 0 é 003 \ 0 \ 0 & \ 0 032 \ f O 2 7 \ 0 0000120 \ 0 \ 0 osfeu 1 ó 002 3 001 é 235 0000140 \ 0 \ 0 035 003 \ 0 @ 3 × 233 º 004 \ 0 Ñ \ a \ 0 \ 0 0000160 ä \ 0 032 \ f O r E \ 0 \ 0 \ 0 osfap 1
Wie kann man das entschlüsseln?
Ich habe es sogar versucht hexdump -C filename
Die Ausgabe sieht folgendermaßen aus:
00000000 1e 00 1a 04 53 44 00 00 00 00 73 65 71 31 20 20 | .... SD .... seq1 | 00000010 20 20 00 00 00 00 00 00 00 00 09 00 f3 02 33 01 | .......... ó.3. | 00000020 26 00 1a 0c 4f 32 06 00 00 00 6f 73 66 75 73 31 | & ... O2 .... osfus1 | 00000030 20 20 f3 02 33 01 ff 0d 00 00 09 00 00 40 33 d7 | ó.3.ÿ ...... @ 3 × | 00000040 9b ba 04 00 e9 03 00 00 26 00 1a 0c 4f 32 37 00 | .º..é ... & ... O27. | 00000050 00 00 6f 73 66 65 75 31 20 20 f3 02 33 01 e9 9d | ..osfeu1 ó.3.é. | 00000060 00 00 1d 03 00 40 33 d7 9b ba 04 00 d1 07 00 00 | ..... @ 3 × .º..Ñ ... | 00000070 e4 00 1a 0c 4f 72 45 00 00 00 6f 73 66 61 70 31 | ä ... OrE ... osfap1 |
Zur Verdeutlichung hatte die Hauptdatei, die eine reguläre Datei ist, ein Attribut, das angezeigt wurde, ein seltsames Format, also schauen wir uns die Roh- / Binärdatei an.
Durch Ausführen eines Oktal-Dumps für die reguläre Datei wurde das Anzeigeproblem behoben.
Mit grep 'id=123' regular_file | head -1 | od -c
konnte ich sehen, welche Nummer drin war. Ich hatte 1 erwartet, es zeigte sich uns als 001.
not text
in dieser ASCII-Ansicht bedeutet das nicht, dass es sich um ASCII für das Programm handelt, das die Datei liest. z.B. Die Nummer 7957706749327538292, wenn sie als vorzeichenlose 64-Bit-Little-Endian-Ganzzahl codiert ist. Sieht aus wie dies in der ASCII - Ansicht:not text
.Antworten:
Es gibt viele Möglichkeiten, Zahlen zu speichern - ASCII (mit länderspezifischen Varianten, z. B. mit ',' zum Trennen von Bruchteilen ODER als Tausendergruppierung), binäre Ganzzahl (variable Anzahl von Bits) / float / double (alle) Dies hängt von der Endian-Architektur ab und davon, ob Software, die die Datei erstellt, die Darstellung formalisiert.), BCD (unkomprimiert, gepackt, Festkomma und andere Varianten), ...
Es gibt keinen Standard.
quelle
Eines der ersten Dinge, die ich mir für die Informatik merken musste, war Daten + Interpretation = Nützliche Informationen . Eine Konsequenz daraus ist, dass Sie nichts haben, wenn Sie Daten oder Interpretation vermissen. Die Daten selbst können Ihnen nicht sagen, wie Sie sie interpretieren sollen. (Sie können Metadaten haben, die Ihnen dies mitteilen, aber dann müssen Sie auch wissen, wie die Metadaten zu interpretieren sind. )
Unter diesen Umständen schlage ich vor, Folgendes zu versuchen:
Wenn es mit etwas kommt, wie:
und Sie haben absolut keine Ahnung, was das Format ist, aus welchem Programm es stammt, wie es verwendet wird oder was mit dem Inhalt zu tun hat
filename
, dann sollten Sie wahrscheinlich aufgeben.Oktaldump-Ausgabe
od
(oktaler Speicherauszug) erzeugt einen hybriden Text-und-Oktal-Speicherauszug. Nicht-Zahlen sind entweder druckbare Zeichen wieo
,s
,f
, usw., oder nicht-druckbaren Zeichen , wie beispielsweise\0
(ASCII 0,NUL
) oder\a
(ASCII 7BEL
) oder Zahlen im Boden 8, mit dem Standard - C - Präfix0
(z032
= 26 in Dezimal). Ihre Datei wird als Stream von 8-Bit-Bytes interpretiert .Hex-Dump-Ausgang
hexdump
Erzeugt einen traditionellen Hex-Dump, wobei eine Spalte 8-Bit-Bytes hexadezimal auflistet und die andere zeigt, welchen ASCII-Zeichen diese Bytes gegebenenfalls entsprechen (wenn der Bytewert ein nicht druckbares ASCII-Zeichen oder überhaupt kein ASCII-Zeichen ist) ,.
ist in dieser Position gezeigt). Auch hier wird Ihre Datei als Stream von interpretiert 8-Bit-Bytes .Ganze Zahlen
Wenn Ihre Datei zu 100% aus binären Ganzzahlen besteht (dh eine kopflose, einheitliche, eindimensionale Matrix mit einer Art Ganzzahlendarstellung), müssen Sie alle folgenden Fragen selbst beantworten:
Es gibt wahrscheinlich noch mehr, die ich gerade vergesse.
Und dies ist nur für eine eindimensionale, einheitliche Anordnung von ganzen Zahlen, die aus einer gemeinsamen, modernen Computerarchitektur stammen. Wenn Ihre Daten irgendeine Art von Komplexität aufweisen, werden die Dinge so haarig, dass es schnell einfacher wird, im Lotto zu gewinnen, als nur das Format zu erraten. Und Sie müssen raten (eine fundierte Vermutung, aber eine Vermutung), es sei denn, Sie kennen das Format.
quelle