ฉันมีไบนารีที่ปฏิบัติการได้; 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 ไบต์นี่จะไม่ทำให้ไบนารีเสียหายหรือไม่