Title
Code Defactoring: Evaluating the Effectiveness of Java Obfuscations
Abstract
Obfuscation is a very common protection against reverse engineering attacks: it modifies a program structure to make it harder for the adversary to analyse and understand it. Conceptually, obfuscation is the opposite of refactoring: the code should be more complex to understand, bloated, and with excessive characteristics from the design point of view. This paper aims at evaluating the code complexity introduced by different obfuscation algorithms by using software engineering metrics. Using structural metrics, this paper illustrates how the various types of obfuscation algorithms perform in terms of OO attributes that should be kept low in refactoring. Results show that the majority of the selected algorithms produce no changes in the structural attributes or the average complexity, but they produce more ``dead'' code. We argue that this could not represent the optimal way to protect the code: when protecting against reverse engineering attacks, a preference should be given to those algorithms that increase the complexity and alter the structural metrics.
Year
DOI
Venue
2012
10.1109/WCRE.2012.17
Reverse Engineering
Keywords
Field
DocType
Java,computer crime,reverse engineering,software maintenance,software metrics,Java obfuscations,OO attributes,code complexity,code defactoring,cyclomatic complexity,dead code,program structure modification,reverse engineering attack,software engineering metrics,structural attributes,structural metrics,cyclomatic complexity,obfuscation,security metrics,structural metrics
Programming language,Computer science,Reverse engineering,Cyclomatic complexity,Theoretical computer science,Software maintenance,Software metric,Obfuscation (software),Obfuscation,Java,Code refactoring
Conference
ISSN
ISBN
Citations 
1095-1350
978-1-4673-4536-1
4
PageRank 
References 
Authors
0.38
10
3
Name
Order
Citations
PageRank
Andrea Capiluppi148842.51
Paolo Falcarin228326.68
Cornelia Boldyreff346456.05