Warning: array_merge() [function.array-merge]: Argument #1 is not an array in /home/www/web165/html/silverstrike/lib/plugins/meta/syntax.php on line 91

Wie Sie die Resistenz Ihrer Java-Software gegen Reverse-Engineering testen können

Bei der Entwicklung von kommerziellen Systemen stellt sich manchmal die Frage, ob und wie stark man sie gegen Manipulation bzw. Reverse Engineering schützen soll.

Schutzmechanismen sind manchmal sehr aufwändig, verkomplizieren den Erstellungsprozess und sind daher mit erheblichen Kosten verbunden (ich rede aus Erfahrung).

In diesem Artikel lernen Sie, wie Sie einfach und schnell herausfinden können, was ein potentieller Übeltäter über Ihr System erfahren kann, wenn er die entsprechenden JAR-Dateien desassembliert. Diese Information kann hilfreich sein, wenn Sie sich für oder gegen Schutzmassnahmen entscheiden.

Achtung: Bitte beachten Sie, dass das Desassemblieren diverser Anwendungen illegal ist (siehe dazu entsprechende Lizenzen und Endbenutzervereinbarungen). Alle hier angeführten Informationen sind ausschliesslich zum Schutze Ihrer eigenen Anwendungen gedacht, nicht zur Manipulation von Anwendungen Dritter.

Schritt 1: JODE herunterladen

Laden Sie das quelloffene Programm JODE (Java Optimize and Decompile Environment) von

http://jode.sourceforge.net/download.php bzw.
http://sourceforge.net/project/showfiles.php?group_id=3790

herunter.

Schritt 2: Starten Sie JODE

Doppelklicken Sie auf die Datei jode-1.1.2-pre1.jar, um JODE zu starten.

Es erscheint folgendes Fenster:

JODE nach dem Start

Schritt 3: Die zu untersuchende JAR-Datei auswählen

Wählen Sie den Menüpunkt Options → Set classpath (rote Ellipse in Bildschirmfoto unten).

Menüpunkt "Options, Set classpath"

Es erscheint folgende Dialogbox:

Dialogbox zur Eingabe des Pfades der zu untersuchenden JAR-Datei

Geben Sie in das Textfeld den vollständigen Pfad der zu untersuchenden JAR-Datei ein.

Wenn wir z. B. die JAR-Datei der Anwendung FreeMind untersuchen wollen, muss ein Pfad wie D:\Programme\FreeMind\lib\freemind.jar eingegeben werden.

Schritt 4: Desassemblierten Code betrachten

Danach erscheint folgendes Fenster:

JODE-Fenster nach dem Laden der FreeMind-JAR-Datei

Doppelklicken Sie auf den Knoten freemind in der Baumansicht auf der linken Seite (rote Ellipse).

Paket freemind

Öffnen Sie anschliessend den Knoten main.

Desassemblierter Code der Klasse FreeMindApplet

Klicken Sie dann auf eine Klasse in der Baumansicht, z. B. FreeMindApplet.

Danach werden Sie im Textfeld rechts sehen, welchen Quellcode JODE aus den Class-Dateien im gewählten JAR generiert hat:

...
 
public class FreeMindApplet extends JApplet implements FreeMindMain
{
    private HookFactory nodeHookFactory;
    public static final String version = "0.8.0";
    public URL defaultPropsURL;
    public static Properties defaultProps;
    public static Properties userProps;
    private JScrollPane scrollPane = new JScrollPane();
    private MenuBar menuBar;
    private PropertyResourceBundle resources;
    private JLabel status = new JLabel();
    Controller c;
    static int iMaxNodeWidth = 0;
 
    public boolean isApplet() {
	return true;
    }
 
    public File getPatternsFile() {
	return null;
    }
 
    public Controller getController() {
	return c;
    }
 
    public MapView getView() {
	return c.getView();
    }
...
}

In diesem Beispiel ist der desassemblierte Code übersichtlich, verständlich und leicht zu lesen.

Auf die gleiche Art können Sie auch Ihre Anwendungen durchleuchten und dann entscheiden, ob Schutzmassnahmen wie Obfuscation gerechtfertigt sind.

Newsletter

Diese Website wird laufend aktualisiert und es kommen regelmässig neue Artikel hinzu.

Wenn Ihnen dieser Artikel gefallen hat, können wir Sie benachrichtigen (höchstens ein Mal im Monat) sobald neue Informationen veröffentlicht werden. Melden Sie sich dazu bei unserem Newsletter an.

 
module_des_erfolgs/java_anwendungen_schuetzen.txt · Zuletzt geändert: 25.05.2009 21:46 von dp
 
© Copyright Dmitri Pissarenko Softwareentwicklung