Eu não sei se sua versão de sed
será binária limpa ou se vai se engasgar com o que ela acha que são realmente linhas longas em sua entrada, mas, salvo esses problemas, editar a string in-place deve funcionar. Para ver se isso acontece, compare as versões antiga e nova com cmp -l
. Ele deve informar se as três únicas diferenças entre os dois arquivos são aqueles 3 bytes.
Editar strings em um executável compilado realmente funcionará se as strings forem do mesmo tamanho, mas quase sempre também funcionará se você estiver encurtando a string, devido à maneira como as strings trabalham em C. Em strings C, tudo depois que o NUL
terminator não conta, então se você escrever um novo NUL
terminator antes da posição do antigo, você efetivamente encurtará a string.
Em geral, não há como alongar uma string usando esse hack.