%0 Journal Article %T Methods for Obfuscating Java Programs %A Florin Buzatu %J Journal of Mobile, Embedded and Distributed Systems %D 2012 %I Bucharest University of Economic Studies %X 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. %K Java %K obfuscation %K lexical obfuscation %K data obfuscation %K control flow obfuscation %K bytecode %U http://www.jmeds.eu/index.php/jmeds/article/view/55