Descompilador de Java

Rashmi Patidar 30 junio 2021
Descompilador de Java

El decompilador es una utilidad que ayuda a analizar y descompilar los códigos de bytes de Java y producir código fuente a partir de ellos. La descompilación es el proceso inverso exacto del proceso de compilación. El proceso es beneficioso cuando no hay una fuente disponible, y podemos depurar el código fuente después de descompilar el código de bytes y analizar su comportamiento.

Dado que el desarrollo se realiza mediante el entorno de desarrollo integrado (IDE) y, por lo tanto, es beneficioso tener un descompilador en el propio IDE. Busque el descompilador de cadenas en el mercado de IDE disponibles gratuitamente, por ejemplo, Eclipse o Intellij.

Para IDE que es Intellij, podemos descargar el complemento del mercado. Una vez que el complemento se coloca en el lugar adecuado, podemos ubicar el descompilador en la barra lateral izquierda debajo del complemento maven. A continuación se muestra la captura de pantalla adjunta para una mejor comprensión.

Complemento Decompiler en Intellij

El código del descompilador se convierte automáticamente al código fuente y podemos ubicarlo en la carpeta de destino. A continuación se muestra la captura de pantalla adjunta para su comprensión.

Código fuente después de la descompilación en la carpeta de destino

Otras herramientas disponibles para convertir códigos de bytes en códigos fuente son las siguientes.

Java Decompiler es un servicio web en línea junto con una aplicación real. Podemos descompilar cualquier código de Java 5 y versiones superiores usando la utilidad. El servicio proporciona varias opciones bajo las cuales podemos seleccionar el descompilador de nuestra elección de la lista. Debajo de esto, tenemos JD-GUI que es una utilidad gráfica y ayuda a convertir los archivos.class para obtener el código fuente Java del mismo. JD-Eclipse es un complemento IDE de eclipse que permite la descompilación de un archivo de clase en el propio IDE. JD-Core es otra utilidad de código abierto que recrea el código fuente a partir del código de bytes.

Otra utilidad es Procyon que se centra principalmente en la generación y análisis de código. Es una utilidad de código abierto y está dada por la licencia Apache 2. Consta de bibliotecas como el marco central, el marco de expresiones, el marco de reflexión, el conjunto de herramientas del compilador y un descompilador. Tiene su utilidad que facilita el proceso de generación de código a partir del código de bytes.

Para obtener más detalles, visite el enlace de GitHub: https://github.com/mstrobel/procyon

El Krakatau es una herramienta más de código abierto para ensamblar y desensamblar el código de bytes de Java. La herramienta permite a los usuarios transformar código binario en formato de texto. Incluso permite a los usuarios reconvertir el código fuente al código de bytes nuevamente. La utilidad es puramente un script Python, que se ejecuta cuando ejecutamos el comando.

Más detalles están en el enlace de GitHub - https://github.com/Storyyeller/Krakatau

CFR es otro descompilador de Java que permite descompilar el código de bytes de Java hasta la versión 14. El código del descompilador está escrito puramente en Java 6 y es fácil de ejecutar. Podemos ejecutarlo a través de un comando que ejecuta el jar y toma un parámetro aquí, el nombre de la clase que se descompila.

Más detalles se encuentran en el enlace- https://github.com/leibnitz27/cfr

Fernflower es otra utilidad disponible que aún está en desarrollo. La utilidad viene dada por la licencia Apache 2. El comando de ejecución es tan simple como ejecutar un jar junto con los parámetros.

Para más detalles visite- https://github.com/fesh0r/fernflower

El DJ Java Decompiler es una de las herramientas de utilidad que son compatibles con Windows y sus versiones posteriores. La utilidad es lo suficientemente potente como para descompilar correctamente el código del subprograma Java a partir del código de bytes dado. Es una aplicación de Windows independiente con una interfaz gráfica de usuario bien definida.

Para más detalles 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