Crackear aplicaciones Java cifradas usando jhsdb (hotspot debugger)

Una solución para la protección de código Java es el cifrado de archivos class o el cifrado de archivos jar. Este tipo de solución carga el archivo class cifrado o el archivo jar cifrado a través de un cargador autodefinido, lo cual es inútil debido a la existencia del mecanismo de Adjunción del JVM y puede crackearse fácilmente con las herramientas que vienen con el JDK.

Aplicación de Ejemplo

A continuación se muestra una aplicación de ejemplo con una ventana swing simple y un botón. https://github.com/3-keys/test-swing-app

img

Cifrar la Aplicación

Exporte un archivo jar ejecutable con Eclipse y use una herramienta de cifrado para cifrar el archivo jar. Después del cifrado, la estructura del archivo jar es la siguiente:

img

test-swing-app.jar es el dato del archivo jar cifrado, las clases Launcher son las clases de carga personalizadas de esta herramienta, y el paquete jar cifrado aún se ejecuta a través del comando estándar java -jar

Crackear la aplicación cifrada

Primero, ejecute el archivo jar cifrado, luego encuentre el directorio bin del JDK y debería poder encontrar un archivo jhsdb.

1_nsxbwNJrGJB4mpzsQv55VA

Ejecute jhsdb hsdb, abra HotSpot Debugger, si está en Windows, puede necesitar ejecutar como administrador, haga clic en File para seleccionar Attach to HotSpot process…,

img

Use el comando ps aux | grep java en el sistema Linux, y encuentre el pid del proceso a través del Administrador de Tareas en el sistema Windows. Ingrese el pid del proceso en el cuadro de diálogo a continuación.

img

Después de adjuntarlo exitosamente, haga clic en Tools->Class Browser

img

El Class Browser contiene información sobre todas las clases cargadas, busque com.example y podrá ver todas las clases bajo com.example

img

Haga clic en com.example.TestWindow @0x0000…. y luego haga clic en "Create .class File"

img

Vaya al directorio donde se ejecutó el comando jhsdb anteriormente, puede ver el archivo class generado

img

Use Luyten o jadx para abrir el archivo class y podrá ver el código decompilado

img