Repository logo
 

Code clone detection in obfuscated Android apps

dc.contributor.advisorStakhanova, Natalia
dc.contributor.committeeMemberKeil, Mark
dc.contributor.committeeMemberRoy, Banani
dc.contributor.committeeMemberBedeer Mohamed, Ebrahim
dc.creatorForoughipour, Ardalan
dc.creator.orcid0000-0002-1832-448X
dc.date.accessioned2022-01-28T14:03:51Z
dc.date.available2022-01-28T14:03:51Z
dc.date.created2021-11
dc.date.issued2022-01-28
dc.date.submittedNovember 2021
dc.date.updated2022-01-28T14:03:51Z
dc.description.abstractThe Android operating system has long become one of the main global smartphone operating systems. Both developers and malware authors often reuse code to expedite the process of creating new apps and malware samples. Code cloning is the most common way of reusing code in the process of developing Android apps. Finding code clones through the analysis of Android binary code is a challenging task that becomes more sophisticated when instances of code reuse are non-contiguous, reordered, or intertwined with other code. We introduce an approach for detecting cloned methods as well as small and non-contiguous code clones in obfuscated Android applications by simulating the execution of Android apps and then analyzing the subsequent execution traces. We first validate our approach’s ability on finding different types of code clones on 20 injected clones. Next we validate the resistance of our approach against obfuscation by comparing its results on a set of 1085 apps before and after code obfuscation. We obtain 78-87% similarity between the finding from non-obfuscated applications and four sets of obfuscated applications. We also investigated the presence of code clones among 1603 Android applications. We were able to find 44,776 code clones where 34% of code clones were seen from different applications and the rest are among different versions of an application. We also performed a comparative analysis between the clones found by our approach and the clones detected by Nicad on the source code of applications. Finally, we show a practical application of our approach for detecting variants of Android banking malware. Among 60,057 code clone clusters that are found among a dataset of banking malware, 92.9% of them were unique to one malware family or benign applications.
dc.format.mimetypeapplication/pdf
dc.identifier.urihttps://hdl.handle.net/10388/13796
dc.subjectCode simulation
dc.subjectCode clone
dc.subjectCode Obfuscation
dc.subjectAndroid
dc.subjectMalware
dc.subjectSmali Code
dc.titleCode clone detection in obfuscated Android apps
dc.typeThesis
dc.type.materialtext
thesis.degree.departmentComputer Science
thesis.degree.disciplineComputer Science
thesis.degree.grantorUniversity of Saskatchewan
thesis.degree.levelMasters
thesis.degree.nameMaster of Science (M.Sc.)

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
FOROUGHIPOUR-THESIS-2021.pdf
Size:
719.08 KB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
LICENSE.txt
Size:
2.27 KB
Format:
Plain Text
Description: