Overview of JCloaktm

 

What is JCloak?

JCloak post-processes Javatm bytecode, encrypting the symbol information to reduce the likelihood of reverse engineering.

Java program symbol references are resolved by name, and every method, field, and class in your Java program has a fully qualified name stored in your Java class files. When your Java class references a method, the Java Virtual Machine uses the fully qualified name of the method to locate the class containing the method and the method itself. JCloak encrypts these names without preventing the VM from running your program.

 

Features

 

The Obfuscation Process

Obfuscation, simply put, is the process by which JCloak encrypts the symbol information for all internal references while leaving external references unchanged, whereas

1)Internal references
include inter-class or intra-class references to methods, fields or classes that are wholly contained within your application
2)External references
references to methods, fields or classes defined by classes outside of your application (third party package libraries or the Java virtual machine classes). Also included are methods, fields or classes defined by your application that may themselves be referenced by classes outside of your application (either directly or via overriding a method of a class defined outside of your application)