Mit grep nach Hex-Strings in einer Datei suchen

Habe ich versucht den ganzen Tag, um diese zu arbeiten.
Weiß jemand, wie man grep oder so etwas ähnliches, to retrieve offsets des hex-strings in einer Datei?

Ich habe ein paar hexdumps, die ich brauche, um zu überprüfen, für Streicher und führen Sie dann erneut und überprüfen Sie, ob der Wert geändert hat.

Habe ich versucht hexdump und dd, aber das problem ist, weil es ein stream ist, ich verliere mein offset für die Dateien.

Jemand hat dieses problem hatte und eine Lösung. Was kann ich tun?

Zu verdeutlichen, habe ich eine Reihe von gedumpten Speicherbereiche, die vom GDB.

Ich versuche, einzugrenzen, eine Anzahl von Suche von all den Orten, die Nummer ist gespeichert, dann tun Sie es erneut und prüfen, ob der neue Wert ist gespeichert, die an der gleichen Speicherstelle.

Ich Schaffe es nicht, grep, etwas zu tun, weil ich bin auf der Suche nach hex-Werten, also alle Zeiten, die ich habe versucht (wie ein bazillion, in etwa) wird es nicht geben, mir die richtige Ausgabe.

Den hex-dumps werden nur vollständige binäre Dateien, die paterns sind innerhalb der float-Werte in larges, so 8? bytes?

Die Muster sind nicht umbrechen der Zeilen, die ich mir bewusst bin. Ich bin mir bewusst, was es ändert, und ich kann das gleiche tun Prozess und vergleichen Sie die Listen, um zu sehen, die übereinstimmen.
Die hex-dumps der Regel am Ende (insgesamt) 100 MB-ish.

Perl KÖNNTE eine option, aber an diesem Punkt, würde ich davon ausgehen, meine mangelnden Kenntnisse mit bash und seinen tools ist der Hauptschuldige.

Sein ein wenig schwer zu erklären, die Ausgabe, die ich erhalte, da ich wirklich bekomme keine Ausgabe..

Ich bin Antizipation (und erwarten) etwas entlang der Linien von:

<offset>:<searched value>

Denen ist das wohl ziemlich standard-Ausgabe würde ich normalerweise mit grep -URbFo <searchterm> . > <output>

Problem ist, wenn ich versuche, Suche für hex-Werte, bekomme ich das problem, wenn nur nicht die Suche nach den hex-Werten, also wenn ich Suche für 00 ich sollte wie eine million Treffer, denn das ist immer die blankspace, aber anstatt Ihre Suche nach 00 als text, also in hex, 3030.
Jede Idee ist?

KANN ich erzwingen, dass es durch hexdump oder so etwas in der link aber da sein ein stream wird es nicht geben mir die offsets und mit dem Namen, dass es eine übereinstimmung gefunden.

Mit grep -b option scheint nicht zu funktionieren, ich habe versucht, all die Fahnen, schien es sinnvoll, für meine situation, und nichts ging mehr.

Mit xxd -u /usr/bin/xxd als ein Beispiel, bekomme ich eine Ausgabe, die nützlich sein würde, aber ich kann nicht verwenden, die für die Suche..

0004760: 73CC 6446 161E 266A 3140 5E79 4D37 FDC6  s.dF..&j1@^yM7..
0004770: BF04 0E34 A44E 5BE7 229F 9EEF 5F4F DFFA  ...4.N[."..._O..
0004780: FADE 0C01 0000 000C 0000 0000 0000 0000  ................

Schöne Ausgabe, genau das, was ich wana sehen, aber es ist nur doesnt Arbeit für mich in dieser situation..

Dies ist einige der Dinge, die ich habe versucht da dieses posting:

xxd -u /usr/bin/xxd | grep 'DF'
00017b0: 4010 8D05 0DFF FF0A 0300 53E3 0610 A003  @.........S.....

root# grep -ibH "df" /usr/bin/xxd
Binary file /usr/bin/xxd matches
xxd -u /usr/bin/xxd | grep -H 'DF'
(standard input):00017b0: 4010 8D05 0DFF FF0A 0300 53E3 0610 A003  @.........S.....

InformationsquelleAutor der Frage user650649 | 2011-06-12

Schreibe einen Kommentar