Skip to main content
. 2021 Jun 11;7:e522. doi: 10.7717/peerj-cs.522

Table 10. Studies conducted to overcome obfuscation.

To overcome obfuscation, many studies were conducted on different approaches.

References Year Solution for the obfuscation
DNADroid (Crussell, Gibler & Chen, 2012) 2012 Using programme dependence graphs (PDGs), DNADroid can prevent typical program transformations in obfuscation.
Apvrille & Strazzere (2012) 2012 Detects encryption attempts as one of the obfuscation methods
DroidAPIMiner (Aafer, Du & Yin, 2013) 2013 Includes features, which are regularly used for obfuscation, such as substring (), indexOf(), getBytes(), valueOf(), replaceAll(), Append(), getInstance(), doFinal(), and Crypto.spec.DESKeySpec
Androsimilar (Faruki et al., 2013) 2013 Adopts statistically strong file features based on a normalised entropy
Droidanalytics (Zheng, Sun & Lui, 2013) 2013 Only extracts the API calls in methods and classes, which will be executed in the run time. Additionally, the generated signature, which is based on the analyst-defined API, which have the ability to update flexibly.
Apposcopy (Feng et al., 2014) 2014 Includes the predicate inter-component communication (ICC), which allows the writing of signatures, which are resilient to high-level control flow obfuscation.
Drebin (Arp et al., 2014) 2014 DREBIN extracts API calls related to obfuscation and loading of code, such as DexClassLoader.loadClass() and Cipher.getInstance
Dendroid (Suarez-Tangil et al., 2014) 2014 Concentrates on the internal structure of code units (methods) to resist obfuscation.
Droidlegacy (Deshotels, Notani & Lakhotia, 2014b) 2014 Graph node represents the Java class, which detects light obfuscation.
Firdaus (2017) 2017 Uses Jadx (a reverse engineering tool), which provides the de-obfuscation option. It is capable of de-obfuscating the obfuscation code in minimal error.