├── VuldroidApp Code
├── app
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── drawable
│ │ │ │ │ ├── back.jpg
│ │ │ │ │ ├── blog.png
│ │ │ │ │ ├── menu.png
│ │ │ │ │ ├── note.jpg
│ │ │ │ │ ├── sec.jpg
│ │ │ │ │ ├── poster.png
│ │ │ │ │ ├── shadow.png
│ │ │ │ │ ├── videos.jpg
│ │ │ │ │ ├── youlogo.jpg
│ │ │ │ │ ├── material.jpg
│ │ │ │ │ ├── rootcheck.png
│ │ │ │ │ ├── round_bk2.png
│ │ │ │ │ ├── round_bk3.jpg
│ │ │ │ │ ├── round_bk5.png
│ │ │ │ │ ├── secretss.jpg
│ │ │ │ │ ├── security.png
│ │ │ │ │ ├── emailaddress.png
│ │ │ │ │ ├── whitecircle.xml
│ │ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── drawable-hdpi
│ │ │ │ │ └── menu.png
│ │ │ │ ├── drawable-mdpi
│ │ │ │ │ └── menu.png
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ │ └── menu.png
│ │ │ │ ├── drawable-xxhdpi
│ │ │ │ │ └── menu.png
│ │ │ │ ├── drawable-xxxhdpi
│ │ │ │ │ └── menu.png
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ ├── xml
│ │ │ │ │ └── provider_paths.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── values
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── preloaded_fonts.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── styles.xml
│ │ │ │ │ └── font_certs.xml
│ │ │ │ ├── font
│ │ │ │ │ ├── baloo.xml
│ │ │ │ │ ├── muli_bold.xml
│ │ │ │ │ ├── muli_extralight.xml
│ │ │ │ │ └── muli_light_italic.xml
│ │ │ │ ├── anim
│ │ │ │ │ ├── bottom_anim.xml
│ │ │ │ │ └── side_anim.xml
│ │ │ │ ├── layout
│ │ │ │ │ ├── activity_arbifile.xml
│ │ │ │ │ ├── activity_youtubeviewer.xml
│ │ │ │ │ ├── activity_blogsviewer.xml
│ │ │ │ │ ├── activity_email_viewer.xml
│ │ │ │ │ ├── activity_root_detection.xml
│ │ │ │ │ ├── activity_forgetpassword.xml
│ │ │ │ │ ├── activity_send_msgto_app.xml
│ │ │ │ │ ├── splash_screen.xml
│ │ │ │ │ ├── activity_notesviewer.xml
│ │ │ │ │ ├── activity_userlogin.xml
│ │ │ │ │ ├── activity_requestpassword.xml
│ │ │ │ │ ├── activity_signup.xml
│ │ │ │ │ ├── activity_login.xml
│ │ │ │ │ └── activity_dashboard.xml
│ │ │ │ └── drawable-v24
│ │ │ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── vuldroid
│ │ │ │ │ └── application
│ │ │ │ │ ├── EmailViewer.java
│ │ │ │ │ ├── MyReceiver.java
│ │ │ │ │ ├── RoutingActivity.java
│ │ │ │ │ ├── SendMsgtoApp.java
│ │ │ │ │ ├── ForgetPassword.java
│ │ │ │ │ ├── RequestPassword.java
│ │ │ │ │ ├── RootDetection.java
│ │ │ │ │ ├── YoutubeViewer.java
│ │ │ │ │ ├── UserLogin.java
│ │ │ │ │ ├── BlogsViewer.java
│ │ │ │ │ ├── Dashboard.java
│ │ │ │ │ ├── Signup.java
│ │ │ │ │ ├── Login.java
│ │ │ │ │ ├── SplashScreen.java
│ │ │ │ │ └── NotesViewer.java
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── vuldroid
│ │ │ │ └── application
│ │ │ │ └── ExampleUnitTest.java
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── vuldroid
│ │ │ └── application
│ │ │ └── ExampleInstrumentedTest.java
│ ├── proguard-rules.pro
│ ├── google-services.json
│ └── build.gradle
├── settings.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── local.properties
├── build.gradle
├── gradle.properties
├── gradlew.bat
└── gradlew
├── images
├── logo.png
├── screen1.png
└── screen3.png
├── Apks
├── Vuldroid.apk
├── Recievemessage.apk
└── VuldroidExploit.apk
├── LICENSE.md
└── README.md
/VuldroidApp Code/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/VuldroidApp Code/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name = "vuldroid"
--------------------------------------------------------------------------------
/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/images/logo.png
--------------------------------------------------------------------------------
/Apks/Vuldroid.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/Apks/Vuldroid.apk
--------------------------------------------------------------------------------
/images/screen1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/images/screen1.png
--------------------------------------------------------------------------------
/images/screen3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/images/screen3.png
--------------------------------------------------------------------------------
/Apks/Recievemessage.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/Apks/Recievemessage.apk
--------------------------------------------------------------------------------
/Apks/VuldroidExploit.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/Apks/VuldroidExploit.apk
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/back.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/back.jpg
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/blog.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/menu.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/note.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/note.jpg
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/sec.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/sec.jpg
--------------------------------------------------------------------------------
/VuldroidApp Code/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/poster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/poster.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/shadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/shadow.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/videos.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/videos.jpg
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/youlogo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/youlogo.jpg
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable-hdpi/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable-hdpi/menu.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable-mdpi/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable-mdpi/menu.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/material.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/material.jpg
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/rootcheck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/rootcheck.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/round_bk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/round_bk2.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/round_bk3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/round_bk3.jpg
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/round_bk5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/round_bk5.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/secretss.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/secretss.jpg
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/security.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/security.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable-xhdpi/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable-xhdpi/menu.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable-xxhdpi/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable-xxhdpi/menu.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable-xxxhdpi/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable-xxxhdpi/menu.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/emailaddress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/drawable/emailaddress.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaiswalakshansh/Vuldroid/HEAD/VuldroidApp Code/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/whitecircle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/VuldroidApp Code/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue Aug 25 09:17:33 IST 2020
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
7 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFC400
4 | #FF9100
5 | #000000
6 | #f2f5f8
7 | #fff
8 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/values/preloaded_fonts.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - @font/baloo
5 | - @font/muli_bold
6 | - @font/muli_extralight
7 | - @font/muli_light_italic
8 |
9 |
10 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | vuldroid
3 | Made with ❤️ by Akshansh
4 | Welcome To Vuldroid, Lets Begin By Signup and Login
5 | How to Use App
6 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/font/baloo.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/anim/bottom_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/anim/side_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
13 |
14 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/font/muli_bold.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/font/muli_extralight.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/font/muli_light_italic.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/VuldroidApp Code/local.properties:
--------------------------------------------------------------------------------
1 | ## This file is automatically generated by Android Studio.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file should *NOT* be checked into Version Control Systems,
5 | # as it contains information specific to your local configuration.
6 | #
7 | # Location of the SDK. This is only used by Gradle.
8 | # For customization when using a Version Control System, please read the
9 | # header note.
10 | sdk.dir=/root/Android/Sdk
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_arbifile.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/test/java/com/vuldroid/application/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_youtubeviewer.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
--------------------------------------------------------------------------------
/VuldroidApp Code/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | buildscript {
3 | repositories {
4 | google()
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:4.0.2'
9 | classpath 'com.google.gms:google-services:4.3.3'
10 |
11 | // NOTE: Do not place your application dependencies here; they belong
12 | // in the individual module build.gradle files
13 | }
14 | }
15 |
16 | allprojects {
17 | repositories {
18 | google()
19 | jcenter()
20 | }
21 | }
22 |
23 | task clean(type: Delete) {
24 | delete rootProject.buildDir
25 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_blogsviewer.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/EmailViewer.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.content.Intent;
6 | import android.content.IntentFilter;
7 | import android.os.Bundle;
8 |
9 | public class EmailViewer extends AppCompatActivity {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | setContentView(R.layout.activity_email_viewer);
15 | MyReceiver myReceiver =new MyReceiver();
16 | IntentFilter intentFilter =new IntentFilter();
17 | intentFilter.addAction("com.example.Broadcast");
18 | registerReceiver(myReceiver,intentFilter);
19 | Intent i =new Intent();
20 | i.setAction("com.example.Broadcast");
21 | sendBroadcast(i);
22 | }
23 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/MyReceiver.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import android.content.BroadcastReceiver;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.os.Bundle;
7 | import android.widget.Toast;
8 |
9 | import com.google.firebase.auth.FirebaseAuth;
10 | import com.google.firebase.auth.FirebaseUser;
11 |
12 | public class MyReceiver extends BroadcastReceiver {
13 |
14 | @Override
15 | public void onReceive(Context context, Intent intent) {
16 | FirebaseAuth firebaseAuth =FirebaseAuth.getInstance();
17 | FirebaseUser firebaseUser =firebaseAuth.getCurrentUser();
18 | String emailadd=firebaseUser.getEmail();
19 | if (intent.getAction().equals("com.example.Broadcast"))
20 |
21 | Toast.makeText(context, emailadd,Toast.LENGTH_LONG).show();
22 | }
23 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/RoutingActivity.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.content.ComponentName;
6 | import android.content.Intent;
7 | import android.os.Bundle;
8 |
9 | public class RoutingActivity extends AppCompatActivity {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | setContentView(R.layout.activity_arbifile);
15 | }
16 |
17 | @Override
18 | protected void onResume() {
19 | super.onResume();
20 |
21 | handleIntentExtras(getIntent()); // anything can be passed to getIntent() here
22 | }
23 |
24 | private void handleIntentExtras(Intent intent) {
25 |
26 | Intent routerintent = intent.getParcelableExtra("router_component");
27 | startActivity(routerintent);
28 | }
29 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/androidTest/java/com/vuldroid/application/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.vuldroid.application", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/SendMsgtoApp.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.content.Intent;
6 | import android.os.Bundle;
7 | import android.view.View;
8 | import android.widget.EditText;
9 |
10 | public class SendMsgtoApp extends AppCompatActivity {
11 | EditText ext;
12 | public void sendmesage(View v){
13 | Intent intent =new Intent();
14 | ext=findViewById(R.id.ed1);
15 | String valu =ext.getText().toString();
16 | intent.putExtra("secret",valu);
17 | intent.setAction("com.app.innocent.recievemsg");
18 | intent.addCategory("android.intent.category.DEFAULT");
19 | startActivity(intent);
20 |
21 | }
22 |
23 | @Override
24 | protected void onCreate(Bundle savedInstanceState) {
25 | super.onCreate(savedInstanceState);
26 | setContentView(R.layout.activity_send_msgto_app);
27 | }
28 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_email_viewer.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
21 |
22 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_root_detection.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
22 |
23 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Rewanth Cool
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/VuldroidApp Code/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx2048m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app"s APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Automatically convert third-party libraries to use AndroidX
19 | android.enableJetifier=true
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/ForgetPassword.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.content.Intent;
6 | import android.net.Uri;
7 | import android.os.Bundle;
8 | import android.view.View;
9 | import android.webkit.WebChromeClient;
10 | import android.webkit.WebSettings;
11 | import android.webkit.WebView;
12 |
13 | public class ForgetPassword extends AppCompatActivity {
14 |
15 | @Override
16 | protected void onCreate(Bundle savedInstanceState) {
17 | super.onCreate(savedInstanceState);
18 | setContentView(R.layout.activity_forgetpassword);
19 | Intent intent = getIntent();
20 | Uri data= intent.getData();
21 | WebView fireb =(WebView) findViewById(R.id.webv);
22 | WebSettings firebs =fireb.getSettings();
23 | firebs.setJavaScriptEnabled(true);
24 | fireb.setWebChromeClient(new WebChromeClient());
25 | fireb.loadUrl(data.toString());
26 | }
27 |
28 | public void dashboard(View view){
29 | Intent into =new Intent(ForgetPassword.this, UserLogin.class);
30 | startActivity(into);
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_forgetpassword.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
14 |
21 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/google-services.json:
--------------------------------------------------------------------------------
1 | {
2 | "project_info": {
3 | "project_number": "532379372471",
4 | "firebase_url": "https://vuldroid-app.firebaseio.com",
5 | "project_id": "vuldroid-app",
6 | "storage_bucket": "vuldroid-app.appspot.com"
7 | },
8 | "client": [
9 | {
10 | "client_info": {
11 | "mobilesdk_app_id": "1:532379372471:android:b5691c4c4de28983327632",
12 | "android_client_info": {
13 | "package_name": "com.vuldroid.application"
14 | }
15 | },
16 | "oauth_client": [
17 | {
18 | "client_id": "532379372471-8hlstagdlqafiarpcluuaqctapvs31jb.apps.googleusercontent.com",
19 | "client_type": 3
20 | }
21 | ],
22 | "api_key": [
23 | {
24 | "current_key": "AIzaSyBIc8iRsAPKZR_ZDQoV7HiuZoDv5K1by_Y"
25 | }
26 | ],
27 | "services": {
28 | "appinvite_service": {
29 | "other_platform_oauth_client": [
30 | {
31 | "client_id": "532379372471-8hlstagdlqafiarpcluuaqctapvs31jb.apps.googleusercontent.com",
32 | "client_type": 3
33 | }
34 | ]
35 | }
36 | }
37 | }
38 | ],
39 | "configuration_version": "1"
40 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 | apply plugin: 'com.google.gms.google-services'
3 |
4 | android {
5 | compileSdkVersion 29
6 | buildToolsVersion "29.0.3"
7 |
8 | defaultConfig {
9 | applicationId "com.vuldroid.application"
10 | minSdkVersion 21
11 | targetSdkVersion 29
12 | versionCode 1
13 | versionName "1.0"
14 |
15 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16 | }
17 |
18 | buildTypes {
19 | release {
20 | minifyEnabled false
21 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
22 | }
23 | }
24 | }
25 |
26 | dependencies {
27 | implementation fileTree(dir: "libs", include: ["*.jar"])
28 | implementation 'androidx.appcompat:appcompat:1.2.0'
29 | implementation 'com.karumi:dexter:6.2.2'
30 | implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
31 | implementation 'com.google.firebase:firebase-auth:19.3.2'
32 | testImplementation 'junit:junit:4.12'
33 | androidTestImplementation 'androidx.test.ext:junit:1.1.1'
34 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
35 | implementation 'androidx.cardview:cardview:1.0.0'
36 | implementation 'com.google.android.material:material:1.1.0'
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_send_msgto_app.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
18 |
19 |
20 |
28 |
29 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/splash_screen.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
21 |
22 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable-v24/ic_launcher_foreground.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
15 |
18 |
21 |
22 |
23 |
24 |
30 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/RequestPassword.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.annotation.NonNull;
4 | import androidx.appcompat.app.AppCompatActivity;
5 |
6 | import android.content.Intent;
7 | import android.os.Bundle;
8 | import android.view.View;
9 | import android.widget.Button;
10 | import android.widget.EditText;
11 | import android.widget.Toast;
12 |
13 | import com.google.android.gms.tasks.OnCompleteListener;
14 | import com.google.android.gms.tasks.Task;
15 | import com.google.firebase.auth.FirebaseAuth;
16 |
17 | public class RequestPassword extends AppCompatActivity {
18 | FirebaseAuth firebaseAuth;
19 | EditText useremail;
20 | Button passreset;
21 | public void forgets(View view){
22 | firebaseAuth=FirebaseAuth.getInstance();
23 | firebaseAuth.sendPasswordResetEmail(useremail.getText().toString()).addOnCompleteListener(new OnCompleteListener() {
24 | @Override
25 | public void onComplete(@NonNull Task task) {
26 | if (task.isSuccessful()) {
27 | Toast.makeText(RequestPassword.this,"Email sent, Open email app",Toast.LENGTH_LONG).show();
28 | Intent intent=new Intent(RequestPassword.this, UserLogin.class);
29 | startActivity(intent);
30 | }
31 | }
32 | });
33 | }
34 |
35 | public void loginmenu(View view){
36 | Intent into =new Intent(RequestPassword.this, UserLogin.class);
37 | startActivity(into);
38 | }
39 |
40 | @Override
41 | protected void onCreate(Bundle savedInstanceState) {
42 | super.onCreate(savedInstanceState);
43 | setContentView(R.layout.activity_requestpassword);
44 | useremail = findViewById(R.id.forgotemail_editText);
45 | passreset =findViewById(R.id.forgotfirebase);
46 | }
47 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/RootDetection.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.os.Bundle;
6 | import android.view.WindowManager;
7 | import android.widget.TextView;
8 |
9 | import java.io.BufferedReader;
10 | import java.io.InputStreamReader;
11 |
12 | public class RootDetection extends AppCompatActivity {
13 |
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
18 | setContentView(R.layout.activity_root_detection);
19 | if (getIntent().hasExtra("command")) {
20 | try {
21 | Process process=Runtime.getRuntime().exec(getIntent().getStringExtra("command"));
22 | BufferedReader bufferedReader= new BufferedReader(new InputStreamReader(process.getInputStream()));
23 | StringBuilder log=new StringBuilder();
24 | String line;
25 | while ((line = bufferedReader.readLine()) != null) {
26 | log.append(line+"\n");
27 | }
28 | TextView t1=findViewById(R.id.roottext);
29 | t1.setText(log.toString());
30 | }
31 |
32 | catch (Exception e) {
33 | TextView t1=findViewById(R.id.roottext);
34 | t1.setText("Device is ok rooted");
35 | }
36 | }
37 | else{
38 | try {
39 | Process process=Runtime.getRuntime().exec("su");
40 | TextView t1=findViewById(R.id.roottext);
41 | t1.setText("Device is rooted");
42 | }
43 |
44 | catch (Exception e) {
45 | TextView t1=findViewById(R.id.roottext);
46 | t1.setText("Device is not rooted");
47 | }}
48 | }
49 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/YoutubeViewer.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.app.Activity;
6 | import android.os.Bundle;
7 | import android.view.WindowManager;
8 | import android.webkit.WebChromeClient;
9 | import android.webkit.WebSettings;
10 | import android.webkit.WebView;
11 | import android.webkit.WebViewClient;
12 |
13 | public class YoutubeViewer extends AppCompatActivity {
14 |
15 | @Override
16 | protected void onCreate(Bundle savedInstanceState) {
17 | super.onCreate(savedInstanceState);
18 | getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
19 | setContentView(R.layout.activity_youtubeviewer);
20 | String lods = "https://youtube.com";
21 | WebView vulnerable =(WebView) findViewById(R.id.vulweb);
22 | WebSettings webSettings = vulnerable.getSettings();
23 | webSettings.setAllowFileAccess(true);
24 | webSettings.setJavaScriptEnabled(true);
25 | webSettings.setAllowFileAccessFromFileURLs(true);
26 | webSettings.setAllowUniversalAccessFromFileURLs(true);
27 | vulnerable.setWebChromeClient(new WebChromeClient());
28 | WebViewClientImpl webViewClient = new WebViewClientImpl(this);
29 | vulnerable.setWebViewClient(webViewClient);
30 | if ((getIntent() != null) || getIntent().hasExtra("intent_url")) {
31 | vulnerable.loadUrl(getIntent().getStringExtra("intent_url"));
32 | }
33 | else{vulnerable.loadUrl(lods);}
34 | }
35 | public class WebViewClientImpl extends WebViewClient {
36 |
37 | private Activity activity = null;
38 |
39 | public WebViewClientImpl(Activity activity) {
40 | this.activity = activity;
41 | }
42 |
43 | @Override
44 | public boolean shouldOverrideUrlLoading(WebView webView, String url) {
45 | return false;
46 |
47 | }
48 |
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Vuldroid
3 |
4 |  
5 |
6 | Vuldroid is a Vulnerable Android Application made with security issues in order to demonstrate how they can occur in code.
7 |
8 |
9 | 

10 |
11 |
12 |
13 |
14 |
15 | ## Vulnerabilities Covered:
16 | - Code Execution via Malicious App
17 | - Steal Files via Webview using XHR request
18 | - Steal Files using Fileprovider via Intents
19 | - Steal Password ResetTokens/MagicLoginLinks
20 | - Webview Xss via Exported Activity
21 | - Webview Xss via DeepLink
22 | - Intent Sniffing Between Two Applications
23 | - Reading User Email via Broadcasts
24 |
25 | ## To Get started:
26 | - Install the APK from the [repository](https://github.com/jaiswalakshansh/Vuldroid/blob/master/Apks/Vuldroid.apk?raw=true) and play around
27 | - Find the areas where you think this can be exploited
28 | - I have also written a [blog](https://medium.com/@akshanshjaiswal/vuldroid-app-walkthrough-8f8e4511cad5?sk=45daf0e7fcf7de3f6a92fe8574c070a9) that you can refer as walkthrough but make sure you try yourself first
29 | - If you want to use your own firebase project for authentication clone the repo and remove the google-services.json and add your project one.
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/UserLogin.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AlertDialog;
4 | import androidx.appcompat.app.AppCompatActivity;
5 |
6 | import android.content.DialogInterface;
7 | import android.content.Intent;
8 | import android.net.Uri;
9 | import android.os.Bundle;
10 | import android.view.View;
11 | import android.view.WindowManager;
12 |
13 | import com.google.firebase.auth.FirebaseAuth;
14 | import com.google.firebase.auth.FirebaseUser;
15 |
16 | public class UserLogin extends AppCompatActivity {
17 |
18 | @Override
19 | public void onBackPressed() {
20 | new AlertDialog.Builder(this)
21 | .setTitle("Really Exit?")
22 | .setMessage("Are you sure you want to exit?")
23 | .setNegativeButton(android.R.string.no, null)
24 | .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
25 |
26 | public void onClick(DialogInterface arg0, int arg1) {
27 | UserLogin.super.onBackPressed();
28 | System.exit(0);
29 | }
30 | }).create().show();
31 | }
32 |
33 | @Override
34 | protected void onCreate(Bundle savedInstanceState) {
35 | super.onCreate(savedInstanceState);
36 | getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
37 | setContentView(R.layout.activity_userlogin);
38 | FirebaseAuth firebaseAuth =FirebaseAuth.getInstance();
39 | FirebaseUser firebaseUser =firebaseAuth.getCurrentUser();
40 | if(firebaseUser != null){
41 | startActivity(new Intent(getApplicationContext(),Dashboard.class));
42 | }
43 | }
44 | public void loginpage(View view){
45 | Intent intent =new Intent(getApplicationContext(), Login.class);
46 | startActivity(intent);
47 | }
48 | public void signupage(View view){
49 | Intent intent =new Intent(getApplicationContext(), Signup.class);
50 | startActivity(intent);
51 | }
52 | public void usage(View v){
53 | Uri uri = Uri.parse("https://www.github.com/jaiswalakshansh/vuldroid");
54 | Intent intent = new Intent(Intent.ACTION_VIEW, uri);
55 | startActivity(intent);
56 | }
57 |
58 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/BlogsViewer.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.app.Activity;
6 | import android.content.Intent;
7 | import android.net.Uri;
8 | import android.os.Bundle;
9 | import android.webkit.WebChromeClient;
10 | import android.webkit.WebSettings;
11 | import android.webkit.WebView;
12 | import android.webkit.WebViewClient;
13 |
14 | public class BlogsViewer extends AppCompatActivity {
15 | String gettoken;
16 |
17 |
18 | @Override
19 | protected void onCreate(Bundle savedInstanceState) {
20 | super.onCreate(savedInstanceState);
21 | setContentView(R.layout.activity_blogsviewer);
22 | Bundle extras = getIntent().getExtras();
23 | if(extras == null){
24 | WebView vulnerable =(WebView) findViewById(R.id.loads);
25 | WebSettings webSettings = vulnerable.getSettings();
26 | webSettings.setJavaScriptEnabled(true);
27 | webSettings.setAllowFileAccessFromFileURLs(true);
28 | vulnerable.setWebChromeClient(new WebChromeClient());
29 | WebViewClientImpl webViewClient = new WebViewClientImpl(this);
30 | vulnerable.setWebViewClient(webViewClient);
31 | vulnerable.loadUrl("https://medium.com"); }
32 |
33 | else{gettoken=getIntent().getData().getQueryParameter("url");
34 | WebView vulnerable =(WebView) findViewById(R.id.loads);
35 | WebSettings webSettings = vulnerable.getSettings();
36 | webSettings.setJavaScriptEnabled(true);
37 | webSettings.setAllowFileAccess(true);
38 | webSettings.setAllowFileAccessFromFileURLs(true);
39 | webSettings.setAllowUniversalAccessFromFileURLs(true);
40 | vulnerable.setWebChromeClient(new WebChromeClient());
41 | WebViewClientImpl webViewClient = new WebViewClientImpl(this);
42 | vulnerable.setWebViewClient(webViewClient);
43 | vulnerable.loadUrl(gettoken);}
44 |
45 | }}
46 | class WebViewClientImpl extends WebViewClient {
47 |
48 | private Activity activity = null;
49 |
50 | public WebViewClientImpl(Activity activity) {
51 | this.activity = activity;
52 | }
53 |
54 | @Override
55 | public boolean shouldOverrideUrlLoading(WebView webView, String url) {
56 | return false;
57 |
58 | }
59 |
60 | }
61 |
62 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_notesviewer.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
22 |
23 |
31 |
32 |
40 |
41 |
49 |
50 |
59 |
60 |
--------------------------------------------------------------------------------
/VuldroidApp Code/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS=
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/Dashboard.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import android.content.DialogInterface;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 | import android.view.View;
7 | import android.view.WindowManager;
8 |
9 | import androidx.appcompat.app.AlertDialog;
10 | import androidx.appcompat.app.AppCompatActivity;
11 |
12 | import com.google.firebase.auth.FirebaseAuth;
13 |
14 | public class Dashboard extends AppCompatActivity {
15 |
16 | @Override
17 | public void onBackPressed() {
18 | new AlertDialog.Builder(this)
19 | .setTitle("Really Exit?")
20 | .setMessage("Are you sure you want to exit?")
21 | .setNegativeButton(android.R.string.no, null)
22 | .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
23 |
24 | public void onClick(DialogInterface arg0, int arg1) {
25 | Dashboard.super.onBackPressed();
26 | System.exit(0);
27 | }
28 | }).create().show();
29 | }
30 |
31 | public void youtubeview(View view){
32 | Intent intent =new Intent(getApplicationContext(), YoutubeViewer.class);
33 | startActivity(intent);
34 | }
35 |
36 | public void blogsview(View view){
37 | Intent intent =new Intent(getApplicationContext(), BlogsViewer.class);
38 | startActivity(intent);
39 | }
40 |
41 | public void notesview(View view){
42 | Intent intent =new Intent(getApplicationContext(), NotesViewer.class);
43 | startActivity(intent);
44 | }
45 | public void sendmsgtoapp(View view){
46 | Intent intent =new Intent(getApplicationContext(),SendMsgtoApp.class);
47 | startActivity(intent);
48 | }
49 |
50 |
51 |
52 | public void emailview(View v){
53 | Intent intent =new Intent(getApplicationContext(), EmailViewer.class);
54 | startActivity(intent);
55 | }
56 |
57 | public void rootview(View v){
58 | Intent intent =new Intent(getApplicationContext(), RootDetection.class);
59 | startActivity(intent);
60 | }
61 |
62 | public void logout(View view){
63 | FirebaseAuth.getInstance().signOut();
64 | finish();
65 | startActivity(new Intent(getApplicationContext(), UserLogin.class));
66 | }
67 |
68 |
69 |
70 | @Override
71 | protected void onCreate(Bundle savedInstanceState) {
72 | super.onCreate(savedInstanceState);
73 | setContentView(R.layout.activity_dashboard);
74 | getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
75 |
76 | }
77 |
78 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/Signup.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.annotation.NonNull;
4 | import androidx.appcompat.app.AppCompatActivity;
5 |
6 | import android.content.Intent;
7 | import android.os.Bundle;
8 | import android.text.TextUtils;
9 | import android.view.View;
10 | import android.widget.EditText;
11 | import android.widget.Toast;
12 |
13 | import com.google.android.gms.tasks.OnCompleteListener;
14 | import com.google.android.gms.tasks.Task;
15 | import com.google.firebase.auth.AuthResult;
16 | import com.google.firebase.auth.FirebaseAuth;
17 |
18 | public class Signup extends AppCompatActivity {
19 | FirebaseAuth auth;
20 |
21 | public void backtomain(View view){
22 | Intent intent =new Intent(Signup.this, UserLogin.class);
23 | startActivity(intent);
24 | }
25 | public void signed(View view)
26 | {auth = FirebaseAuth.getInstance();
27 | EditText inputEmail=findViewById(R.id.signupemail_editText);
28 | EditText inputPaassword=findViewById(R.id.signup_password_editText);
29 |
30 | String email =inputEmail.getText().toString().trim();
31 | String password =inputPaassword.getText().toString().trim();
32 |
33 | if(TextUtils.isEmpty(email)){
34 | Toast.makeText(getApplicationContext(), "ENTER EMAIL", Toast.LENGTH_SHORT).show();
35 | return;
36 | }
37 |
38 | if(TextUtils.isEmpty(password)){
39 | Toast.makeText(getApplicationContext(), "ENTER PASSWORD", Toast.LENGTH_SHORT).show();
40 | return;
41 | }
42 |
43 | if(password.length()<6){
44 | Toast.makeText(getApplicationContext(), "Enter valid length", Toast.LENGTH_SHORT).show();
45 | return;
46 | }
47 |
48 | auth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(this, new OnCompleteListener() {
49 | @Override
50 | public void onComplete(@NonNull Task task) {
51 | Toast.makeText(Signup.this, "User Created Successfully:" + task.isSuccessful(), Toast.LENGTH_LONG).show();
52 | if (!task.isSuccessful()) {
53 | Toast.makeText(Signup.this, "Authentication failed." + task.getException(),
54 | Toast.LENGTH_SHORT).show();
55 | } else {
56 | startActivity(new Intent(Signup.this, UserLogin.class));
57 | finish();
58 | }
59 |
60 | }
61 | });
62 | }
63 | @Override
64 | protected void onCreate(Bundle savedInstanceState) {
65 | super.onCreate(savedInstanceState);
66 | setContentView(R.layout.activity_signup);
67 | }
68 |
69 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/Login.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.annotation.NonNull;
4 | import androidx.appcompat.app.AppCompatActivity;
5 |
6 | import android.content.Intent;
7 | import android.os.Bundle;
8 | import android.text.TextUtils;
9 | import android.view.View;
10 | import android.widget.EditText;
11 | import android.widget.ProgressBar;
12 | import android.widget.RelativeLayout;
13 | import android.widget.Toast;
14 |
15 | import com.google.android.gms.tasks.OnCompleteListener;
16 | import com.google.android.gms.tasks.Task;
17 | import com.google.firebase.auth.AuthResult;
18 | import com.google.firebase.auth.FirebaseAuth;
19 |
20 | public class Login extends AppCompatActivity {
21 | FirebaseAuth mauth;
22 | private ProgressBar spinner;
23 | private RelativeLayout priv;
24 | public void backtomain(View view){
25 | Intent into =new Intent(Login.this, UserLogin.class);
26 | startActivity(into);
27 | }
28 |
29 | public void forgets(View view){
30 | Intent into =new Intent(Login.this, RequestPassword.class);
31 | startActivity(into);
32 | }
33 | public void firebaselogin(View view)
34 | {mauth = FirebaseAuth.getInstance();
35 | EditText inputEmail=findViewById(R.id.loginemail_editText);
36 | EditText inputPaassword=findViewById(R.id.login_password_editText);
37 | priv=(RelativeLayout)findViewById(R.id.relp);
38 | spinner = (ProgressBar)findViewById(R.id.progressb);
39 | priv.setVisibility(View.VISIBLE);
40 | spinner.setVisibility(View.VISIBLE);
41 | String email =inputEmail.getText().toString().trim();
42 | String password =inputPaassword.getText().toString().trim();
43 |
44 | if(TextUtils.isEmpty(email)){
45 | Toast.makeText(getApplicationContext(), "ENTER EMAIL", Toast.LENGTH_SHORT).show();
46 | return;
47 | }
48 |
49 | if(TextUtils.isEmpty(password)){
50 | Toast.makeText(getApplicationContext(), "ENTER PASSWORD", Toast.LENGTH_SHORT).show();
51 | return;
52 | }
53 |
54 | if(password.length()<6){
55 | Toast.makeText(getApplicationContext(), "Enter valid length", Toast.LENGTH_SHORT).show();
56 | return;
57 | }
58 |
59 | mauth.signInWithEmailAndPassword(email,password).addOnCompleteListener(this, new OnCompleteListener() {
60 | @Override
61 | public void onComplete(@NonNull Task task) {
62 | if(task.isSuccessful())
63 | {
64 | Intent intent=new Intent(Login.this,Dashboard.class);
65 | startActivity(intent);
66 | }
67 | else{
68 | Toast.makeText(Login.this, "INVALID CREDENTIALS", Toast.LENGTH_SHORT).show();
69 | }
70 | }
71 | });
72 | }
73 | @Override
74 | protected void onCreate(Bundle savedInstanceState) {
75 | super.onCreate(savedInstanceState);
76 | setContentView(R.layout.activity_login);
77 |
78 | }
79 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/SplashScreen.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.Manifest;
6 | import android.content.Intent;
7 | import android.net.Uri;
8 | import android.os.Bundle;
9 | import android.os.Handler;
10 | import android.provider.Settings;
11 | import android.view.WindowManager;
12 | import android.view.animation.Animation;
13 | import android.view.animation.AnimationUtils;
14 | import android.widget.ImageView;
15 | import android.widget.TextView;
16 |
17 | import com.karumi.dexter.Dexter;
18 | import com.karumi.dexter.PermissionToken;
19 | import com.karumi.dexter.listener.PermissionDeniedResponse;
20 | import com.karumi.dexter.listener.PermissionGrantedResponse;
21 | import com.karumi.dexter.listener.PermissionRequest;
22 | import com.karumi.dexter.listener.single.PermissionListener;
23 |
24 | public class SplashScreen extends AppCompatActivity {
25 |
26 | private static int SPLASH_TIMER= 3000;
27 | boolean isper;
28 | ImageView backgroundiimage;
29 | TextView txt;
30 | Animation sideAnim, bottomAnim;
31 | @Override
32 | protected void onCreate(Bundle savedInstanceState) {
33 | super.onCreate(savedInstanceState);
34 | getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
35 | setContentView(R.layout.splash_screen);
36 | chekPermission();
37 |
38 | backgroundiimage =findViewById(R.id.background_image);
39 | txt =findViewById(R.id.powered);
40 |
41 | sideAnim = AnimationUtils.loadAnimation(this,R.anim.side_anim);
42 | bottomAnim = AnimationUtils.loadAnimation(this,R.anim.bottom_anim);
43 |
44 | backgroundiimage.setAnimation(sideAnim);
45 | txt.setAnimation(bottomAnim);
46 |
47 | new Handler().postDelayed(new Runnable() {
48 | @Override
49 | public void run() {
50 | Intent intent =new Intent(getApplicationContext(), UserLogin.class);
51 | startActivity(intent);
52 | finish();
53 | }
54 | },SPLASH_TIMER);
55 | }
56 |
57 | public void chekPermission(){
58 | Dexter.withContext(this).withPermission(Manifest.permission.READ_EXTERNAL_STORAGE).withListener(new PermissionListener() {
59 | @Override
60 | public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) {
61 | isper=true;
62 |
63 | }
64 |
65 | @Override
66 | public void onPermissionDenied(PermissionDeniedResponse permissionDeniedResponse) {
67 | Intent intent=new Intent();
68 | intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
69 | Uri uri =Uri.fromParts("package",getPackageName(),"");
70 | startActivity(intent);
71 |
72 | }
73 |
74 | @Override
75 | public void onPermissionRationaleShouldBeShown(PermissionRequest permissionRequest, PermissionToken permissionToken) {
76 | permissionToken.continuePermissionRequest();
77 | }
78 | }).check();
79 | }
80 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_userlogin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
18 |
19 |
20 |
25 |
26 |
36 |
37 |
42 |
43 |
52 |
53 |
62 |
63 |
64 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_requestpassword.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
14 |
15 |
22 |
23 |
32 |
33 |
34 |
39 |
40 |
55 |
56 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
82 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/values/font_certs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - @array/com_google_android_gms_fonts_certs_dev
5 | - @array/com_google_android_gms_fonts_certs_prod
6 |
7 |
8 | -
9 | MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs=
10 |
11 |
12 |
13 | -
14 | MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
17 |
18 |
21 |
22 |
23 |
27 |
28 |
29 |
30 |
31 |
32 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
45 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
69 |
70 |
71 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
88 |
89 |
94 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_signup.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
14 |
15 |
22 |
23 |
32 |
33 |
34 |
39 |
40 |
55 |
56 |
64 |
65 |
66 |
67 |
82 |
83 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
107 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/java/com/vuldroid/application/NotesViewer.java:
--------------------------------------------------------------------------------
1 | package com.vuldroid.application;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.annotation.SuppressLint;
6 | import android.graphics.Canvas;
7 | import android.graphics.Color;
8 | import android.graphics.Paint;
9 | import android.graphics.pdf.PdfDocument;
10 | import android.os.Bundle;
11 | import android.os.Environment;
12 | import android.util.Log;
13 | import android.view.View;
14 | import android.widget.EditText;
15 | import android.widget.Toast;
16 |
17 | import java.io.BufferedReader;
18 | import java.io.File;
19 | import java.io.FileInputStream;
20 | import java.io.FileNotFoundException;
21 | import java.io.FileOutputStream;
22 | import java.io.IOException;
23 | import java.io.InputStreamReader;
24 |
25 | public class NotesViewer extends AppCompatActivity {
26 |
27 | private static final String FILE_NAME = "example.txt";
28 | EditText mEditText;
29 |
30 |
31 | @SuppressLint("WrongViewCast")
32 | @Override
33 | protected void onCreate(Bundle savedInstanceState) {
34 | super.onCreate(savedInstanceState);
35 | setContentView(R.layout.activity_notesviewer);
36 | mEditText = findViewById(R.id.notesview);
37 | }
38 |
39 |
40 | public void save(View v) {
41 | String text = mEditText.getText().toString();
42 | FileOutputStream fos = null;
43 | try {
44 | fos = openFileOutput(FILE_NAME, MODE_PRIVATE);
45 | fos.write(text.getBytes());
46 | mEditText.getText().clear();
47 | Toast.makeText(this, "Saved to " + getFilesDir() + "/" + FILE_NAME,
48 | Toast.LENGTH_LONG).show();
49 | } catch (FileNotFoundException e) {
50 | e.printStackTrace();
51 | } catch (IOException e) {
52 | e.printStackTrace();
53 | } finally {
54 | if (fos != null) {
55 | try {
56 | fos.close();
57 | } catch (IOException e) {
58 | e.printStackTrace();
59 | }
60 | }
61 | }
62 | }
63 | public void load(View v) {
64 | FileInputStream fis = null;
65 | try {
66 | fis = openFileInput(FILE_NAME);
67 | InputStreamReader isr = new InputStreamReader(fis);
68 | BufferedReader br = new BufferedReader(isr);
69 | StringBuilder sb = new StringBuilder();
70 | String text;
71 | while ((text = br.readLine()) != null) {
72 | sb.append(text).append("\n");
73 | }
74 | mEditText.setText(sb.toString());
75 | } catch (FileNotFoundException e) {
76 | e.printStackTrace();
77 | } catch (IOException e) {
78 | e.printStackTrace();
79 | } finally {
80 | if (fis != null) {
81 | try {
82 | fis.close();
83 | } catch (IOException e) {
84 | e.printStackTrace();
85 | }
86 | }
87 | }
88 | }
89 |
90 |
91 |
92 |
93 |
94 |
95 | public void createPdf(View v){
96 | EditText mEditText;
97 | mEditText=findViewById(R.id.notesview);
98 | String aksh=mEditText.getText().toString();
99 | PdfDocument document = new PdfDocument();
100 | PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(300, 600, 1).create();
101 | PdfDocument.Page page = document.startPage(pageInfo);
102 | Canvas canvas = page.getCanvas();
103 | Paint paint = new Paint();
104 | paint.setColor(Color.RED);
105 | canvas.drawCircle(50, 50, 30, paint);
106 | paint.setColor(Color.BLACK);
107 | canvas.drawText(aksh, 80, 50, paint);
108 | document.finishPage(page);
109 | pageInfo = new PdfDocument.PageInfo.Builder(300, 600, 2).create();
110 | page = document.startPage(pageInfo);
111 | canvas = page.getCanvas();
112 | paint = new Paint();
113 | paint.setColor(Color.BLUE);
114 | canvas.drawCircle(100, 100, 100, paint);
115 | document.finishPage(page);
116 | // write the document content
117 | String directory_path = getFilesDir().getPath() + "/mypdf/";
118 | File file = new File(directory_path);
119 | if (!file.exists()) {
120 | file.mkdirs();
121 | }
122 | String targetPdf = directory_path+"test-2.pdf";
123 | File filePath = new File(targetPdf);
124 | try {
125 | document.writeTo(new FileOutputStream(filePath));
126 | Toast.makeText(this, "Done", Toast.LENGTH_LONG).show();
127 | } catch (IOException e) {
128 | Log.e("main", "error "+e.toString());
129 | Toast.makeText(this, "Something wrong: " + e.toString(), Toast.LENGTH_LONG).show();
130 | }
131 | // close the document
132 | document.close();
133 | }
134 | }
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/drawable/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
10 |
12 |
14 |
16 |
18 |
20 |
22 |
24 |
26 |
28 |
30 |
32 |
34 |
36 |
38 |
40 |
42 |
44 |
46 |
48 |
50 |
52 |
54 |
56 |
58 |
60 |
62 |
64 |
66 |
68 |
70 |
72 |
74 |
75 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_login.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
14 |
15 |
22 |
23 |
32 |
33 |
34 |
39 |
40 |
55 |
56 |
64 |
65 |
66 |
67 |
82 |
83 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
107 |
108 |
117 |
126 |
127 |
134 |
135 |
136 |
137 |
--------------------------------------------------------------------------------
/VuldroidApp Code/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Attempt to set APP_HOME
10 | # Resolve links: $0 may be a link
11 | PRG="$0"
12 | # Need this for relative symlinks.
13 | while [ -h "$PRG" ] ; do
14 | ls=`ls -ld "$PRG"`
15 | link=`expr "$ls" : '.*-> \(.*\)$'`
16 | if expr "$link" : '/.*' > /dev/null; then
17 | PRG="$link"
18 | else
19 | PRG=`dirname "$PRG"`"/$link"
20 | fi
21 | done
22 | SAVED="`pwd`"
23 | cd "`dirname \"$PRG\"`/" >/dev/null
24 | APP_HOME="`pwd -P`"
25 | cd "$SAVED" >/dev/null
26 |
27 | APP_NAME="Gradle"
28 | APP_BASE_NAME=`basename "$0"`
29 |
30 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
31 | DEFAULT_JVM_OPTS=""
32 |
33 | # Use the maximum available, or set MAX_FD != -1 to use that value.
34 | MAX_FD="maximum"
35 |
36 | warn () {
37 | echo "$*"
38 | }
39 |
40 | die () {
41 | echo
42 | echo "$*"
43 | echo
44 | exit 1
45 | }
46 |
47 | # OS specific support (must be 'true' or 'false').
48 | cygwin=false
49 | msys=false
50 | darwin=false
51 | nonstop=false
52 | case "`uname`" in
53 | CYGWIN* )
54 | cygwin=true
55 | ;;
56 | Darwin* )
57 | darwin=true
58 | ;;
59 | MINGW* )
60 | msys=true
61 | ;;
62 | NONSTOP* )
63 | nonstop=true
64 | ;;
65 | esac
66 |
67 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
68 |
69 | # Determine the Java command to use to start the JVM.
70 | if [ -n "$JAVA_HOME" ] ; then
71 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
72 | # IBM's JDK on AIX uses strange locations for the executables
73 | JAVACMD="$JAVA_HOME/jre/sh/java"
74 | else
75 | JAVACMD="$JAVA_HOME/bin/java"
76 | fi
77 | if [ ! -x "$JAVACMD" ] ; then
78 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
79 |
80 | Please set the JAVA_HOME variable in your environment to match the
81 | location of your Java installation."
82 | fi
83 | else
84 | JAVACMD="java"
85 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
86 |
87 | Please set the JAVA_HOME variable in your environment to match the
88 | location of your Java installation."
89 | fi
90 |
91 | # Increase the maximum file descriptors if we can.
92 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
93 | MAX_FD_LIMIT=`ulimit -H -n`
94 | if [ $? -eq 0 ] ; then
95 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
96 | MAX_FD="$MAX_FD_LIMIT"
97 | fi
98 | ulimit -n $MAX_FD
99 | if [ $? -ne 0 ] ; then
100 | warn "Could not set maximum file descriptor limit: $MAX_FD"
101 | fi
102 | else
103 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
104 | fi
105 | fi
106 |
107 | # For Darwin, add options to specify how the application appears in the dock
108 | if $darwin; then
109 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110 | fi
111 |
112 | # For Cygwin, switch paths to Windows format before running java
113 | if $cygwin ; then
114 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
115 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
116 | JAVACMD=`cygpath --unix "$JAVACMD"`
117 |
118 | # We build the pattern for arguments to be converted via cygpath
119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120 | SEP=""
121 | for dir in $ROOTDIRSRAW ; do
122 | ROOTDIRS="$ROOTDIRS$SEP$dir"
123 | SEP="|"
124 | done
125 | OURCYGPATTERN="(^($ROOTDIRS))"
126 | # Add a user-defined pattern to the cygpath arguments
127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129 | fi
130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
131 | i=0
132 | for arg in "$@" ; do
133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
135 |
136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138 | else
139 | eval `echo args$i`="\"$arg\""
140 | fi
141 | i=$((i+1))
142 | done
143 | case $i in
144 | (0) set -- ;;
145 | (1) set -- "$args0" ;;
146 | (2) set -- "$args0" "$args1" ;;
147 | (3) set -- "$args0" "$args1" "$args2" ;;
148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154 | esac
155 | fi
156 |
157 | # Escape application args
158 | save () {
159 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
160 | echo " "
161 | }
162 | APP_ARGS=$(save "$@")
163 |
164 | # Collect all arguments for the java command, following the shell quoting and substitution rules
165 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
166 |
167 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
168 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
169 | cd "$(dirname "$0")"
170 | fi
171 |
172 | exec "$JAVACMD" "$@"
173 |
--------------------------------------------------------------------------------
/VuldroidApp Code/app/src/main/res/layout/activity_dashboard.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
16 |
17 |
18 |
19 |
20 |
28 |
29 |
30 |
38 |
39 |
46 |
52 |
53 |
64 |
65 |
66 |
67 |
68 |
75 |
76 |
87 |
88 |
89 |
90 |
97 |
103 |
104 |
115 |
116 |
117 |
123 |
129 |
141 |
142 |
143 |
150 |
156 |
168 |
169 |
170 |
171 |
178 |
179 |
186 |
187 |
199 |
200 |
201 |
202 |
203 |
--------------------------------------------------------------------------------