ฉันมีไบนารีที่ปฏิบัติการได้; a.out
ขอเรียกว่า ฉันสามารถดูไบนารีมีสตริง
$ strings a.out
...
/usr/share/foo
....
ฉันจำเป็นต้องเปลี่ยนสายไป/usr/share/foo
/usr/share/bar
ฉันสามารถแทนที่สตริงด้วยsed
หรือไม่:
sed -i 's@/usr/share/foo@/usr/share/bar@' a.out
นี่เป็นสิ่งที่ควรทำ สิ่งนี้จะใช้งานได้เมื่อสายไม่ยาวเท่ากันหรือไม่
sed -i 's@longstring@foo@' a.out
? นี่จะทำให้ไบนารีทั้งหมดเล็กลง 7 ไบต์นี่จะไม่ทำให้ไบนารีเสียหายหรือไม่