Tenho um programa em que perdi o código-fonte C ++. Existem bons descompiladores C ++ por aí?
Já encontrei o Boomerang .
c++
reverse-engineering
decompiling
Bryan Denny
fonte
fonte
objdump
para LinuxRespostas:
Você pode usar o IDA Pro da Hex-Rays . Normalmente, você não obterá um bom C ++ de um binário a menos que tenha compilado as informações de depuração. Prepare-se para gastar muito trabalho manual revertendo o código.
Se você não removeu os binários, há alguma esperança, pois o IDA Pro pode produzir código semelhante ao C para você trabalhar. Normalmente é muito áspero, pelo menos quando o usei há alguns anos.
fonte
as informações são descartadas no processo de compilação. Mesmo se um descompilador pudesse produzir o código lógico equivalente com classes e tudo (provavelmente não pode), a parte de autodocumentação se foi no código de lançamento otimizado. Sem nomes de variáveis, sem nomes de rotina, sem nomes de classe - apenas endereços.
fonte
Sim, mas nenhum deles conseguirá produzir código legível o suficiente para valer o esforço. Você passará mais tempo tentando ler o código-fonte descompilado com blocos assembler dentro do que reescrevendo seu aplicativo antigo do zero.
fonte
Não vi nenhum descompilador que gerasse código C ++. Eu vi alguns experimentais que fazem uma tentativa razoável de gerar código C, mas eles tendem a depender da correspondência dos padrões de geração de código de um compilador específico (isso pode ter mudado, já faz algum tempo desde a última vez que olhei para isso ) É claro que qualquer informação simbólica desaparecerá. Google para "descompilador".
fonte
Dependendo do tamanho e da qualidade do código original, pode valer a pena começar novamente em sua linguagem favorita (que ainda pode ser C ++) e aprender com os erros cometidos na última versão. Alguém uma vez não disse sobre escrever um para jogar fora?
Nota: Obviamente, se este for um produto enorme, pode não valer a pena.
fonte