Volume 11 - Issue 1
A Comparative Study on Optimization, Obfuscation, and Deobfuscation Tools in Android
- Geunha You
Dept. of Computer Science & Engineering, Dankook University, Yongin, Republic of Korea
geunhayou@dankook.ac.kr
- Gyoosik Kim
KT Infra Lab, Seoul, Republic of Korea
erewe4@dankook.ac.kr
- Seong-je Cho
Dept. of Computer Science & Engineering, Dankook University, Yongin, Republic of Korea
sjcho@dankook.ac.kr
- Hyoil Han
School of Information Technology, Illinois State University, Normal, IL, USA
hhan12@ilstu.edu
Keywords: Android app, Obfuscation, De-obfuscation, Optimization, R8 compiler, ReDex. Obfuscapk, DeGuard
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.