Wie erhalte ich einen 'raw binary dump' einer Datei?

13696
Shashank Sabniveesu

Ich kam in einer Frage durch - was in der Welt ist eine .el8-Datei? . Ich bin gespannt, wie @slhck festgestellt hat, dass die betreffende Datei auf die Software - eLecta - verweist

0
"eLecta" wird im Klartext in der letzten Zeile des geposteten Dateiinhalts angezeigt. Wenn Sie diesen kleinen Teil der Informationen verwenden und auf die vorhandene Software zugreifen, zeigt das Suchen. Es war wahrscheinlich technisch nicht komplizierter als das, aber die verfügbaren Informationen zu seinem Vorteil nutzen zu können, ist eine sehr wichtige Fähigkeit an sich :-). "Binary Dump" sollte in diesem Fall also nur auf den Rohinhalt zeigen, auf dem das Poster in Vim gezeigt wurde. Daniel Andersson vor 10 Jahren 2
Holen Sie sich eine von mehreren "Hex-Dump" - oder "Hex-Browser" -Apps. Ich bin ziemlich begeistert von (dem kostenlosen) "Hex Editor Neo" von http://www.hhdsoftware.com/ (unter Windows). Daniel R Hicks vor 10 Jahren 0

4 Antworten auf die Frage

4
grawity

Meine Vermutung:

Es ist sehr wahrscheinlich, dass "raw binary dump" eigentlich einen Hexdump bedeutet - eine Auflistung, die jedes Byte in der Datei als Hexadezimalzahlen anstelle von (oder zusätzlich zu) dem Byte selbst anzeigt.

Es sieht normalerweise so aus:

... 00000a0: 6d65 3233 3a6d 6564 6961 7769 6b69 2d31 me23:mediawiki-1 00000b0: 2e31 352e 312e 7461 722e 677a 3132 3a70 .15.1.tar.gz12:p 00000c0: 6965 6365 206c 656e 6774 6869 3332 3736 iece lengthi3276 00000d0: 3865 363a 7069 6563 6573 3636 3230 3ae9 8e6:pieces6620:. 00000e0: b08a 7ef8 00f8 d8b4 a53e 15e3 6bd6 e2c4 ..~......>..k... 00000f0: a7e4 1aa6 c67f 7106 cd3e 1672 decc b5c7 ......q..>.r.... 0000100: 455c a86d 4751 379a f59f 3665 1e8c 128a E\.mGQ7...6e.... 0000110: dec4 e670 ca0f e960 353b 48fe 3dfb c455 ...p...`5;H.=..U 0000120: f940 e102 13d6 8385 1655 4642 3e83 060b .@.......UFB>... 0000130: 585f d353 2ef2 07ff d9e3 aeb6 7329 2192 X_.S........s)!. 0000140: e0a9 7d75 390f 3c16 def6 d806 469e af64 ..}u9.<.....F..d ... 

Jede Zeile hat eine Startposition, 16 Byte in Hex und die gleichen 16 Byte in "sicherer" Form (d. H. Bytes zwischen 0x20 und 0x7f werden direkt angezeigt, der Rest wird durch .'s ersetzt).

Unter Linux xxd, hd, hexdump -Coder verschiedene Beschwörungen odverwendet werden. Unter Windows eine Reihe von Binär-Editoren wie hiewoder HxD.

Ich gebe zu, ich habe dort das falsche Vokabular verwendet. Binär wäre etwas völlig anderes gewesen. slhck vor 10 Jahren 1
Ich denke, Sie wissen es, aber um nur klar zu sein, es sieht so aus, als würde od nicht binär angezeigt barlop vor 10 Jahren 0
3
Hennes

Die Datei wurde einfach in einem Texteditor geöffnet. In diesem Fall in vi war dies wahrscheinlich eine Verbindung zu Vim . Es wurden reguläre ASCII-Zeichen angezeigt. Nicht druckbare Zeichen wurden durch die ^@Zeichen ersetzt.

Ziel war es zu sehen, ob die Datei magische Zahlen enthielt. In diesem Fall hatte die Datei keine, aber sie enthielt den Pfad zu dem temporären Verzeichnis, in dem die Aufzeichnung gemacht wurde. Wir hatten Glück, weil das den Namen des Programms im Pfad enthielt.

Eine fortgeschrittenere Version wäre die Verwendung eines Hex-Editors oder die Konfiguration von vi [m], um die Daten in einem anderen Format mit xxd anzuzeigen .

3
barlop

Um die Frage zu beantworten, die der Betreff Ihres Beitrags stellt (wie erhalten Sie einen "Binären Binärdump" einer Datei?):

Datei a.ahat den Buchstaben 'a' gefolgt von CR LF .

C:\Program Files\Vim\vim73 >type a.a a 

xxd -b(binär) unterstützt nicht -ps(einfach), daher erhalten Sie Junk (das 0000000:und das a..)

C:\Program Files\Vim\vim73 >xxd -b a.a 0000000: 01100001 00001101 00001010 a.. 

Hier ist die Lösung:

xxd -b a.a | sed -r "s/\d32.*//g" | sed "s/.*://" | sed "s/\d32//g" 

Es produziert

011000010000110100001010

Unten ist die Arbeitsweise.

Schauen wir uns an, wie 0000000: 01100001 00001101 00001010 a..es zusammengesetzt ist. OK, also ist die große Lücke ein Haufen Leerzeichen.

C:\Program Files\Vim\vim73 >xxd -b a.a | od -tx1 0000000 30 30 30 30 30 30 30 3a 20 30 31 31 30 30 30 30 0000020 31 20 30 30 30 30 31 31 30 31 20 30 30 30 30 31 0000040 30 31 30 20 20 20 20 20 20 20 20 20 20 20 20 20 0000060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0000100 61 2e 2e 0d 0a 0000105 

Ich entfernte die lange Folge von Leerzeichen und alles, was ihnen folgt. So kommt es hin:

C:\Program Files\Vim\vim73 >xxd -b a.a | sed -r "s/\d32.*//g" 0000000: 01100001 00001101 00001010 

Entfernen Sie die 0 bis einschließlich des Doppelpunkts und entfernen Sie alle anderen Leerzeichen:

C:\Program Files\Vim\vim73 xxd -b a.a | sed -r "s/\d32.*//g" | sed "s/.*://" 01100001 00001101 00001010  C:\Program Files\Vim\vim73 >xxd -b a.a | sed -r "s/\d32.*//g" | sed "s/.*://" | sed "s/\d32//g" 011000010000110100001010 

Und so gibt es eine Lösung

C:\Program Files\Vim\vim73 >xxd -b a.a | sed -r "s/\d32.*//g" | sed "s/.*://" | sed "s/\d32//g" 011000010000110100001010 

xxd ist in Vim 7.x und sed in GnuWin32 verfügbar .

2
Jublo

@slhck sah sich die Frage mit einem viDump an. Ein Teil davon hier zitieren:

^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @; C: \ eLecta \ Server \ TempRecordings \ U734806R4970S3962792726.el8 ¢ s³wÕs³w ^ @ ^ @ ^ @ ^ @ è (D

Unter Windows erhalten Sie einen binären Speicherauszug mit HxD . Oder Sie versuchen einfach, die Datei in Notepad zu öffnen. Ähnliches gilt für * nix-Systeme.