JarCryp™ versus Obfuscators
Below the JarCryp™ ByteCode encryption for Java-based multiplatform installers is compared with common obfuscating.
||Only packages, classes and method names are replaced. The byte
code and in particular constants are still observable and changeable. Sometimes, at least parts of
the source code can be restored by decompilation.
||The whole source code is encrypted|
|Protection of resources||No protection for images, text-files, configureation data. aso.
||All resource files are fully encrypted|
|Logging, Debugging, Error Handling
||Meaningful logging or debugging is problematic. Error
reports are possibly meaningless, since stack traces can no more be evaluated in the common way.
||No restrictions in comparison to unencrypted applications.|
|Compatibility||Problems by substantial code changes, which lead to the edge of
Java byte code conformity, are pre-programmed. Possibly not all Java versions (e.g.. Java
5.0) are supported.
Code using the Reflection API is very problematic
|The byte code is executed unchanged. Thus compatibility with all
Java versions is ensured.
No problems when using Reflection API
||Typically JAR files are smaller in file size
||Typically file sizes are reduced by an estimated 10%.
||Mostly 100% pure Java||Native library necessary. However thanks to ANSI C++ programming
this library is available for all major operating systems. The use of JNI (Java Native Interface)
enables us to port the library for the use in fancy environments.
Look at the JInstaller™ Secure Edition