A Comparative Study on Optimization, Obfuscation, and Deobfuscation Tools in Android

Geunha You
1, Gyoosik Kim2, Seong-je Cho1+ and Hyoil Han3
 

1Dept. of Computer Science & Engineering, Dankook University, Yongin, Republic of Korea
{geunhayou, sjcho}@dankook.ac.kr

2KT Infra Lab, Seoul, Republic of Korea

erewe4@dankook.ac.kr

3School of Information Technology, Illinois State University, Normal, IL, USA

hhan12@ilstu.edu

 

Abstract

Code optimization is a program transformation process to make the program work more efficiently or consume fewer resources. Code obfuscation transforms a program and makes its code more difficult for a human to understand, which protects the code from reversing engineering. Deobfuscation is reverse-engineering the obfuscation. Optimization and obfuscation are widely used in Android apps. R8, the Android build process’s default tool, does all of the code shrinking, obfuscation, and optimization. This paper compares and analyzes the functionalities of optimization, obfuscation, and deobfuscation tools in the Android platform. Besides R8, the other tools covered in this paper are ReDex, Obfuscapk, and DeGuard, which are optimization, obfuscation, and deobfuscation tools for Android apps, respectively. We investigate the characteristics of the four tools and compare their performance by performing experiments.

Keywords: Android app, Obfuscation, De-obfuscation, Optimization, R8 compiler, ReDex. Obfuscapk, DeGuard

 

+: Corresponding author: Department of Computer Science & Engineering, Dankook University, 152 Jukjeonro,
Yongin-si, Gyeonggi-do, 16890, Korea, Tel: +82-31-8005-3239

 

Journal of Internet Services and Information Security (JISIS), 11(1): 2-15, February 2021

Received: December 10, 2020; Accepted: February 5, 2021; Published: February 28, 2021

DOI: 10.22667/JISIS.2021.02.28.002 [pdf]