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.
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.
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 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