Ich habe eine ausführbare Binärdatei. Nennen wir es a.out
. Ich kann sehen, dass die Binärdatei Zeichenfolgen enthält
$ strings a.out
...
/usr/share/foo
....
Ich muss die Zeichenfolge /usr/share/foo
in ändern /usr/share/bar
. Kann ich den String einfach ersetzen durch sed
:
sed -i 's@/usr/share/foo@/usr/share/bar@' a.out
Dies scheint eine sichere Sache zu sein. Funktioniert das auch, wenn die Saiten nicht gleich lang sind?
sed -i 's@longstring@foo@' a.out
? Dadurch wird die gesamte Binärdatei um 7 Byte verkleinert. Wird die Binärdatei dadurch nicht beschädigt?