.
Hier ein paar kleine Tips für Java Programmierer
Wie kann ich ...
Wieschütze ich meine Java-Programme vor
dem Decompilieren ?
Es ist nicht 100% möglich dies zu tun. Man kann es erschweren den Code
zu lesen und verhindern, das fremder Code den eigenen überschreibt.
Benötigte Tools :
- Der zu veröfentlichende Code ist mit einem Obfuscator schwer
lesbar zu machen.
- Beim compilieren die Debugging-Informationen außen vor lassen :
javac -g:none meincode.class
- Erstellen einer Manifes.mf -Vorlagedatei im Texteditor mit
mindestens diesem Inhalt:
Manifest-Version:1.0
Name:
Packetname(z.B. de/mysli/ess/test/)
Sealed: true
dies "versiegelt" das Packet -
Fremdcode kann nicht mehr eingeschleust werden.
- JAR-Datei muß signiert werden, um nachträgliche Änderungen zu
vermeiden :
jarsigner -keystore meinkeystore -signedjar
meinjarfile.jar meinalias
- dabei sind:
- meinkeystore die URL oder der Pfad zum eigenen Keystore
- meinjarfile.jar der Name der zu verschlüsselnden JAR-Datei
- meinalias der alias (Benutzername) für den Schlüssel
- nach dem ENTER auf der Kommandozeile ist das Password für den
alias einzugeben
- Die JAR-Datei wird nun signiert und die enthaltene Manifest.mf
enthält alle Hashcodes
- Eine nachträgliche Manipulation fällt nun auf.
- Ein nGrant -Eintrag im Policy-File garantiert, daß nur die von
einem bestimmten alias signierten Dateien ausgeführt werden.
JBuilder - Dokumentation erstellen
- Die gewünschte doku (Bsp.:j2sdk-1_4_0-doc.zip ) entpacken.
- Verzeichnisse umbenennen: docs->java siehe Bilder
- Eingabeaufforderung starten und ins Verzeichnis wechseln, in dem
sich der in "java" umbenannte Ordner befindet
- Diesen Befehl ausführen (die Javaumgebungsvariable sollte
eingerichtet sein):
jar cvf jdk14_docs.jar -C java
- Nach kurzer Zeit beginnt der Kompressionsprozeß.
- Die erhaltene Datei (hier: jdk14_docs.jar) in den doc ordner des
JBuilders verschieben, alte doc-Datei(z.B.jdk142_docs.jar)löschen
oder verschieben. Fertig.
JBuilder bis Version 6 - JDK 1.4
lauffähig machen
Mit dem JDK1.4 wurde ein neues class-Dateiformat
eingeführt, ältere JBuilder Versionen melden beim
Compilieren sich mit einem Fehler ... 48 .
Ein Tool zur Umwandlung existiert unter http://www.stephenkelvin.de/MerlinPatch/.
In dessen Java-Quelltext
wird der korrekte Pfad des JDK1.4 eingetragen. Danach compiliert man es
und führt die ClassVersionLimiter.class
aus.