| 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.
 |