Master of Science (MS)
Java is a platform independent language. Java programs can be executed on any machine, irrespective of its hardware or the operating system, as long as a Java virtual machine for that platform is available. A Java compiler converts the source code into „bytecode‟ instead of native binary machine code. This bytecode contains a lot of information from and about the source code, which makes it easy to decompile, and hence, vulnerable to „reverse engineering attacks‟. In addition to the obvious security implications, businesses and the wider software engineering community also risk widespread IP theft - proprietary algorithms, for example, that might be implemented in Java could be easily reverse-engineered and copied.
This thesis addresses the problem of reverse engineering attacks on software written in Java. It analyzes the present defense techniques used to protect software from such attacks, examines their limitations and provides a new tool that implements several anti-reversing techniques.
Kundu, Deepti, "JShield: A Java Anti-Reversing Tool" (2011). Master's Projects. 161.