{"id":17362,"date":"2021-10-07T13:13:48","date_gmt":"2021-10-07T07:43:48","guid":{"rendered":"https:\/\/www.varutra.com\/?p=17362"},"modified":"2022-12-02T11:58:20","modified_gmt":"2022-12-02T06:28:20","slug":"static-analysis-of-android-application","status":"publish","type":"post","link":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/","title":{"rendered":"STATIC ANALYSIS OF ANDROID APPLICATION"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/varutra-1a3b6.kxcdn.com\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION-1024x535.png\"  class=\"sh-overlay-item sh-table-cell ls-is-cached lazyloaded\" data-rel=\"lightcase\" title=\"STATIC ANALYSIS OF ANDROID APPLICATION - Varutra Consulting\"><br \/>\nAndroid applications are now an integral part of our lives, thanks to the excessive use of mobile phones. However, many users are unaware of their device\u2019s protection. If we do not know the design of our applications and how they are penetration tested, which makes you believe that you are safe and secure. You can try to mitigate this risk by performing an android penetration testing static analysis approach to ensure that mobile applications are checked thoroughly for security flaws.<\/p>\n<p>Before we get to dive into the main topic, let\u2019s discuss some of the basic concepts.<\/p>\n<ul>\n<li><strong>Native Applications:<\/strong> They are designed exclusively for mobile devices and can be downloaded and installed directly from the app store. Development tools and languages such as Android Studio and Java are used to create these applications. These apps will make good use of all the device&#8217;s features, such as the camera, GPS, contacts, and so on.<\/li>\n<li><strong>Mobile Web Applications:<\/strong> These apps are non-native, which means we can access them via mobile browsers. Most of them are HTML5, JavaScript, and CSS applications with a web interface that mimics the look and feel of a native application.<\/li>\n<li><strong>Hybrid Applications:<\/strong> These apps are available in both native and mobile web versions. These are web apps developed into a native mobile platform and have taken advantage of web technologies like HTML5, CSS, and JavaScript&#8217;s cross-compatibility. For Example, Facebook can be accessed as a mobile app or opened in a browser like \u201cm.facebook.com\u201d.<\/li>\n<li><strong>Application SANDBOX Theory:<\/strong> According to the SANDBOX principle, no two programs running on the same computer can access each other&#8217;s data without permission. They should not interfere with the functionality of other apps, either. It uses Linux user-based security to separate resources for each application and assign a unique user identifier (UID). It means that each program can run under its user and virtual machine (VM), Dalvik or ART, so that each process can run independently of the others.<\/li>\n<\/ul>\n<p><strong> <img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17367 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Sandbox-Theory.png\" alt=\"Sandbox Theory\" width=\"565\" height=\"230\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Sandbox-Theory.png 565w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Sandbox-Theory-300x122.png 300w\" sizes=\"(max-width: 565px) 100vw, 565px\" \/><\/strong><\/p>\n<p style=\"text-align: center\"><strong>Fig: Sandbox Theory<\/strong><\/p>\n<p>Now we can get into our main topic.<\/p>\n<h3><strong>Static Analysis of Android Application:<\/strong><\/h3>\n<p>The static analysis of the android application is the process of source code review of the apk (android application) file. Several reverse engineering tools complete this procedure.<\/p>\n<p><a href=\"https:\/\/www.varutra.com\/category\/reverse-engineering\/\"><strong>Reverse Engineering<\/strong><\/a><strong>:<\/strong> Reverse Engineering decompiles the apk file using different tools like apktool, dex2jar, jd-GUI, and other automation tools like mobSF.<\/p>\n<p>Let us know briefly about one such reverse engineering tool.<\/p>\n<p><strong>APKTOOL:<\/strong> It is a command-line tool used to reverse engineering 3rd party, closed, binary Android apps. It can modify and make changes to the decode resources to the nearly original form and rebuild it.<\/p>\n<p>The command used to decompile the apk file is:<\/p>\n<p><em>apktool d &lt;example.apk&gt;<\/em><\/p>\n<p>The outcome of the above command is mentioned below,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17368 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Output-of-apktool.png\" alt=\"Output of apktool\" width=\"606\" height=\"195\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Output-of-apktool.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Output-of-apktool-300x97.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.1: Output of apktool<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17370 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Output-of-apktool-2.png\" alt=\"Output of apktool 2\" width=\"606\" height=\"214\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Output-of-apktool-2.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Output-of-apktool-2-300x106.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.2: Output of apktool<\/strong><\/p>\n<p>The output of the apktool includes Manifest file, Dexfiles, Smali files, etc., which are not human-readable formats. However, tools like dex2jar and JD-GUI can help to convert those files to human-readable formats.<\/p>\n<p><strong>Android Manifest File<\/strong>: It is an XML file that contains application package names and the main elements of the application like broadcast receivers, services, and content providers. The android manifest file will give us the necessary information about the Android operating system and app store. It also assists in declaring the permissions to other apps that they can access the data.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17371 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Android-Manifest-File.png\" alt=\"Android Manifest File\" width=\"638\" height=\"330\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Android-Manifest-File.png 638w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Android-Manifest-File-300x155.png 300w\" sizes=\"(max-width: 638px) 100vw, 638px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.3: AndroidManifest File<\/strong><\/p>\n<p>To declare manifest file is mandatory:<\/p>\n<ol>\n<li><strong> The app&#8217;s package name:<\/strong>All the android applications will have a package name that uniquely identifies the application on the device and in the application store. The package name will help us check the source code-related issues in the application while doing the static analysis.<\/li>\n<\/ol>\n<p>From the above manifest file, the package name of the diva application is\u00a0<em><strong>\u201cpackage=jakhar.aseem.diva\u201d<\/strong><\/em><\/p>\n<ol>\n<li><strong> The components of the app include<\/strong>\u00a0all activities, services, broadcast receivers, and content providers that are essential components of any android application. Each component will define specific functionality, which describes the capabilities of the device configurations it can handle.<\/li>\n<\/ol>\n<p>Now, let us know some basic information about each android component.<\/p>\n<p><strong>Activity:\u00a0<\/strong>An activity can be described as the screen&#8217;s performance action, or you can say it is a representation of a single screen with a user interface.It is like web pages in web applications. For example, an e-commerce application might have one activity that shows a list of orders, another activity to add products to the cart, and a different activity for Wishlist the products.<\/p>\n<p>Activities in the manifest file are declared as follows,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17372 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Declaration-of-activities-in-the-manifest-file.png\" alt=\"Declaration of activities in the manifest file\" width=\"606\" height=\"110\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Declaration-of-activities-in-the-manifest-file.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Declaration-of-activities-in-the-manifest-file-300x54.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.4: Declaration of activities in the manifest file<\/strong><\/p>\n<p>Any application in the phone\/device can launch the activity if the access to an exported Activity is not restricted. Through this, an attacker can gain complete authorization to the sensitive information of the application. Furthermore, they can even modify the application\u2019s internal state or trick the user into interacting with the victim application.<\/p>\n<p><strong>Services:\u00a0<\/strong>A service usually runs in the backend to carry out operations that don&#8217;t provide user provide. For example, a service is playing music in the background while using a different application.<\/p>\n<p>Services in the manifest files are declared as follows,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17373 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Declaration-of-services-in-the-manifest-file.png\" alt=\"Declaration of services in the manifest file\" width=\"606\" height=\"148\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Declaration-of-services-in-the-manifest-file.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Declaration-of-services-in-the-manifest-file-300x73.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.5: Declaration of services in the manifest file<\/strong><\/p>\n<p>Any application in the phone\/device that can start is bound to the service if access to an exported Service is not restricted. Thus, it allows an attacker\/malicious application to perform unauthorized actions, gain access to sensitive information, or corrupt the internal state of the victim\u2019s application.<\/p>\n<p><strong>Broadcast Receivers:\u00a0<\/strong>Broadcast Receiver is another android component that responds to broadcast messages from another application or the same system. It also can deliver broadcasts to applications that are not running.\u00a0<strong>For example \u2013<\/strong>\u00a0low battery notification is provided to the user. The android developers can use broadcast messages in the application or outside the usual flow.<\/p>\n<p>Broadcast Receivers in the manifest file are declared as follows,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-17377 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Declaration-of-broadcast-receivers-in-the-manifest-file.png\" alt=\"Declaration of broadcast receivers in the manifest file\" width=\"606\" height=\"37\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Declaration-of-broadcast-receivers-in-the-manifest-file.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Declaration-of-broadcast-receivers-in-the-manifest-file-300x18.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.6: Declaration of broadcast receivers in the manifest file<\/strong><\/p>\n<p><a href=\"https:\/\/www.varutra.com\/attacking-android-components-content-providers\/\">Content Providers<\/a><strong>:\u00a0<\/strong>It&#8217;s a component that will allow an application to share data among multiple applications. It hides the details of the database, which is used to read and write private data of the application that is not shared. Therefore, it isn&#8217;t easy to access the data from other applications without content providers.<\/p>\n<p>For example, consider looking for contact details in the contact list or want photos from the gallery provided by Content Provider.<\/p>\n<p>Malicious apps can access sensitive data if the access to Content Provider is not restricted to only limited applications.<\/p>\n<p>All the android components will have an attribute called \u201candroid: exported = true\/false,\u201d and the default value is \u201cfalse\u201d.<\/p>\n<p><strong>android: exported=true:\u00a0<\/strong>This element will decide what application, activity\/service\/content provider will be launched by components of different applications. It can be invoked using the ADB tool.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-17374 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/exportedtrue-content-provider.png\" alt=\"exported=true (content provider)\" width=\"606\" height=\"24\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/exportedtrue-content-provider.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/exportedtrue-content-provider-300x12.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.7: exported=true (content provider)<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17376 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/exportedtrue-service.png\" alt=\"exported=true (service)\" width=\"606\" height=\"165\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/exportedtrue-service.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/exportedtrue-service-300x82.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.8: exported=true (service)<\/strong><\/p>\n<p style=\"text-align: center\"><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-17375\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/exportedtrue-receiver.png\" alt=\"exported=true (receiver)\" width=\"542\" height=\"69\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/exportedtrue-receiver.png 542w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/exportedtrue-receiver-300x38.png 300w\" sizes=\"(max-width: 542px) 100vw, 542px\" \/>\u00a0<\/strong><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.9: exported=true (receiver)<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p>To invoke the activity (<em>which means that we can be able to launch the exported activities without login to the application<\/em>), we can use the following command:<\/p>\n<p>Command: adb shell am &lt;package name&gt;\/. activity name<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17380 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Invoke-the-activity.png\" alt=\"Invoke the activity\" width=\"606\" height=\"251\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Invoke-the-activity.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Invoke-the-activity-300x124.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.10: Invoke the activity<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17379 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Invoke-the-activity-2.png\" alt=\"Invoke the activity 2\" width=\"606\" height=\"195\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Invoke-the-activity-2.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Invoke-the-activity-2-300x97.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.11: Invoke the activity<\/strong><\/p>\n<p><strong>android: exported=false: <\/strong>It means with the same user ID, you can launch the android elements by components of the same applications.<\/p>\n<p><strong>iii. The permissions<\/strong>: The app needs to access protected parts of the system or other applications. It can also declare any permissions that other applications must have if they want to access content from the application. The permissions may include access to the internet, contacts, access to the camera, etc.<\/p>\n<p>Permissions in the manifest file are declared as follows,<\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17382 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Declaration-of-Permissions-in-the-manifest-file.png\" alt=\"Declaration of Permissions in the manifest file\" width=\"606\" height=\"63\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Declaration-of-Permissions-in-the-manifest-file.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Declaration-of-Permissions-in-the-manifest-file-300x31.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.12: Declaration of Permissions in the manifest file<\/strong><\/p>\n<p>We need to check if the application is having dangerous permissions enabled like WRITE and READ External Storage.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17381 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Potentially-Dangerous-Permissions-Enabled.png\" alt=\"Potentially Dangerous Permissions Enabled\" width=\"606\" height=\"39\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Potentially-Dangerous-Permissions-Enabled.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Potentially-Dangerous-Permissions-Enabled-300x19.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.13: Potentially Dangerous Permissions Enabled<\/strong><\/p>\n<ul>\n<li><strong>WRITE_EXTERNAL_STORAGE:\u00a0<\/strong>The application will be able to write arbitrary data in the device&#8217;s external storage, impacting privacy.<\/li>\n<li><strong>READ_EXTERNAL_STORAGE:\u00a0<\/strong>The application will be able to read arbitrary data in the device&#8217;s external storage, affecting privacy.<\/li>\n<\/ul>\n<p>Among all these, there are two essential flags which we need to know in the manifest file, and those are Allow Backup and Debug flags, and the default value of those flags is set to false.<\/p>\n<p><strong>android: allowBackup=&#8221;true&#8221;<\/strong><\/p>\n<p>Backup allows applications to be backed up to the external storage or another device. It means, if a user replaces or wipes their phone, they can restore app settings and application data (sensitive data) though, the attacker can extract backup information directly from an application sandbox without rooting the device.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17384 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/android-allowBackup-true.png\" alt=\"android allowBackup true\" width=\"606\" height=\"77\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/android-allowBackup-true.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/android-allowBackup-true-300x38.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.14: android: allowBackup=&#8221;true&#8221;<\/strong><\/p>\n<p><strong>android: debuggable=&#8221;true&#8221;<\/strong><\/p>\n<p>In case the setting of this flag is true, an attacker can inject their code to carry out this procedure in the backdrop of a vulnerable application process, and the application\u2019s sensitive data can be extracted from the application.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17383 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/android-debuggable-true.png\" alt=\"android debuggable true\" width=\"606\" height=\"78\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/android-debuggable-true.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/android-debuggable-true-300x39.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 1.15: android: debuggable=&#8221;true&#8221;<\/strong><\/p>\n<p><strong>minSDK version: <\/strong>The minSDK version of any android application must be greater than 18. Any application with a value below 18 is insecure and vulnerable to many security flaws, thus impacting the security of the running applications.<\/p>\n<p>&nbsp;<\/p>\n<p>As a pentester, we need to check the following security loopholes in the manifest file:<\/p>\n<ul>\n<li>Check for package name (<strong><em>\u201cpackage=jakhar.aseem.diva\u201d), <\/em><\/strong>which can help perform the source code analysis.<\/li>\n<li>Check for minimum android sdk version (It must be above 18)<\/li>\n<li>Check for allowing back up the flag (It must not set to true)<\/li>\n<li>Check for Debug flag (It must not set to true)<\/li>\n<li>Check for Dangerous permissions in use, such as Read\/Write External Permissions.<\/li>\n<li>Check for unnecessary permissions if the application does not require them.<\/li>\n<li>Check for Exported Android Components such as Activity, Content Provider, Shared Preferences, and Broadcast Receivers are set to TRUE (Exported = True), Usually not set to True.<\/li>\n<li>Check for API keys, access tokens, and any sensitive information.<\/li>\n<\/ul>\n<p><strong>2.DEX2JAR:<\/strong><\/p>\n<p>Dex2Jar is a command-line reverse engineering tool that can be used to covert dex files to jar files. The output of the apktoolresults in \u201cclasses.dex\u201d files which are not human-readable or understandable. The\u00a0classes.dex\u00a0file is a\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Dalvik_%28software%29\">Dalvik Executable file<\/a>,\u00a0and each android application must have this file.In addition, this file contains the Java libraries which the application can use.<\/p>\n<p>Command: d2j-dex2jar classes.dex<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17385 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Converting-dex-files-to-jar-files-using-dex2jar-tool.png\" alt=\"Converting dex files to jar files using dex2jar tool\" width=\"606\" height=\"122\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Converting-dex-files-to-jar-files-using-dex2jar-tool.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Converting-dex-files-to-jar-files-using-dex2jar-tool-300x60.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 2.0: Converting dex files to jar files using dex2jar tool<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17386 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Classes.dex-file-is-converted-to-classes-dex2jar.png\" alt=\"Classes.dex file is converted to classes-dex2jar\" width=\"606\" height=\"100\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Classes.dex-file-is-converted-to-classes-dex2jar.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Classes.dex-file-is-converted-to-classes-dex2jar-300x50.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 2.1: Classes.dex file is converted to classes-dex2jar<\/strong><\/p>\n<p><strong>3.JD-GUI: <\/strong>JD-GUI is a standalone graphical utility tool that displays the Java source code of \u201c.class\u201d files. For immediate access to fields and methods, we will have to search for reconstructed code with JD-GUI. We can check any sensitive information (<em>access tokens, api keys, subscription keys, usernames, passwords, etc.)<\/em> stored in the java files.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17387 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/Output-of-JD-GUI.png\" alt=\"Output of JD-GUI\" width=\"407\" height=\"381\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Output-of-JD-GUI.png 407w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/Output-of-JD-GUI-300x281.png 300w\" sizes=\"(max-width: 407px) 100vw, 407px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 3.0: Output of JD-GUI<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17388 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/User-Credentials-and-API-Key-in-Source-Code.png\" alt=\"User Credentials and API Key in Source Code\" width=\"606\" height=\"335\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/User-Credentials-and-API-Key-in-Source-Code.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/User-Credentials-and-API-Key-in-Source-Code-300x166.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/p>\n<p style=\"text-align: center\"><strong>Fig 3.1: User Credentials and API Key in Source Code<\/strong><\/p>\n<p style=\"text-align: center\"><strong>\u00a0<\/strong><strong><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17389 aligncenter\" src=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/User-credentials-are-storing-in-the-database.png\" alt=\"User credentials are storing in the database\" width=\"606\" height=\"298\" srcset=\"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/User-credentials-are-storing-in-the-database.png 606w, https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/User-credentials-are-storing-in-the-database-300x148.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/strong><\/p>\n<p style=\"text-align: center\"><strong>Fig 3.2: User credentials are storing in the database<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p>It was a detailed overview of the static analysis of an android application and the tools used for reverse-engineering the application.<\/p>\n<p>Get to know various mobile<a href=\"https:\/\/www.varutra.com\/mobile-applications-security\/\">\u00a0security<\/a> and <a href=\"https:\/\/www.varutra.com\/application-security\/\">application security<\/a> services that can help in protecting your private data.<\/p>\n<p>Author,<\/p>\n<p><strong>Vamshi Krishna<\/strong><\/p>\n<p>Attack &amp; PenTest Team<\/p>\n<p>Varutra Consulting Pvt. Ltd.<\/p>","protected":false},"excerpt":{"rendered":"<p>Android applications are now an integral part of our lives, thanks to the excessive use of mobile phones. However, many users are unaware of their&#8230;<\/p>\n","protected":false},"author":4,"featured_media":17363,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[51,264,262],"tags":[527,526,528,450,525],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO Pro 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Static Analysis in Android Application means analyzing the application by running it on the source code, against a specific set of rules, before program.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"kalpblogger\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO Pro (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Varutra Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Static Analysis in Android Application by Source Code\" \/>\n\t\t<meta property=\"og:description\" content=\"Static Analysis in Android Application means analyzing the application by running it on the source code, against a specific set of rules, before program.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t\t<meta property=\"article:section\" content=\"Android Security\" \/>\n\t\t<meta property=\"article:tag\" content=\"andorid penetration testing\" \/>\n\t\t<meta property=\"article:tag\" content=\"android application\" \/>\n\t\t<meta property=\"article:tag\" content=\"android application security\" \/>\n\t\t<meta property=\"article:tag\" content=\"android security\" \/>\n\t\t<meta property=\"article:tag\" content=\"static analysis\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-10-07T07:43:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-12-02T06:28:20+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Static Analysis in Android Application by Source Code\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Static Analysis in Android Application means analyzing the application by running it on the source code, against a specific set of rules, before program.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png\" \/>\n\t\t<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t\t<meta name=\"twitter:data1\" content=\"kalpblogger\" \/>\n\t\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#article\",\"name\":\"Static Analysis in Android Application by Source Code\",\"headline\":\"STATIC ANALYSIS OF ANDROID APPLICATION\",\"author\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/author\\\/kalpblogger\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png\",\"width\":1200,\"height\":627,\"caption\":\"STATIC ANALYSIS OF ANDROID APPLICATION\"},\"datePublished\":\"2021-10-07T13:13:48+05:30\",\"dateModified\":\"2022-12-02T11:58:20+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#webpage\"},\"articleSection\":\"Android Security, Mobile Application Security, Mobile Device Management, andorid penetration testing, ANDROID APPLICATION, android application security, android security, STATIC ANALYSIS\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/category\\\/android-security\\\/#listItem\",\"name\":\"Android Security\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/category\\\/android-security\\\/#listItem\",\"position\":2,\"name\":\"Android Security\",\"item\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/category\\\/android-security\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#listItem\",\"name\":\"STATIC ANALYSIS OF ANDROID APPLICATION\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#listItem\",\"position\":3,\"name\":\"STATIC ANALYSIS OF ANDROID APPLICATION\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/category\\\/android-security\\\/#listItem\",\"name\":\"Android Security\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/#organization\",\"name\":\"Varutra\",\"description\":\"Secure your digital world with our Cybersecurity services.\",\"url\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.varutra.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/Varutra-Found-e1612984024606.jpg\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#organizationLogo\"},\"image\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/author\\\/kalpblogger\\\/#author\",\"url\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/author\\\/kalpblogger\\\/\",\"name\":\"kalpblogger\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5e96a9b330da7c941c1e39217a2fbe38?s=96&d=mm&r=g\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#webpage\",\"url\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/\",\"name\":\"Static Analysis in Android Application by Source Code\",\"description\":\"Static Analysis in Android Application means analyzing the application by running it on the source code, against a specific set of rules, before program.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/author\\\/kalpblogger\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/author\\\/kalpblogger\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#mainImage\",\"width\":1200,\"height\":627,\"caption\":\"STATIC ANALYSIS OF ANDROID APPLICATION\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/static-analysis-of-android-application\\\/#mainImage\"},\"datePublished\":\"2021-10-07T13:13:48+05:30\",\"dateModified\":\"2022-12-02T11:58:20+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/#website\",\"url\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/\",\"name\":\"Varutra Consulting\",\"description\":\"Secure your digital world with our Cybersecurity services.\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.varutra.com\\\/varutravrt3\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO Pro -->\r\n\t\t<title>Static Analysis in Android Application by Source Code<\/title>\n\n","aioseo_head_json":{"title":"Static Analysis in Android Application by Source Code","description":"Static Analysis in Android Application means analyzing the application by running it on the source code, against a specific set of rules, before program.","canonical_url":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#article","name":"Static Analysis in Android Application by Source Code","headline":"STATIC ANALYSIS OF ANDROID APPLICATION","author":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/author\/kalpblogger\/#author"},"publisher":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png","width":1200,"height":627,"caption":"STATIC ANALYSIS OF ANDROID APPLICATION"},"datePublished":"2021-10-07T13:13:48+05:30","dateModified":"2022-12-02T11:58:20+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#webpage"},"isPartOf":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#webpage"},"articleSection":"Android Security, Mobile Application Security, Mobile Device Management, andorid penetration testing, ANDROID APPLICATION, android application security, android security, STATIC ANALYSIS"},{"@type":"BreadcrumbList","@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.varutra.com\/varutravrt3#listItem","position":1,"name":"Home","item":"https:\/\/www.varutra.com\/varutravrt3","nextItem":{"@type":"ListItem","@id":"https:\/\/www.varutra.com\/varutravrt3\/category\/android-security\/#listItem","name":"Android Security"}},{"@type":"ListItem","@id":"https:\/\/www.varutra.com\/varutravrt3\/category\/android-security\/#listItem","position":2,"name":"Android Security","item":"https:\/\/www.varutra.com\/varutravrt3\/category\/android-security\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#listItem","name":"STATIC ANALYSIS OF ANDROID APPLICATION"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.varutra.com\/varutravrt3#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#listItem","position":3,"name":"STATIC ANALYSIS OF ANDROID APPLICATION","previousItem":{"@type":"ListItem","@id":"https:\/\/www.varutra.com\/varutravrt3\/category\/android-security\/#listItem","name":"Android Security"}}]},{"@type":"Organization","@id":"https:\/\/www.varutra.com\/varutravrt3\/#organization","name":"Varutra","description":"Secure your digital world with our Cybersecurity services.","url":"https:\/\/www.varutra.com\/varutravrt3\/","logo":{"@type":"ImageObject","url":"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/11\/Varutra-Found-e1612984024606.jpg","@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#organizationLogo"},"image":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/www.varutra.com\/varutravrt3\/author\/kalpblogger\/#author","url":"https:\/\/www.varutra.com\/varutravrt3\/author\/kalpblogger\/","name":"kalpblogger","image":{"@type":"ImageObject","url":"https:\/\/secure.gravatar.com\/avatar\/5e96a9b330da7c941c1e39217a2fbe38?s=96&d=mm&r=g"}},{"@type":"WebPage","@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#webpage","url":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/","name":"Static Analysis in Android Application by Source Code","description":"Static Analysis in Android Application means analyzing the application by running it on the source code, against a specific set of rules, before program.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/#website"},"breadcrumb":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#breadcrumblist"},"author":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/author\/kalpblogger\/#author"},"creator":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/author\/kalpblogger\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.varutra.com\/varutravrt3\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png","@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#mainImage","width":1200,"height":627,"caption":"STATIC ANALYSIS OF ANDROID APPLICATION"},"primaryImageOfPage":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/#mainImage"},"datePublished":"2021-10-07T13:13:48+05:30","dateModified":"2022-12-02T11:58:20+05:30"},{"@type":"WebSite","@id":"https:\/\/www.varutra.com\/varutravrt3\/#website","url":"https:\/\/www.varutra.com\/varutravrt3\/","name":"Varutra Consulting","description":"Secure your digital world with our Cybersecurity services.","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.varutra.com\/varutravrt3\/#organization"}}]},"og:locale":"en_US","og:site_name":"Varutra Consulting","og:type":"article","og:title":"Static Analysis in Android Application by Source Code","og:description":"Static Analysis in Android Application means analyzing the application by running it on the source code, against a specific set of rules, before program.","og:url":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/","og:image":"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png","og:image:secure_url":"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png","og:image:width":"1200","og:image:height":"627","article:section":"Android Security","article:tag":["andorid penetration testing","android application","android application security","android security","static analysis"],"article:published_time":"2021-10-07T07:43:48+00:00","article:modified_time":"2022-12-02T06:28:20+00:00","twitter:card":"summary_large_image","twitter:title":"Static Analysis in Android Application by Source Code","twitter:description":"Static Analysis in Android Application means analyzing the application by running it on the source code, against a specific set of rules, before program.","twitter:image":"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png","twitter:label1":"Written by","twitter:data1":"kalpblogger","twitter:label2":"Est. reading time","twitter:data2":"9 minutes"},"aioseo_meta_data":{"post_id":"17362","title":"Static Analysis in Android Application by Source Code","description":"Static Analysis in Android Application means analyzing the application by running it on the source code, against a specific set of rules, before program.","keywords":[],"keyphrases":{"focus":{"keyphrase":"Static Analysis","analysis":{"keyphraseInTitle":{"title":"Focus keyphrase in SEO title","description":"Focus keyphrase found in SEO title.","score":9,"maxScore":9,"error":0},"keyphraseInDescription":{"title":"Focus keyphrase in meta description","description":"Focus keyphrase found in meta description.","score":9,"maxScore":9,"error":0},"keyphraseLength":{"title":"Focus keyphrase length","description":"Good job!","score":9,"maxScore":9,"error":0,"length":2},"keyphraseInURL":{"title":"Focus keyphrase in URL","description":"Focus keyphrase used in the URL.","score":5,"maxScore":5,"error":0},"keyphraseInIntroduction":{"title":"Focus keyphrase in introduction","description":"Your Focus keyphrase does not appear in the first paragraph. Make sure the topic is clear immediately.","score":3,"maxScore":9,"error":1},"keyphraseInSubHeadings":{"title":"Focus keyphrase in Subheadings","description":"Your H2 or H3 subheading reflects the topic of your copy. Good job!","score":9,"maxScore":9,"error":0},"keyphraseInImageAlt":{"title":"Focus keyphrase in image alt attributes","description":"Focus keyphrase not found in image alt attribute(s). Add an image with your Focus keyphrase as alt text.","score":3,"maxScore":9,"error":1}},"score":80},"additional":[{"keyphrase":"ANDROID APPLICATION","score":67,"analysis":{"keyphraseInDescription":{"title":"Keyphrase in meta description","description":"Keyphrase found in meta description.","score":9,"maxScore":9,"error":0},"keyphraseLength":{"title":"Keyphrase length","description":"Good job!","score":9,"maxScore":9,"error":0,"length":2},"keyphraseInIntroduction":{"title":"Keyphrase in introduction","description":"Your Keyphrase does not appear in the first paragraph. Make sure the topic is clear immediately.","score":3,"maxScore":9,"error":1},"keyphraseInImageAlt":{"title":"Keyphrase in image alt attributes","description":"Keyphrase not found in image alt attribute(s). Add an image with your Keyphrase as alt text.","score":3,"maxScore":9,"error":1}}},{"keyphrase":"Source Code","score":83,"analysis":{"keyphraseInDescription":{"title":"Keyphrase in meta description","description":"Keyphrase found in meta description.","score":9,"maxScore":9,"error":0},"keyphraseLength":{"title":"Keyphrase length","description":"Good job!","score":9,"maxScore":9,"error":0,"length":2},"keyphraseInIntroduction":{"title":"Keyphrase in introduction","description":"Your Keyphrase does not appear in the first paragraph. Make sure the topic is clear immediately.","score":3,"maxScore":9,"error":1},"keyphraseInImageAlt":{"title":"Keyphrase in image alt attributes","description":"Keyphrase found in image alt attribute(s).","score":9,"maxScore":9,"error":0}}}]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"featured","og_image_url":"https:\/\/www.varutra.com\/wp-content\/uploads\/2021\/10\/STATIC-ANALYSIS-OF-ANDROID-APPLICATION.png","og_image_width":"1200","og_image_height":"627","og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":"Android Security","og_article_tags":[],"twitter_use_og":true,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":"{\"article\":{\"articleType\":\"BlogPosting\"},\"course\":{\"name\":\"\",\"description\":\"\",\"provider\":\"\"},\"faq\":{\"pages\":[]},\"product\":{\"reviews\":[]},\"recipe\":{\"ingredients\":[],\"instructions\":[],\"keywords\":[]},\"software\":{\"reviews\":[],\"operatingSystems\":[]},\"webPage\":{\"webPageType\":\"WebPage\"}}","pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"reviewed_by":null,"open_ai":null,"created":"2021-10-27 15:10:46","updated":"2026-05-24 09:58:48","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":"2026-05-22 13:51:01"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/www.varutra.com\/varutravrt3\" title=\"Home\">Home<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/www.varutra.com\/varutravrt3\/category\/android-security\/\" title=\"Android Security\">Android Security<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\tSTATIC ANALYSIS OF ANDROID APPLICATION\n<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.varutra.com\/varutravrt3"},{"label":"Android Security","link":"https:\/\/www.varutra.com\/varutravrt3\/category\/android-security\/"},{"label":"STATIC ANALYSIS OF ANDROID APPLICATION","link":"https:\/\/www.varutra.com\/varutravrt3\/static-analysis-of-android-application\/"}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/posts\/17362"}],"collection":[{"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/comments?post=17362"}],"version-history":[{"count":5,"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/posts\/17362\/revisions"}],"predecessor-version":[{"id":20240,"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/posts\/17362\/revisions\/20240"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/media\/17363"}],"wp:attachment":[{"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/media?parent=17362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/categories?post=17362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.varutra.com\/varutravrt3\/wp-json\/wp\/v2\/tags?post=17362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}