Pergunta

Alguém acabou de me enviar um descompilar de um programa em C. Foi uma muito boa descompilar, produzindo agradável, principalmente readabe C código (se você ignorar o fato de que nenhuma das variáveis ??ou funções tinha um nome legível) que principalmente parecia que seria realmente compilar.

Não foi um grande problema, no entanto. Acontece que eu sei que o programa foi Decompiling foi escrito em Delphi, que está cheio de conceitos que são difíceis de traduzir em C. Mas eu estava realmente impressionado com a saída do decompiler, e isso me fez pensar. Existe alguma coisa que pode fazer isso para Delphi?

A melhor ferramenta decompiling eu vi para Delphi é DeDe. Ele pode fazer um monte de coisas, mas ele mesmo não tentar produzir código Object Pascal como sua saída, e não foi atualizado desde Delphi 6. Existe alguma coisa melhor lá fora?

Foi útil?

Solução

Eu não acho que há qualquer decompilers código de máquina que produzem código Pascal. A maioria dos "Delphi decompilers" forma de análise e os dados RTTI, mas na verdade não descompilar o código de máquina. Só posso recomendar usando algo como DeDe (ou semelhante software ) para extrair símbolo de informação em combinação com um decompiler C, em seguida, traduzir o código C compilado com Delphi (há muitos conversores de código fonte lá fora).

Outras dicas

Você pode usar IDR é um grande programa para descompilar delphi, é atualização para o atual versões Delphi e ele tem um monte de recursos.

Aqui está uma lista: http://delphi.about.com/od/ devutilities / a / decompiling_3.htm (e esta página menciona alguns mais: http: // www.program-transformation.org/Transform/DelphiDecompilers )

Eu usei DeDe na ocasião, mas não é realmente tudo o que poderoso, e não é up-to-date com as versões Delphi atuais (última versão suporta é Delphi 7 eu acredito)

Linguagens como Delphi, C e C ++ compila para código de máquina do processador nativo, e os executáveis ??de saída têm pouco ou nenhum metadados neles. Isto está em contraste com Java ou, que a compilar código de bytes orientada a objectos independente da plataforma, que mantém os nomes dos métodos, os parâmetros do método, classes e espaços de nomes, e outros metadados.

Portanto, há muito menos decompiling útil que pode ser feito em código Delphi ou C. No entanto, Delphi normalmente tem incorporado os dados do formulário para qualquer forma no projeto (gerado pelo $ R * A linha .dfm), e também tem metadados em todas as propriedades publicadas, por isso uma ferramenta específica de Delphi seria capaz de extrair essas informações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top