Bytefolge mit Perl ersetzen

Die Funktionen, die Perl für das Suchen und Ersetzen innerhalb von Strings bereitstellt, lassen sich auch hervorragend dazu verwenden, Bytefolgen innerhalb von Binärdaten zu bearbeiten.

Mittels der pack-Funktion wird die zu suchende Bytefolge in einer Variable gespeichert

$source = pack("C*", 0x00, 0x40, 0x06, 0x00, 0x00, 0xB0, 0x04, 0x00);

Deren Position innerhalb der zu durchsuchenden Daten kann durch die Funktion index ermittelt

$pos = index($data, $source);

und ggf. auch mit einer Ziel-Bytefolge mit Hilfe der Funktion subst ersetzt werden

substr($data, $pos, length($dest), $dest);

Kommentar schreiben