Suche und Ersatz im Programm CI Hex Viewer
Wie bei der Arbeit mit jedem anderen Editor ist die Funktion für Suche und Ersatz bei der Arbeit mit dem hexadezimalen Editor genauso wichtig: In einer riesigen Menge von hexadezimalen Ziffern muss man sich leicht zurechtfinden können. Zu diesem Zweck stellt CI Hex Viewer mehrere Suchmöglichkeiten zur Verfügung. In diesem Artikel wird es auf Beispiele erklärt, wie man Vorteile und Möglichkeiten des Such- und Ersatz-Tools nutzen kann. |
Das Programm bietet drei mögliche Suchvarianten an: Suche von textuellen Werten im Text-Bereich, Suche von hexadezimalen Werten im hexadezimalen Bereich und erweiterte Suche von hexadezimalen Werten im hexadezimalen Bereich.
Zur Aktivierung des Tools zur Datensuche drücken wir den Knopf Daten finden aus dem Toolbar zur Datenansicht.
Textuelle Suche dient dem Ziel einer schnellen Suche nach Werten im textuellen Datenbereich. In diesem Artikel wird ein Beispiel einer beschädigten .pdf-Datei angeführt. Die Aufgabe ist, alle möglichen darin enthaltenden Objekte zu ziehen. Da die Objekte nach ihren Namen gesucht werden, so passt die textuelle Suche dieser Aufgabe am besten.
Bei Bestimmung der Parameter wählen wir Text im Feld Suchen als. Dann geben wir den Namen des nötigen Objektes ins Feld Suchen nach ein und optieren die Richtung Nach unten aus der Drop-Down-Liste zur Suchrichtung.
Zu einer gleichzeitigen Suche mehrerer Objekten mit demselben Namen markieren wir das Kontrollkästchen Positionen aufzählen. Zur Angabe maximaler Anzahl von Positionen zum Suchergebnis benutzen wir das Kontrollkästchen maximale Positionen.
Für eine richtige Erkennung des gesuchten Textwertes soll die Textkodierung als Suchparameter bestimmt werden. In unserem Fall geht es um UTF-8 Unicode.
Und endlich zur Verfeinerung der Textsuche markieren wir auch das Kontrollkästchen Groß-/Kleinschreibung abhängig.
Alle Positionen mit gefundenen Muster werden in die Liste markierter Positionen hinzugefügt. Mit dem Knopf Speichern kann man die Suchergebnisse für spätere Verwendung ablegen.
Mit dem Knopf Übergehen öffnen wir die Position mit dem gefundenen Suchwert.
Durch die einfache hexadezimale Suche werden hexadezimale Datenwerte im hexadezimalen Bereich gesucht. Als Beispiel nehmen wir eine .bmp-Datei, wo die Werte hexadezimaler Felder mit dem Zweck der Untersuchung der Datenintegrität überprüft werden. Laut der Struktur der .bmp-Datei soll beispielsweise das Feld auf Position 0x08 den Wert 00 enthalten.
Zur Suche im einfachen hexadezimalen Modus wählen wir Hex-Werte aus der Drop-Down-Liste Suchen als. Im Feld Suchen nach geben wir den zu suchenden Wert 00 ein. Mit der Cursorstelle am Anfang der Datei wird die Suchrichtung Nach unten gewählt. Zur Suche auf der bestimmten Position wird das entsprechende Kontrollkästchen aktiviert, wo wir Position 8 unter der Blockgröße von 512 Bytes angeben.
Bei Suche von Werten auf einer fixierten Position wird die Suche auf der angegebenen Position in jedem Block gesetzter Größe durchgeführt. Wenn der nötige Wert in einem Block nicht gefunden wird, so übergeht das Programm auf die gegebene Position im nächsten Block.
Zu einer gleichzeitigen Suche gegebener Werte auf mehreren Positionen muss man das Kontrollkästchen Positionen aufzählen aktivieren und die Anzahl von Positionen zur Suche bestimmen.
Die Suche Ergibt den Wert, den über Intaktheit von Daten in diesem Feld spricht.
Bei einer erweiterten hexadezimalen Suche wird das Suchmuster durch eine spezielle Syntax präzisiert, was die Daten schneller und genauer finden lässt. Zum Aktivieren der erweiterten Suche wählen wir Erweiterte Hex-Suche aus der Drop-Down-Liste Suchen als. Das Suchmuster wird durch die folgenden Symbole gebildet:
? – bezeichnet irgendwelche 4 Bits der hexadezimalen Zahl, z. B. 0?11 bedeutet irgendwelche Zahl von 0011, 0111 .. 0F11. Mit dem „?“-Zeichen kann man hexadezimale Werte suchen, wenn nicht alle hexadezimale Ziffer im Suchmuster bekannt sind. Beispielsweise geben wir ein Suchmuster ?6 6F ?E 74 an.
Die Suche ergibt die Kombination von hexadezimalen Ziffern, die den gesuchten Daten entspricht.
*N* - irgendwelcher Wert für N Bytes; z.B. *12* bedeutet irgendwelche 12 Bytes. Die *_*-Begrenzung lässt die hexadezimale Werte nach dem Start und Ende des Suchmusters suchen, verlassend die Mitte des Musters mit der Anzahl angegebener Bytes. Beispielsweise ist „46“ Namenstart, „65“ – Namenende und *6* - die Anzahl von im Muster zu auslassenden Bytes.
Die Suche ergibt die nötige Kombination, die den gesuchten Daten entspricht.
!N! - nicht gleicht dem Byte-Wert (1-2 Ziffer bitte angeben, z.B. !0! oder !FF!). Die !_! -Begrenzung lässt unnötige hexadezimale Werte aus der Suche auslassen (z. B. bei leeren Festplattenbereichen). Mit dem Cursor an irgendeiner Position des Null-Bereiches am Ende der Festplatte stellen wir !00! bzw. !0! im Suchdialog ein.
Die Suche ergibt den ersten Wert ungleich Null im Festplattenbereich.
{B1,B2...} – Aufzählung der gültigen Bytes, z.B. {00,?1,1f} bedeutet 0, irgendwelcher Wert von 01 bis F1, 1F. Diese Funktion lässt mehrere Werte zur Datensuche eingeben. Nach unserem Beispiel kann das Wort „Font“ nach dem groß- oder kleingeschriebenen ersten Buchstabe gesucht werden. Dazu geben wir die entsprechenden hexadezimalen Werte zur Suche ein.
Die Suche ergibt alle getroffenen Fälle des Buchstabens „F“, mit dem hexadezimalen Wert 46 – großgeschrieben
und 66 – kleingeschrieben.
{??, !B2!...} – spezieller Fall von „Außer“-Aufzählung (Byte fällt mit dem Ersten, aber nicht mit dem Zweiten zusammen…). Diese Funktion lässt ein Suchmuster eingeben, wo alle nötigen Werte aufgezählt und alle unnötigen ausgelassen werden. In unserem Beispiel werden alle kleingeschriebenen F-Buchstaben durch Eingabe von {46,!66!} ausgelassen.
Die Suche ergibt alle getroffenen großgeschriebenen F-Buchstaben.
's' - bestimmt ASCII-Zeile ('str' bedeutet 73 74 72). Diese Funktion ermöglicht Suche von textuellen Werten in einer 1-Byte ASCII-Codierung. In unserem Fall geben wir 'Font' ein.
Als Ergebnis bekommen wir den entsprechenden textuellen Wert „Font“, der durch die 1-Byte ASCII codiert wurde.
“s” – bestimmt Unicode-Zeile (“str” 73 00 74 00 72 00). Diese Funktion lässt textuelle Werte in 2-Byte Unicode-Codierung finden. Beispielsweise geben wir den Wert “With” ein.
Als Ergebnis bekommen wir den in 2-Byte codierten textuellen Wert „W.i.t.h.“ mit dem entsprechenden hexadezimalen Wert „57 00 69 00 74 00 68 00“.
`s` - bestimmt UTF-8-Zeile (dasselbe wie ASCII, aber kodiert „lokalisierte“ Symbole ins UTF-8. Diese Funktion lässt Mehr-Byte-Werte und Worte mit einer gemischten Codierung bzw. in einer lokalen Computersprache suchen. Beispielsweise, im Falle einer Datei mit der cyrillischen Schrift geben wir zur Suche `текстовий` ein.
Als Ergebnis wird der Cursor am Anfang des gesuchten Wortes gestellt.
„+”- und „-„-Zeichen bestimmen, ob die Suche von Groß-/Kleinschreibung abhängig ist. Nach unserem Beispiel werden mit +’Font’ ausschließlich großgeschriebene Worte gesucht, während -’Font’ auch kleingeschriebene Varianten umfasst.
Als Ergebnis mit der `+`-Suche bekommen wir nur großgeschriebene Werte.
Suche mit +‘font‘ ergab keine Treffer.
Das Tool zur Suche und Ersatz von Daten wird im Editiermodus durch den Knopf Finden und Ersetzen aktiviert.
Die Einstellung der Suchfunktion im Ersatz-Tool funktioniert geradeso wie im Anzeigemodus. Zum Ersatz von den zu suchenden Werten wird das Feld Ersetzen durch Bytes benutzt. Beispielsweise werden die Werte stream in .pdf-Datei durch marker ersetzt. Dazu wird das zu ersetzendes Wort ins Feld Suchen nach und die nötigen Bytes zum Ersatz ins Feld Ersetzen durch Bytes eingegeben. Dabei kann die Funktion zum Ersatz aller Treffer im entsprechenden Kästchen aktiviert werden.
Beim Finden eines Musters werden drei Varianten zum Handeln des Ergebnisses vorgeschlagen: das Vorkommen ersetzen, das Vorkommen überspringen und die Suche Stoppen.
Die Suche mit dem gleichzeitigen Ersatz ergibt ein sofortiges Wechseln von angegebenen Werten.
Fazit:
Anhand von der oben angeführten Beispiele wurde es erklärt, welche Suchvarianten es im Programm gibt, und wie man die Suchparameter zum besten Ergebnis einstellen kann. Im Editiermodus sind die Such- und Ersatz-Tool in einem Tool vereinigt, damit die nötigen Werte leicht gesucht und sofort ersetzt werden.