Cracking di applicazioni Java crittografate tramite jhsdb (debugger hotspot)
Una soluzione per la protezione del codice Java è la crittografia dei file di classe o dei file jar. Questo tipo di soluzione carica il file di classe o il file jar crittografato tramite un loader autodefinito, che è inutile a causa dell'esistenza del meccanismo Attach della JVM e può essere facilmente violato con gli strumenti forniti con il JDK.
Esempio di domanda
Di seguito è riportato un esempio di applicazione con una semplice finestra oscillante e un pulsante. https://github.com/3-keys/test-swing-app

Crittografa applicazione
Esportare un file jar eseguibile con Eclipse e utilizzare uno strumento di crittografia per crittografare il file jar. Dopo la crittografia, la struttura del file jar è la seguente:

test-swing-app.jar sono i dati del file jar crittografati, le classi Launcher sono le classi di caricamento personalizzate di questo strumento e il pacchetto jar crittografato viene ancora eseguito tramite il comando java -jar standard
Decifrare l'applicazione crittografata
Per prima cosa, esegui il file jar crittografato, quindi trova la directory bin di JDK e dovresti essere in grado di trovare un file jshdb.

Eseguire jhsdb hsdb, aprire HotSpot Debugger, se è su Windows, potrebbe essere necessario eseguirlo come amministratore, fare clic su File per selezionare Collega al processo HotSpot…,

Utilizzare il comando ps aux | grep java su Linux e trovare il pid del processo tramite Task Manager su Windows. Inserire il pid del processo nella finestra di dialogo sottostante.

Dopo averlo collegato correttamente, fare clic su Strumenti->Browser di classe

Il browser delle classi contiene informazioni su tutte le classi caricate, cerca com.example e potresti vedere tutte le classi sotto com.example

Fare clic su com.example.TestWindow @0x0000…. e quindi fare clic su "Crea file .class"

cd nella directory in cui è stato eseguito in precedenza il comando jhsdb, puoi vedere il file di classe generato

Utilizzo Luyten O jadx per aprire il file di classe e puoi vedere il codice decompilato
