HOWTO · Java

Java Decompiler

Este artigo apresenta como trabalhar com o descompilador Java

Nesta página

O decompiler é um utilitário que ajuda a analisar e descompilar os byte codes Java e a produzir código-fonte a partir deles. Decompilar é o processo inverso exato do processo de compilação. O processo é benéfico quando nenhuma fonte está disponível e podemos depurar o código-fonte usando depois de descompilar o código de bytes e analisar seu comportamento.

Uma vez que o desenvolvimento é feito usando Integrated Development Environment (IDE) e, portanto, é benéfico ter um descompilador no próprio IDE. Pesquise o descompilador de strings no mercado de IDE disponíveis gratuitamente, digamos Eclipse ou Intellij.

Para IDE que é Intellij, podemos baixar o plugin do marketplace. Uma vez que o plugin esteja em um lugar apropriado, podemos localizar o descompilador na barra lateral esquerda abaixo do plugin maven. Abaixo está a captura de tela em anexo para melhor compreensão.

Plug-in do descompilador no Intellij

O código do descompilador é convertido automaticamente para o código-fonte e podemos localizá-lo na pasta de destino. Abaixo está a captura de tela anexada para compreensão.

Código-fonte após descompilação na pasta de destino

Outras ferramentas disponíveis para converter o código de byte em códigos-fonte são as seguintes.

Java Decompiler é um serviço da web online junto com um aplicativo real. Podemos descompilar qualquer código Java 5 e de versão superior usando o utilitário. O serviço oferece várias opções nas quais podemos selecionar o descompilador de nossa escolha na lista. Sob isso, temos JD-GUI que é um utilitário gráfico e ajuda a converter os arquivos.class para obter o código-fonte Java dos mesmos. JD-Eclipse é um plugin do Eclipse IDE que permite a descompilação de um arquivo de classe no próprio IDE. JD-Core é outro utilitário de código aberto que recria o código-fonte a partir do código de bytes.

Outro utilitário é o Procyon que se concentra principalmente na geração e análise de código. É um utilitário de código aberto fornecido pela Licença Apache 2. Consiste em bibliotecas como framework central, framework de expressões, framework de reflexão, conjunto de ferramentas de compilador e um Decompiler. Tem sua utilidade que facilita o processo de geração de código a partir do byte code.

Para mais detalhes, visite o link GitHub - https://github.com/mstrobel/procyon

O Krakatau é mais uma ferramenta de código aberto para montar e desmontar o código de bytes java. A ferramenta permite aos usuários transformar o código binário em formato de texto. Ele ainda permite que os usuários reconvertam o código-fonte para o código de bytes novamente. O utilitário é puramente um script Python, que é executado quando executamos o comando.

Mais detalhes estão no link GitHub - https://github.com/Storyyeller/Krakatau

CFR é outro descompilador Java que permite descompilar o código de bytes do Java até a versão 14. O código do descompilador é escrito puramente em Java 6 e é fácil de executar. Podemos executá-lo por meio de um comando que executa o jar e recebe um parâmetro aqui, o nome da classe que deve ser descompilado.

Mais detalhes estão no link- https://github.com/leibnitz27/cfr

Fernflower é mais um utilitário disponível que ainda está em desenvolvimento. O utilitário é fornecido pela Licença Apache 2. O comando de execução é tão simples quanto rodar um jar junto com parâmetros.

Para mais detalhes visite- https://github.com/fesh0r/fernflower

O DJ Java Decompiler é uma das ferramentas utilitárias compatíveis com o Windows e suas versões posteriores. O utilitário é poderoso o suficiente para descompilar corretamente o código do miniaplicativo Java do código de byte fornecido. É um aplicativo independente do Windows com uma interface gráfica de usuário bem definida.

Para mais detalhes visite- http://www.neshkov.com/