fbpx Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT) |ARAB AMERICAN UNIVERSITY
Contact information for Technical Support and Student Assistance ... Click here

Dynamic Multi Levels Java Code Obfuscation Technique (DMLJCOT)

Authors: 
Adwan Yasin
Ihab Nasra
Journal Name: 
International Journal of Computer Science and Security (IJCSS)
Volume: 
10
Issue: 
4
Pages From: 
140
To: 
160
Date: 
Saturday, October 1, 2016
Keywords: 
Software Obfuscation, Reverse Engineering, Byte Code, Java Reflection, De-compiler.
Abstract: 
Several obfuscation tools and software are available for Java programs but larger part of these software and tools just scramble the names of the classes or the identifiers that stored in a bytecode by replacing the identifiers and classes names with meaningless names. Unfortunately, these tools are week, since the java, compiler and java virtual machine (JVM) will never load and execute scrambled classes. However, these classes must be decrypted in order to enable JVM loaded them, which make it easy to intercept the original bytecode of programs at that point, as if it is not been obfuscated. In this paper, we presented a dynamic obfuscation technique for java programs. In order to deter reverse engineers from de-compilation of software, this technique integrates three levels of obfuscation, source code, lexical transformation and the data transformation level in which we obfuscate the data structures of the source code and byte-code transformation level. By combining these levels, we achieved a high level of code confusion, which makes the understanding or decompiling the java programs very complex or infeasible. The proposed technique implemented and tested successfully by many Java de-compilers, like JV, CAVJ, DJ, JBVD and AndroChef. The results show that all decompiles are deceived by the proposed obfuscation technique.