Skip to content
Free planNo credit card requiredStart writing

article · 2007

JAVA BYTECODE OBFUSCATION by

Batchelder, Michael Robert

Cited by 1Abstract and details only

Abstract

Programs written for machine execution will always be susceptible to information theft. This information can include trademarked algorithms, data embedded in the program, or even data the program accesses. As technology advances computer scientists are building more and more powerful tools for reverse-engineering such as decompilers.The Java programming language is particularly open to reverse-engineering attacks because of its well-defined, open, and portable binary format. We examine one area of better-securing the intellectual property of a Java program; obfuscation. Obfuscation of a program involves transforming the code of the program into a more complex, but semantically equivalent representation. This can include the addition of confusing control flow, the removal of certain information embedded in the program which is not explicitly required for execution, or the cloaking of data.Obfuscation is one of the only techniques available other than cryptological options. While many approaches to obfuscation are ultimately reversible, it nevertheless seriously hinders those attempting to steal information by increasing the computing time and power required by software to reverse-engineer the program and also severely increases the complexity of any source code that is recovered by the reverse-engineering.In this thesis we present a number of obfuscating transformations implemented within a new automatic tool we name the Java Bytecode Obfuscator (JBCO). We present empirical measures of the performance costs of these transformations in terms of execution speed and program size. Complexity measurements that gauge the effectiveness of the obfuscations are also given. Finally, we review the feasibility of each transformation by looking at source code generated from obfuscated bytecode by various decompilers.

Cite this paper

APA 7

Batchelder, M. R. (2007). JAVA BYTECODE OBFUSCATION by.

MLA 9

Batchelder, Michael Robert. “JAVA BYTECODE OBFUSCATION by.” 2007.

Chicago

Batchelder, Michael Robert. 2007. “JAVA BYTECODE OBFUSCATION by.”

Harvard

Batchelder, M.R. (2007) ‘JAVA BYTECODE OBFUSCATION by’.

BibTeX
@article{batchelder2007java,
  title = {{JAVA BYTECODE OBFUSCATION by}},
  author = {Batchelder, Michael Robert},
  year = {2007}
}

Made from the index record. Check names, capitalisation and page numbers against the paper. Need another style? AI for Research has over 10,000.