- Protecting the Ideas Behind Your Code
- Obfuscation As a Protection of Intellectual Property
- Transformations Performed by Obfuscators
- Knowing the Best Obfuscators
- Potential Problems and Common Solutions
- Using Zelix KlassMaster to Obfuscate a Chat Application
- Cracking Obfuscated Code
- Quick Quiz
- In Brief
Knowing the Best Obfuscators
Plenty of obfuscators are available, and most of them contain the same set of core features. Table 3.1 includes just a few of the most popular products, both free and commercial.
TABLE 3.1 Popular Obfuscators
PRODUCT |
KLASSMASTER |
PROGUARD |
RETRO GUARD |
DASH-O |
JSHRINK |
Version |
4.1 |
1.7 |
1.1.13 |
2.x |
2.0 |
Price |
$199$399 |
Free |
Free |
$895$2995 |
$95 |
Stripping out of debug information |
Yes |
Yes |
Yes |
Yes |
Yes |
Name mangling |
Yes |
Yes |
Yes |
Yes |
Yes |
Encoding of Java strings |
Yes |
No |
No |
No |
Yes |
Changing of control flow |
Yes |
No |
No |
No |
No |
Insertion of corrupt code |
Yes |
No |
No |
No |
No |
Elimination of unused code (shrinking) |
Yes |
Yes |
No |
Yes |
Yes |
Optimizing of bytecode |
No |
No |
No |
Yes |
Yes |
Flexibility of scripting language and obfuscation control |
Excellent |
Excellent |
Good |
Not rated |
Good |
Reconstruction of stack traces |
Yes |
Yes |
No |
No |
No |
For commercial applications that contain intellectual property, I recommend Zelix KlassMaster primarily because of its unique control flow obfuscation. This technique makes the obfuscated code truly hard to crack, so the product is worth every dollar you will pay for it. At the time of writing, it is the only obfuscator known to have this feature. ProGuard is available free from www.sourceforge.net and is the best choice for the budget-conscious user with applications that do not require commercial-strength protection.