Methods for Obfuscating Java Programs
Florin D. Buzatu · Journal of Mobile, Embedded and Distributed Systems (JMEDS) - Journal of Mobile, Embedded and Distributed Systems · 2012
Java programs distributed through internet are suffering of problems like reverse engineering, algorithms theft and unauthorized functional changes. The reason for this issue is that the bytecode from Java class file holds enough information to be decompiled into source code that resembles the original. In this paper, I discuss some practical obfuscation methods that make difficult the understanding of the decompiled programs. The methods analyzed are: lexical obfuscation, data obfuscation, control flow obfuscation, obfuscation methods that make use of the discrepancy between bytecode and source code. In order to evaluate the usefulness of these methods, some metrics will be described.