Ho un file binario eseguibile; chiamiamolo a.out
. Vedo che il binario contiene stringhe
$ strings a.out
...
/usr/share/foo
....
Devo cambiare la stringa /usr/share/foo
in /usr/share/bar
. Posso semplicemente sostituire la stringa con sed
?:
sed -i 's@/usr/share/foo@/usr/share/bar@' a.out
Sembra una cosa sicura da fare. Funzionerà anche quando le stringhe non hanno la stessa lunghezza?
sed -i 's@longstring@foo@' a.out
? Questo renderà l'intero binario più piccolo di 7 byte, non corromperà il binario?