Methods for Obfuscating Java Programs

Authors

  • Florin Buzatu IT&C Security Master Department of Economic Informatics and Cybernetics

Keywords:

Java, obfuscation, lexical obfuscation, data obfuscation, control flow obfuscation, bytecode

Abstract

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.

Author Biography

Florin Buzatu, IT&C Security Master Department of Economic Informatics and Cybernetics

Bucharest University of Economic Studies

References

Michael Batchelder, Laurie Hendren, Obfuscating Java: the most pain for the least gain – Sable Technical Report No. 2006-5

Eric Bruneton, ASM 3.0 A Java bytecode engineering library

Bill Vernes, Inside the Java Virtual Machine, McGraw-Hill

Jon Meyer, Troy Downing, Java Virtual Machine Online Instruction Reference Manual, O’Reilly Associates

Douglas Low, Protecting Java Code Via Code Obfuscation

Dmitry Leskov, Protect your Java code – through obfuscators and beyond, http://www.excelsior-usa.com/articles/java-obfuscators.html

Yury Lifshits, Two courses on program obfuscation, http://yury.name/obfuscation/

Sonali Gupta, Code Obfuscation, http://palisade.plynt.com/issues/2005Aug/code-obfuscation/

Anshuman Mishra, Rajeev Kumar and P.P. Chakrabarti, A Method-based Whole-Program Watermarking Scheme For Java Class Files

Downloads

Published

2012-03-30

How to Cite

Buzatu, F. (2012). Methods for Obfuscating Java Programs. Journal of Mobile, Embedded and Distributed Systems, 4(1), 25-30. Retrieved from http://www.jmeds.eu/index.php/jmeds/article/view/Methods_for_Obfuscating_Java_Programs