Analysis of Android Applications by Using Reverse Engineering Techniques
Analysis of Android Applications by Using Reverse Engineering Techniques
ISSN No:-2456-2165
Abstract:- Mobile devices have developed tremendous According to the report, the large population of
popularity over the last few years. The most popular potential victims give malware writers to target mobile
usage is the smart phones because they are capable of devices and states that the number of new smart phone
providing services such as banking, social network, and malware simples detected has doubled from 1000 per day
so on. The Android platform is the fastest growing in 2013 to 2000 per day in 2014 [8]. Based on these facts,
market in smart phone operating systems to date. The the android malware increased to the double rate within
malicious applications targeting the Android system 2014 and 2015. In the Trend Micro 2016 Security
have exploded in recent years. It needs to detect the Predictions report, CTO, Raimund Genes predicted the
malicious code on Android applications. This paper following: China will drive mobile malware growth to 20
focus on the analysis of the android apps by using the million by the end of 2016 [9].
reverse engineering tools for checking the malicious
activities. There are mainly two parts this analysis such Name Form of Attack
as permissions and java source codes analysis. The Expensive Wall A form of malware
results show that most of malware apps are located the Marcher A form of adobe flash player
unnecessary permission on AndroidManifest.xml to update
inject the malicious codes in the apps. Xavier A form of Trojan adware
Dvmap Injected puzzle game, Colourblock
Keywords:- Android Security, Reverse Engineering, Static Bankbot Injected a game, Jewels Star
Analysis, Android Malware. Classic
Table 1:- The Five Biggest Andorid Malware Attack in
I. INTRODUCTION 2017
Most of malware attacks are targeting Android The five biggest android malware attacks in 2017 [20]
operating system because of the growing market of smart are shown in Table I. The first one, Marcher is found on
phones, called Android, and this is a most popular third-party markets and other malware attacks are
operating system, open source platform of Google. Android discovered from Google Play store. Expensive Wall sent
is mainly used in mobile devices such as smart phone and fake messages and charged without users’ permission. The
tablets. They support several features such as Wi-Fi, second one, Marcher would disable security, removes its
Bluetooth, voice, data, GPS, etc. And, they also provide the icon, sent all device’s information to C&C when the users
useful services such as gaming, internet browsing, banking, open an app from it list of targets. It could steal login
social networking, etc. credentials from retail, social media and banking apps. The
third one, Xavier can quietly store personal and financial
According to the data from International Data data from users by hiding inside the several types of apps
Corporation (IDC),the world-wide smartphone market such as ringtone changers, photo manipulators, call
grew 0.7% year over year, with 344.7 million shipments [7]. recorders and so on. Another one, Dvmap could inject code
The world wide smart phone market reach a total 355.2 into system library and eliminate root detection software by
million units shipped in 2018 and Android will dominate hiding inside puzzle game, Colourblock. And another
the market with an 89.0% share in 2019. attack, Bankbot created fake overlay screens which looked
like the login pages of popular banking apps by injecting
Android is one of the most popular operating system inside a game, Jawels Star Classic. And then the data was
because it is an open source operating system. It has some passed onto cybercriminals when they entered their login
basic features such as middleware in the form of virtual credential.
machines, system utilities and applications. The most
attractive feature is the ability to extend its functionality In the proposed system, it is used the reversed
with third-party applications. But, this feature brings with it engineering tool such as apktool, dex2jar and jdgui for
the threat, attacks of malicious applications. The increase static malware analysis. This paper is organized as follows.
of mobile applications causes the challenges of security In section II, it will discuss about the related work of the
that is the vulnerable of the applications and these become previous research work. Section III will be expressed
the target of malicious application developers. background theory about android architecture, security and
malware. Reverse engineering methodology and tools will
be discussed in Section IV. The implementation and
1.65
Linux Kernel
14.12 Trojan -SMS
Fig 1:- Android security model 37.07 Rooter
Backdoor
Linux Kernel Level Security 21.44 Spyware
Android relies on Linux both of the process, memory Trojan
and file system management. It is also one of the most Adware
important components in the Android security architecture. 8.07 14.26
Trojan -SPY
3.39
And, it is responsible for provisioning Application
Sandboxing and enforcement of some permission.
Application Framework Level Security Fig 2:- The growing threat of android mobile malware [10]
Android applications consist of different components
and there is no central entry point unlike Java programs The top android malware families are shown in Fig. 2.
with the main method. Therefore, it is needed to declare the Trojan is the most spread types in android malware. All
resources permission by the developer of an application in types of Trojan malware are totally 60.16% all of malware
the AndroidManifest.xml file. Permissions are used for [11]. The second more attack type is the Advertising
protecting the access to the system resources. The third- Malware (Adware).
party applications developers may also use custom
permissions to guard the access to the components of their The behavior of different malware families is
applications. provided in subsequent sections.
Android Permission Trojans
The Android operating system uses a permission- Trojans appear to a user as benign application but it is
based model not only to limit the behavior of an application actually steal the user’s confidential information without
but also to inform the user of the application’s potential the user’s knowledge. Such applications can easily get
behavior. An application is needed to declared the required access to the browsing history, messages, contacts and
permissions in AndroidManifest.xml file. The user can device IMEI numbers [8]. Mobile banking Trojans can run
decide to grant the list of permissions, an application together with Win-32 Trojans to bypass the two-factor
requests when it is to be installed. The user gets to make authentication and the theft of banking verification codes
the choice whether or not to install the application based on that banks send their customers in SMS messages. These
the list of permissions. Once an application is installed, the trojans attack a limited number of bank customers and it
permissions that it has remains static. The android can invent new techniques to allow them for expanding the
permission classified into four different levels is shown in number and the geography of potential victims.
Table III.
Rooter
Permission Notes Originally, the word “root” is used to refer to the root
Level account on Linux, that is to say, the system administrator,
Normal These cannot impart real harm to the user who has all the rights on the device and can modify all OS
(e.g. change the wallpaper) elements as it sees fit, including sensitive files. The rooted
Dangerous These can impart real harm (e.g. call phone or tablet means that the users get the system
numbers, open Internet connections, etc) administrator level and can control every resources on the
Signature These are automatically granted to devices. The root may include a phone blocking risk.
requesting app if that app is signed by the
same certificate. Adware
Signature/ Same as Signature, expect that the system Adware is a software that contains advertisements
System image gets the permissions automatically embedded in the application. Adware targeted to the users
as well and it is designed only to use by who do not wish to pay the software cost. There are many
device manufacturers. adware ad-supported programs, games or utilities that are
Table 3:- Android Application Permission Level distributed as adware [19].
Spyware
Program documentation
There are many reports the spyware as the serious
threat for mobile users Spyware threats are also highly
persistent according to security company and 0.24% of
Android devices that they scanned in the U.S. had Program modularisation
surveillance-ware installed intended to target a specific
individual [18].
Modularised program
Botnet
Botnet is a network of compromised Android devices
which is running one or more bots. Botmaster, is also Data reengineering
called a remote server controls the botnet through the
Command and Control Server (C&C) network. The botnet Fig 3:- Reverse eingineering process
tendencies to actually hijack and control infected devices.
Reverse engineering techniques can also be used to
D. Reverse Engineering inject the modified code in the original one and it is also
Reverse engineering is called back engineering. called repackaging application. Therefore, it is always a
Reverse engineering can also be the process of extracting good practice to check the developers who develop the
knowledge or design information from a product that can application for security reasons. It is needed to check the
be hardware or software. Fig. 3 shows the general reverse code or the resources that have been effectively obfuscated
engineering process. To make the source code translation, or to be sure that unwanted files have not been packaged
it is needed to use the automated tools that can convert one into the final release APK, including the information
language to another. Source code translation is a process of like API keys, authentication tokens or unused resources
converting from a language to another. This may be [13]. On the other way, reverse engineering techniques or
machine bytecodes to original source codes. It is needed to tools can be used to detect not only repackaged apps but
translate the original program to required human readable also malicious apps.
format. After that, it is needed to note the program structure
as the documentation. Most of the programs are too large, it There are many tools for reverse engineering for
is necessary to pass through program modularization android applications and the following are some of popular
process. Program modularization is a process of tools.
subdividing a program into separate sub-programs. After
getting the modularized programs, it is easy to analyze the SMALI/BAKSMALI
whole program. Reengineering of data components of This tool is an assembler or dis-assembler for the dex
existing system can be done with the help of methods and format that is used by dalvik bytecode.
software tools. It extends the life of existing systems by
standardizing data definition and facilitating source code ANDBUG
simplification. It is also called data reengineering process. This tool is also a debugger program for dalvik
bytecode and it uses the same interface as Android’s
Reverse engineering can reproduce the original one or Eclipse debugging plugin.
reproducing anything based on the extracted information.
In android application, there are many reasons for using ANDROGUARD
reverse engineering. It can be trying to hack or inject This tool is a full python tool to perform with android
malicious code into an application. Repacakging is a files such as dex, apk, xml and bytecode resources.
methodology to modify an application with a particular
layout or animation by using the tools that could access the APKTOOL
XML resource files of interest. It is the most useful tool for android reverse
engineering. It can be used for both decompiling and re-
compiling the android apps. It can generate smail, xml and
resources file.
DEX2JAR
This tool can work with android.dex and java
bytecode *.class files. It can convert android(dex) file to
bytecode package (jar) file.
IV. METHODOLOGY