Lecture Notes in Computer Science
DOI: 10.1007/978-3-540-71229-9_7
|View full text |Cite
|
Sign up to set email alerts
|

Obfuscating Java: The Most Pain for the Least Gain

Abstract: Abstract. Bytecode, Java's binary form, is relatively high-level and therefore susceptible to decompilation attacks. An obfuscator transforms code such that it becomes more complex and therefore harder to reverse engineer. We develop bytecode obfuscations that are complex to reverse engineer but also do not significantly degrade performance. We present three kinds of techniques that: (1) obscure intent at the operational level; (2) complicate control flow and objectoriented design (i.e. program structure); and… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
22
0
1

Publication Types

Select...
5
2
2

Relationship

0
9

Authors

Journals

citations
Cited by 23 publications
(23 citation statements)
references
References 15 publications
0
22
0
1
Order By: Relevance
“…Deobfuscation attempts to reverse engineer obfuscated code (Udupa et al 2005). Because Java byte code is comparatively high-level and easy to decompile, obfuscation of Java bytecode has focused on preventing decompilation (Batchelder and Hendren 2007) whilst decompilers like Krakatoa (Proebsting and Watterson 1997), Krakatau (Grosse 2016) and Procyon (Strobel 2016) attempt to decompile even in the presence of obfuscation.…”
Section: Related Workmentioning
confidence: 99%
“…Deobfuscation attempts to reverse engineer obfuscated code (Udupa et al 2005). Because Java byte code is comparatively high-level and easy to decompile, obfuscation of Java bytecode has focused on preventing decompilation (Batchelder and Hendren 2007) whilst decompilers like Krakatoa (Proebsting and Watterson 1997), Krakatau (Grosse 2016) and Procyon (Strobel 2016) attempt to decompile even in the presence of obfuscation.…”
Section: Related Workmentioning
confidence: 99%
“…Ledoux et al proposed an instruction embedding method to improve instruction overlapping obfuscation [24]. Batchelder et al presented layout obfuscation algorithm to make Java decompilers fail to produce legal source code or crash completely [25].…”
Section: Related Workmentioning
confidence: 99%
“…Some dynamic dispatching methods inherently have this capability. Batchelder and Hendren (2007) proposed a number of prevention transformation techniques for Java program by exploiting the semantic gap between what is legal in source code and what is legal in bytecode. The methods include converting branches to jsr instructions, disobeying constructor conventions, and combining try blocks with their catch blocks etc., all which lead to the decompilers failing to decompile the bytecodes.…”
Section: Prevention Obfuscationmentioning
confidence: 99%