Ich möchte an dieser Stelle eine nützliche Kleinigkeit festhalten, nämlich eine einfache Methode, um ein paar Bytes in einer Datei oder auf einer Disk zu patchen (insbesondere in letzterem Fall sollte man natürlich wissen, was man tut).
Dazu verwende ich
dcfldd, eine nützliche Variante von dd, die in fast allen Linux-Distrubutionen verfügbar ist, und (unabhängig vom hier beschriebenen Einsatz) gegenüber dd den wesentlichen Vorteil einer Fortschrittsanzeige hat (ja, ich weiss, mit diversen Verrenkungen kann man auch mit dd eine Fortschrittsanzeige hinbekommen, bei dcfldd ist sie aber direkt implementiert).
Mit dcfldd patchen geht so:
dcfldd conv=notrunc of=test.bin pattern=55aaff ibs=3 count=1 obs=1 seek=28
Bei of=... wird die Datei angegeben, die gepacht werden soll (bzw. per /dev/... eine Disk o.ä.). Bei pattern=... wird die hexadezimale Bytefolge angegeben, die in die Datei geschrieben werden soll. Bei ibs=... wird die Länge dieser Bytefolge angegeben. Bei count=... wird normalerweise 1 angegeben (ansonsten wird die Bytefolge entsprechend oft wiederholt). Bei obs=... wird immer 1 angegeben. Bei seek=... wird die Position (dezimal) angegeben, an der die Bytefolge in die Datei geschrieben werden soll.
Ein wichtiges (leider in der dcfldd-Doku nicht erwähntes) Detail ist, dass die Angabe conv=notrunc (die dafür sorgt, dass die Datei an der gepatchten Stelle nicht abgeschnitten wird) zwingend
vor der Angabe von of=... stehen muss.