Preventing Reverse Engineering Threat in Java Using Byte Code Obfuscation Techniques
Jan M. Memon, Shams-ul-arfeen, Asghar Mughal, Faisal Hussain Memon · 2006
Java programs are complied in to a platform independent byte code format. Much of the information contained in the source code is retained in the byte code. Consequently reverse engineering becomes much easier. Several software protection techniques have been developed, of which, code obfuscation seems to be a promising one. In this paper, two new byte code obfuscation techniques have been evolved. These techniques involve applying obfuscating transformations to the Java byte code. These techniques prevent automatic software analysis tools, de-compilers, from producing correct source code by introducing syntax and semantic errors in the generated source code. The proposed techniques are applied on sample Java class files to examine the effectiveness of the techniques in impeding reverse engineering. The results reveal the erroneous codes generated by the tested de-compilers