Existe um decompilador C ++?

Eu tenho um programa no qual eu perdi o código-fonte C ++. Há algum bom descompilador C ++ lá fora?

Eu já corri através do Boomerang .

Você pode usar o IDA Pro por Hex-Raios . Você normalmente não obterá um C ++ bom de um binário, a menos que você tenha compilado em informações de debugging. 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 difícil, pelo menos quando eu usei há alguns anos atrás.

as informações são descartadas no processo de compilation. Mesmo que um descompilador possa produzir o código lógico equivalente com classs e tudo (provavelmente não pode), a parte de autodocumentação desaparece no código de liberação otimizado. Nenhum nome de variável, nenhum nome de rotina, nenhum nome de class – apenas endereços.

Sim, mas nenhum deles conseguirá produzir código suficientemente legível para valer o esforço. Você passará mais tempo tentando ler a origem decompilada com blocos assembler, do que reescrevendo seu aplicativo antigo do zero.

Eu não vi nenhum descompilador que gere código C ++. Eu vi alguns experimentais que fazem uma tentativa razoável de gerar código C, mas eles tendem a ser dependentes da correspondência dos padrões de geração de código de um compilador em particular (isso pode ter mudado, já faz algum tempo desde a última vez que examinei esse código). ). Claro que qualquer informação simbólica desaparecerá. Google para “descompilador”.

Dependendo de quão grande e quão bem escrito foi o código original, pode valer a pena começar de novo em sua linguagem favorita (que ainda pode ser C ++) e aprender com qualquer erro cometido na última versão. Alguém não disse uma vez sobre escrever um para jogar fora?

nb Claramente, se este é um produto enorme, então pode não valer a pena o tempo.