What is JLockTM?
JLockTM is a Java class file encrypter. It transparently encrypts Java class files and
at run-time decrypts the code, so that the JVM can interpret the class file as a valid
Java byte-code.
The way JLockTM works is very different from other obfuscator applications.
Obfuscators usually replace the name of the methods and member variables. By doing
that, they make it more difficult to reverse engineer the obfuscated byte code to its
original format. By renaming methods to some invalid names (such as Java keywords), the
obfuscators make it difficult for reverse engineer tools to decompile the byte code
to compilable Java source code. However, they do not protect the source code. What they do is
just making it more difficult to reverse engineer the obfuscated code.
JLockTM takes a completely different approach. It fully encrypts the byte code so
that from JVM's point of view, the encrypted code is no longer a valid Java byte-code.
At run-time, when the class files need to be loaded, JLockTM transparently decrypts
class files and delivers valid Java byte-code to class loader to load the class.
JLockTM operation is completely transparent. Java developers do not need to
do anything when they are developing their code. After the code is finished,
a GUI based application is used to encrypt those class files that need to
be protected. At run-time, JLockTM will automatically take care of
decrypting the encrypted byte-codes. The encryption is based on a standard
256-bit encryption mechanism.
JLockTM Features
- Strong encryption of Java byte-code.
- Transparent encryption/decryption.
- Class level protection. You can protect a Java class even if you do not have access to its source code.
- Support accessing Java classes dynamically, or statically.
- Support loading encrypted classes by Class.forName, and Beans.instantiate.
- Support custom class loading.
- GUI based project definition.
- Support encryption of files under a folder.
- Support encryption of files inside archive files (Jar, Zip).
- Use of native code to perform encryption/decryption to improve performance and protection.
- Class replacement protection. If an encrypted class is replaced by a non-encrypted class,
JLock refuses to load that class.
|