Como reverter a tira do objcopy com apenas-guardar-de-débug?
Pergunta
No Linux moderno, quase todos os objetos são despojados e divididos em duas partes (dois arquivos). O primeiro é executável e o segundo é os símbolos de depuração, retirados do elfo original. Esses arquivos são criados com
objcopy --only-keep-debug original.elf binary.dbg
mv original.elf binary
objcopy --strip-debug binary
Como posso mesclar binary
e binary.dbg
no arquivo ELF com informações de depuração? Quero recriar o binário original e não prejudicado. Não pode ser o byte a byte igual ao original, mas deve ter um símbolo de depuração dentro.
PS Sim, eu sei sobre gnu.debuglink
Seção, mas não funciona para alguns depuradores (Etnus) e desmontistas (o Objdump não pode restaurar informações de símbolos)
Solução
Para elfo, o elfutils
o pacote contém uma ferramenta chamada eu-unstrip
Isso faz o trabalho. No contexto do seu exemplo:
eu-unstrip binary binary.dbg
binary.dbg
Agora tem os símbolos binários e de depuração. Eu incluiria uma referência à documentação se pudesse encontrar algum ...