Logo ESS

.

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 :

  1. Der zu veröfentlichende Code ist mit einem Obfuscator schwer lesbar zu machen.
  2. Beim compilieren die Debugging-Informationen außen vor lassen :
  3. javac -g:none meincode.class
  4. 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.
  5. 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
  6. Die JAR-Datei wird nun signiert und die enthaltene Manifest.mf enthält alle Hashcodes
  7. Eine nachträgliche Manipulation fällt nun auf.
  8. Ein nGrant -Eintrag im Policy-File garantiert, daß nur die von einem bestimmten alias signierten Dateien ausgeführt werden.

JBuilder - Dokumentation erstellen

  1. Die gewünschte doku (Bsp.:j2sdk-1_4_0-doc.zip ) entpacken.
  2. Verzeichnisse umbenennen: docs->java siehe Bilder
  3. Eingabeaufforderung starten und ins Verzeichnis wechseln, in dem sich der in "java" umbenannte Ordner befindet
  4. Diesen Befehl ausführen (die Javaumgebungsvariable sollte eingerichtet sein): jar cvf jdk14_docs.jar -C java
  5. Nach kurzer Zeit beginnt der Kompressionsprozeß.
  6. 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.
originalJDK_doc -QUELLE JBuilder-docu ZIEL

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.