Code clones are frequent in use because they can be created fast with little
effort and expense. Especially for malware writers, it is easier to create a
clone of the original than writing a new malware. According to the recent
Symantec threat reports, Android continues to be the most targeted mobile
platform, and the number of new mobile malware clones grew by 54%. There is
a need to develop techniques and tools to stop this attack of Android
malware clones. To stop this attack, we propose DroidClone that exposes code
clones (segments of code that are similar) in Android applications to help
detect malware. DroidClone is the first such effort uses specific control
flow patterns for reducing the effect of obfuscations and detect clones that
are syntactically different but semantically similar up to a threshold.
DroidClone is independent of the programming language of the code clones.
When evaluated with real malware and benign Android applications, DroidClone
obtained a detection rate of 94.2% and false positive rate of 5.6%.
DroidClone, when tested against various obfuscations, was able to
successfully provide resistance against all the trivial (Renaming methods,
parameters, and nop insertion, etc) and some non-trivial (Call graph
manipulation and function indirection, etc.) obfuscations.