Ingeniería inversa con java

Por Soloelectronicos @soloelectronico

Si alguna vez ha tenido un proyecto java compilado en forma de fichero .class o .jar y necesita conocer como esta construido el código para hacer ingeniería inversa o simplemente para investigar su funcionamiento la herramienta que vamos a ver lo hacer de marabilla y además es gartuita

En efecto el " proyecto Java Decompiler " tiene como objetivo desarrollar herramientas para descompilar y analizar el "código de bytes" de Java 5 y las versiones posteriores siendo JD-GUI la utilidad gráfica independiente que muestra los códigos fuente de Java de los archivos ".class".

Con esta herramienta puede explorar el código fuente reconstruido con la GUI de JD para obtener acceso instantáneo a los métodos y campos Incluso puede integrarse con el IDE de Eclipse gracias a JD-Eclipse, que es un complemento para la plataforma Eclipse.

La herramienta le permite mostrar todas las fuentes Java durante su proceso de depuración, incluso si no las tiene todas. JD-Core es una biblioteca que reconstruye el código fuente de Java de uno o más archivos ".class". JD-Core se puede usar para recuperar el código fuente perdido y explorar la fuente de las bibliotecas de tiempo de ejecución de Java.

Se admiten las nuevas características de Java 5, como anotaciones, genéricos o tipo "enum". JD-GUI y JD-Eclipse incluyen la biblioteca JD-Core. JD-Core, JD-GUI y JD-Eclipse son proyectos de código abierto publicados bajo la licencia GPLv3.

Veamos un poco algo sobre la historia de esta interesante herramienta:

  • En 2011, Alex Kosinsky inició una variante de JD-Eclipse que admite la alineación del código descompilado por los números de línea de los originales, que a menudo se incluyen en el Bytecode original como información de depuración.
  • En 2012, una rama de JDEclipse-Realign de Martin "Mchr3k" Robertson extendió la funcionalidad mediante el control de descompilación manual y el soporte para Eclipse 4.2 (Juno).
  • Y llegamos a la actualidad D (Java Decompiler) , es un decompilador para el lenguaje de programación Java.Se proporciona como una herramienta GUI, así como en forma de complementos para los entornos de desarrollo integrado Eclipse (JD-Eclipse) e IntelliJ IDEA (JD-IntelliJ).Es compatible con la mayoría de las versiones de Java desde 1.1.8 hasta 1.7.0, así como JRockit 90_150, Jikes 1.2.2, Eclipse Java Compiler y Apache Harmony y, por lo tanto, a menudo se utiliza donde anteriormente se operaba el popular JAD

Instalación

Se puede descargar directamente desde su pagina de Github

La versión ultima disponibles es la 1.5.2

Esta versión incluye los siguientes cambios:

  • Actualizando JD-Core a 1.0.3
  • Adición de soporte de archivos AAR (archivo de Android)
  • Adición de soporte de archivos JMOD (módulo Java 9)

Este es el enlace para descargar el jd-gui-windows-1.5.2.zip que es la versión que funciona sobre windows

Descomprimimos el ficherpo zip ( https://github.com/java-decompiler/jd-gui/releases/download/v1.5.2/jd-gui-windows-1.5.2.zip)

Finamente lanzaremos la aplicación jd-gui.exe

JD-GUI es una utilidad gráfica independiente que muestra los códigos fuente de Java de los archivos ".class" y tambien ".jar" . Puede explorar el código fuente reconstruido con la GUI de JD para obtener acceso instantáneo a los métodos y campos.

Existe JD-Eclipse es un complemento para la plataforma Eclipse. Le permite mostrar todas las fuentes Java durante su proceso de depuración, incluso si no las tiene todas.

JD-GUI es una utilidad gráfica independiente que muestra los códigos fuente de Java de los archivos ".class". Puede explorar el código fuente reconstruido con la GUI de JD para obtener acceso instantáneo a los métodos y campos.

Mas información en su sitio http://java-decompiler.github.io/