Code defactoring: Evaluating the effectiveness of Java obfuscations

10Citations
Citations of this article
17Readers
Mendeley users who have this article in their library.
Get full text

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. © 2012 IEEE.

Cite

CITATION STYLE

APA

Capiluppi, A., Falcarin, P., & Boldyreff, C. (2012). Code defactoring: Evaluating the effectiveness of Java obfuscations. In Proceedings - Working Conference on Reverse Engineering, WCRE (pp. 71–80). https://doi.org/10.1109/WCRE.2012.17

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free