In Binaerdatei suchen [Erledigt]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

In Binaerdatei suchen [Erledigt]

Beitrag von heinz » 19.11.2018 16:26:48

Hallo Zusammen,

ich stehe mal wieder auf dem Schlauch und braeuchte Eure Hilfe.

Ich habe eine Binaerdatei mit einer groesse von 11305 Byte.
Wenn ich jedes Byte dieser Datei mittels >od< in eine zweistellige Hex-Zahl
umwandele, dann die Anzahl der Zeichen zaehle und durch 2 Teile, muesste doch
die Dateilaenge herauskommen.
Tut es aber nicht...

Code: Alles auswählen

ls -l bindatei
-rw-r--r-- 1 deb deb 11305 Okt 20 15:09 bindatei

od -An -tx1 bindatei | tr -d '[:space:]' | wc -L
22265

echo $((22265/2))
11132
Wo liegt mein Denkfehler?

Hintergrund:
Ich moechte mittels

Code: Alles auswählen

grep -obe 24240005
in der Binaerdatei die Position eines "Markers" >0x24240005< finden,
da dahinter eine Bytefolge kommt, die ich extrahieren moechte.
Das klappt auch, nur die Position ist falsch...

Bin fuer jede Hilfe Dankbar...
Gruss heinz
Zuletzt geändert von heinz am 19.11.2018 17:07:59, insgesamt 1-mal geändert.

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: In Binaerdatei suchen

Beitrag von heinz » 19.11.2018 17:07:38

Hallo nochmal,

hab es auf andere weise "Hinbekommen".
Verwende jetzt >hexdump< anstatt >od<

Code: Alles auswählen

hexdump -v -e '/1 "%02X "' bindatei |tr -d ' '|grep -obe 24240005
Funktioniert wie es soll...

gruss heinz

owl102

Re: In Binaerdatei suchen [Erledigt]

Beitrag von owl102 » 19.11.2018 19:42:30

Bei mir (Fedora 29) funktioniert auch die Variante mit "od" mit jeder Binärdatei, die ich getestet habe. Unter Debian 9 könnte ich es morgen testen, aber es hat sich ja sowieso erledigt.

Was anderes: Bei deiner Vorgehensweise würdest du zum Beispiel auch bei den Bytes 02 42 40 00 51 fälschlicherweise einen Treffer landen. Ich würde daher lieber die Leerzeichen zwischen den Hex-Bytes drin lassen.

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: In Binaerdatei suchen [Erledigt]

Beitrag von heinz » 19.11.2018 20:24:45

Hallo owl102 ,

danke fuer Deine Muehe mit dem Testen...
owl102 hat geschrieben: ↑ zum Beitrag ↑
19.11.2018 19:42:30
Was anderes: Bei deiner Vorgehensweise würdest du zum Beispiel auch bei den Bytes 02 42 40 00 51 fälschlicherweise einen Treffer landen. Ich würde daher lieber die Leerzeichen zwischen den Hex-Bytes drin lassen.
Da hast Du wohl recht.
Ich habe es jetzt mal ueber alle betreffenden Dateien laufen lassen (immerhin ueber 700) und die Bytefolge in jeder Datei nur einmal gefunden.
Aber das sagt ja nichts ueber zukuenftige Dateien aus...
Werde mein kleines Script nochmal abaendern.
Danke fuer den Hinweis!

Gruss heinz

Antworten