logo


...zurück

Java Reengineering durch Verschlüsselung vermeiden?

Java Bytecode verschlüsseln?

Immer wieder tauchen Programme auf, die den Entwicklern von in Java geschriebener Software dabei helfen wollen, Ihre Arbeit in der Art zu schützen, das niemand unberechtigt daran teilhaben kann. Dabei geht es nicht nur darum, das niemand die Software rückwärts implementieren kann, sogenanntes Reengineering oder ein decompilieren zu vermeiden, sondern auch einfach darum, das ein Produkt nur unter bestimmten Voraussetzungen benutzt werden darf -> Stichwort Lizenzierung.

Einige dieser Verschluesselungsprogramme setzen massive Schlagwörter ein und behaupten nahezu, das die Software mit Hilfe des Programmes sicher sei. Oft wird dabei nicht darauf hingewiesen, das schon mit einer modifizierten JVM der Bytecode des Programms ausgelesen und so einer beliebigen Verwendung zugeführt werden kann.

Zurecht mag man annehmen, das dieses Verfahren schon ziemlich kniffelig ist, und nur für wenige Menschen auf der Welt praktikabel. Es gibt aber weit einfachere Methoden, die nicht nur theoretisch, sondern auch praktisch mit wenigen Zeilen Code alle Bytecode-Verschlüsselungsprogramme aushebeln. Hierzu ist keine modifizierte JVM nötig, lediglich ein wenig Grundlagenwissen über den Aufbau der JVM.

Effizient kann man den Code nur durch in Hardware gegossene Lizenzierungsschnittstellen vor unbefugter Benutzung schützen.

Vor Reverse-Engineering ist der Code nur durch gute Obfuscation zu schützen. Ferner sind die meisten Reverse-Bytecode-Generatoren nicht mit verschiedenen Bytecode-Erweiterungen vertraut und somit gibt es noch einige mehr Möglichkeiten, den Code als solches vor einem unbedarften Augen zu schützen. Erfahrene Bytecode "Leser", werden aber auch diese Hürde meistern.

Links zum Thema

  • Jad - the fast JAva Decompiler http://kpdus.tripod.com/jad.html
  • Key4J Secure http://www.key4j.de/
  • Program Code Protection Secure http://www.chainkey.com/en/jcp/
  • JLock http://www.jbitsoftware.com
...zurück


Condor EDV GbR