Java Decompiler

Rashmi Patidar 30 junho 2021
Java Decompiler

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/

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn