Un offuscatore é uno strumento in grado di ridurre le dimensione dei file class di Java. In effetti é questo il suo principale contributo oltre alla funzione di “offuscamento” che dovrebbe rendere più difficile il processo di decompilazione del bytecode per risalire ai sorgenti.
Questa operazione viene effettuata rinominando le classi e i relativi metodi in modo da creare confusione nella ricostruzione della logica del programma.
Il Wireless Toolkit di Java (WTK per semplicità) non dispone di un proprio offuscatore ma é già configurato per utilizzare il tool open source ProGuard.
Vediamo i semplici passi necessari per il suo impiego.
INSTALLAZIONE
UTILIZZO
Dopo aver installato ProGuard basta selezione dal menu di WTK la voce
Project > Package > Create Obfuscate Package
e il gioco é fatto.
N.B. Per esperienza personale ho constatato che queste semplici operazioni talvolta non funzionano (almeno con la versione 2.5.2) e viene segnalato un errore dovuto all’impossibilità di individuare il file proguard.jar. In questo caso occorre modificare il file ktools.properties che si trova in toolkit/wtklib/os dove toolkit é la cartella in cui si é installato il WTK e os la cartella con lo stesso nome del sistema operativo della macchina.
Per tornare all’esempio precedente il path completo é: c:\WTK2.5.2_01\wtklib\windows
Di seguito un esempio di file ktools.properties funzionante. In rosso sono evidenziate le righe da modificare secondo quanto riportato.
# @(#)ktools.properties 1.13 05/12/14kjava.preverifier.command: bin\\preverify.exekjava.class.path: lib\\midpapi20.jar;lib\\cldcapi10.jar file.extension: jadobfuscator.runner.class.name: proguard.wtk.ProGuardObfuscatorobfuscator.runner.classpath: bin\\proguard.jar#obfuscate.script.name: com.sun.kvem.toolbar.aboutDialog.height = 266#A flag indicating whether MIDlet-Permissions and MIDlet-Permissions-Opt#attributes will be checked in JAR file if they are missing in JAD file#com.sun.midp.installer.checkJarPermissions = true# MMAPI Java 2 SE system properties mmapi.soundPlayer:mmapi.videoPlayer: com.sun.kvem.event_ui = com.sun.kvem.midp.LocationEventGenPanel com.sun.kvem.midp.FileConnEventGenPanel comCopyright © 2009 EmmeCiLab.
All Rights Reserved.
Designed by RD Webtools.