Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Beginner
Nov 13, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

What are Obfuscators?

Java bytecode contains information in your Java source files. This byte code is generated by the java compiler as per an explicitly documented specification. It is not impossible to reverse engineer a Java byte code to get at the actual Java code behind it. In fact, there are decompilers that do this to very good degree of precision. This makes intellectual property of your products vulnerable.

An obfuscator changes Java bytecode to make the source code generated by decompilers less useful to a thief. There are two generations of obfuscators:
First generation Java obfuscators primarily perform name obfuscation by change class, field, and method names to meaningless strings. This technique makes the decompiled source hard to understand, but does not obscure the overall flow of the code.
Second generation obfuscators perform flow obfuscation as well as name obfuscation. They do this by making make slight changes to the bytecode that obscure the control flow without changing what the code does at runtime. Typically, selection (e.g.. if...else...) and looping constructs (e.g.. while and for loops) are changed so that they no longer have a direct Java source code equivalent.

For two of the commercially available obfuscators, visit: http://www.retrologic.com or http://www.zelix.com/klassmaster/.

Behrouz Fallahi
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date