Decrittazione delle applicazioni Java crittografate utilizzando jhsdb (debugger hotspot)
Una soluzione per la protezione del codice Java è la crittografia dei file di classe o la crittografia dei file jar. Questo tipo di soluzione carica il file di classe crittografato o il file jar tramite un caricatore autodefinito, che è inutile a causa dell'esistenza del meccanismo di collegamento della JVM e può essere facilmente violato con gli strumenti forniti con JDK.
Applicazione di esempio
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
Esporta un file jar eseguibile con Eclipse e utilizza 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 criptata
Innanzitutto, esegui il file jar crittografato, quindi trova la directory bin di JDK e dovresti riuscire a trovare un file jshdb.
Esegui jhsdb hsdb, apri HotSpot Debugger, se si trova sotto Windows, potrebbe essere necessario eseguire come amministratore, fare clic su File per selezionare Allega al processo HotSpot...
Usa ps aux | comando grep java nel sistema Linux e trova il processo pid tramite Task Manager nel sistema Windows. Inserisci il pid del processo nella finestra di dialogo sottostante.
Dopo averlo allegato con successo, fare clic su Strumenti-> Esplora classi
Il browser delle classi contiene informazioni su tutte le classi caricate, cerca com.example e potresti vedere tutte le classi in com.example
Fare clic su com.example.TestWindow @0x0000…. e quindi fare clic su "Crea file .class"
cd nella directory in cui è stato eseguito il comando jhsdb in precedenza, è possibile vedere il file di classe generato
UsaLuyten Ojadxper aprire il file di classe e puoi vedere il codice decompilato