diff --git a/.idea/MSTG-Hacking-Playground.iml b/.idea/MSTG-Hacking-Playground.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/MSTG-Hacking-Playground.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..681f41a
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..fef518f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..f5df302
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1594426232445
+
+
+ 1594426232445
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Android/MSTG-Android-Java-App/.idea/caches/build_file_checksums.ser b/Android/MSTG-Android-Java-App/.idea/caches/build_file_checksums.ser
index b963988..83bb4de 100644
Binary files a/Android/MSTG-Android-Java-App/.idea/caches/build_file_checksums.ser and b/Android/MSTG-Android-Java-App/.idea/caches/build_file_checksums.ser differ
diff --git a/Android/MSTG-Android-Java-App/.idea/jarRepositories.xml b/Android/MSTG-Android-Java-App/.idea/jarRepositories.xml
new file mode 100644
index 0000000..a5f05cd
--- /dev/null
+++ b/Android/MSTG-Android-Java-App/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Android/MSTG-Android-Java-App/.idea/modules.xml b/Android/MSTG-Android-Java-App/.idea/modules.xml
index 30d320d..e3cfdf5 100644
--- a/Android/MSTG-Android-Java-App/.idea/modules.xml
+++ b/Android/MSTG-Android-Java-App/.idea/modules.xml
@@ -2,6 +2,8 @@
+
+
diff --git a/Android/MSTG-Android-Java-App/app/.gitignore b/Android/MSTG-Android-Java-App/app/.gitignore
index 796b96d..c860c72 100644
--- a/Android/MSTG-Android-Java-App/app/.gitignore
+++ b/Android/MSTG-Android-Java-App/app/.gitignore
@@ -1 +1,88 @@
-/build
+# Built application files
+*.apk
+*.aar
+*.ap_
+*.aab
+
+# Files for the ART/Dalvik VM
+*.dex
+
+# Java class files
+*.class
+
+# Generated files
+bin/
+gen/
+out/
+# Uncomment the following line in case you need and you don't have the release build type files in your app
+# release/
+
+# Gradle files
+.gradle/
+build/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Proguard folder generated by Eclipse
+proguard/
+
+# Log Files
+*.log
+
+# Android Studio Navigation editor temp files
+.navigation/
+
+# Android Studio captures folder
+captures/
+
+# IntelliJ
+*.iml
+.idea/workspace.xml
+.idea/tasks.xml
+.idea/gradle.xml
+.idea/assetWizardSettings.xml
+.idea/dictionaries
+.idea/libraries
+# Android Studio 3 in .gitignore file.
+.idea/caches
+.idea/modules.xml
+# Comment next line if keeping position of elements in Navigation Editor is relevant for you
+.idea/navEditor.xml
+
+# Keystore files
+# Uncomment the following lines if you do not want to check your keystore files in.
+*.jks
+*.keystore
+
+# External native build folder generated in Android Studio 2.2 and later
+.externalNativeBuild
+.cxx/
+
+# Google Services (e.g. APIs or Firebase)
+# google-services.json
+
+# Freeline
+freeline.py
+freeline/
+freeline_project_description.json
+
+# fastlane
+fastlane/report.xml
+fastlane/Preview.html
+fastlane/screenshots
+fastlane/test_output
+fastlane/readme.md
+
+# Version control
+vcs.xml
+
+# lint
+lint/intermediates/
+lint/generated/
+lint/outputs/
+lint/tmp/
+# lint/reports/
+
+# Android Profiling
+*.hprof
\ No newline at end of file
diff --git a/Android/MSTG-Android-Java-App/app/CMakeLists.txt b/Android/MSTG-Android-Java-App/app/CMakeLists.txt
new file mode 100644
index 0000000..bf28546
--- /dev/null
+++ b/Android/MSTG-Android-Java-App/app/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Sets the minimum version of CMake required to build your native library.
+# This ensures that a certain set of CMake features is available to
+# your build.
+
+cmake_minimum_required(VERSION 3.4.1)
+
+# Specifies a library name, specifies whether the library is STATIC or
+# SHARED, and provides relative paths to the source code. You can
+# define multiple libraries by adding multiple add_library() commands,
+# and CMake builds them for you. When you build your app, Gradle
+# automatically packages shared libraries with your APK.
+
+add_library( # Specifies the name of the library.
+ native-lib
+
+ # Sets the library as a shared library.
+ SHARED
+
+ # Provides a relative path to your source file(s).
+ src/main/cpp/native-lib.cpp )
\ No newline at end of file
diff --git a/Android/MSTG-Android-Java-App/app/app-arm-debug-Android5.apk b/Android/MSTG-Android-Java-App/app/app-arm-debug-Android5.apk
deleted file mode 100644
index 0a3fcb2..0000000
Binary files a/Android/MSTG-Android-Java-App/app/app-arm-debug-Android5.apk and /dev/null differ
diff --git a/Android/MSTG-Android-Java-App/app/app-arm-debug.apk b/Android/MSTG-Android-Java-App/app/app-arm-debug.apk
deleted file mode 100644
index c455799..0000000
Binary files a/Android/MSTG-Android-Java-App/app/app-arm-debug.apk and /dev/null differ
diff --git a/Android/MSTG-Android-Java-App/app/app-x86-debug-Android5.apk b/Android/MSTG-Android-Java-App/app/app-x86-debug-Android5.apk
deleted file mode 100644
index 5e31c98..0000000
Binary files a/Android/MSTG-Android-Java-App/app/app-x86-debug-Android5.apk and /dev/null differ
diff --git a/Android/MSTG-Android-Java-App/app/app-x86-debug.apk b/Android/MSTG-Android-Java-App/app/app-x86-debug.apk
deleted file mode 100644
index 8cfa439..0000000
Binary files a/Android/MSTG-Android-Java-App/app/app-x86-debug.apk and /dev/null differ
diff --git a/Android/MSTG-Android-Java-App/app/build.gradle b/Android/MSTG-Android-Java-App/app/build.gradle
index d85ab49..613ba2b 100644
--- a/Android/MSTG-Android-Java-App/app/build.gradle
+++ b/Android/MSTG-Android-Java-App/app/build.gradle
@@ -24,8 +24,8 @@ apply plugin: 'com.android.application'
android {
- compileSdkVersion 26
- buildToolsVersion '27.0.3'
+ compileSdkVersion 28
+ buildToolsVersion '28.0.3'
defaultConfig {
@@ -49,6 +49,14 @@ apply plugin: 'com.android.application'
}
}
+ externalNativeBuild {
+ cmake {
+ version "3.6.0"
+ path file('CMakeLists.txt')
+// path "src/main/jni/CMakeLists.txt"
+ }
+ }
+
// abi {
// enable true
// reset()
@@ -96,12 +104,18 @@ apply plugin: 'com.android.application'
dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- testCompile 'junit:junit:4.12'
- compile 'com.android.support:appcompat-v7:26.1.0'
- compile 'com.android.support:design:26.1.0'
- compile files('libs/sqlcipher.jar')
- compile files('libs/guava-r09.jar')
- compile files('libs/commons-codec.jar')
- compile 'ch.acra:acra:4.9.0'
+// compile fileTree(dir: 'libs', include: ['*.jar'])
+// testCompile 'junit:junit:4.12'
+ implementation 'androidx.appcompat:appcompat:1.0.0'
+ implementation 'androidx.recyclerview:recyclerview:1.0.0'
+ implementation 'com.android.support:support-compat:28.0.0'
+ implementation "com.android.support:design:28.0.0"
+// compile 'com.android.support:appcompat-v7:26.1.0'
+// compile 'com.android.support:design:28.1.0'
+// compile files('libs/sqlcipher.jar')
+// compile files('libs/guava-r09.jar')
+// compile files('libs/commons-codec.jar')
+ implementation "net.zetetic:android-database-sqlcipher:4.4.0"
+ implementation "androidx.sqlite:sqlite:2.0.1"
+// compile 'ch.acra:acra:4.9.0'
}
\ No newline at end of file
diff --git a/Android/MSTG-Android-Java-App/app/libs/acra-4.9.0.aar b/Android/MSTG-Android-Java-App/app/libs/acra-4.9.0.aar
deleted file mode 100644
index 3a2e4d4..0000000
Binary files a/Android/MSTG-Android-Java-App/app/libs/acra-4.9.0.aar and /dev/null differ
diff --git a/Android/MSTG-Android-Java-App/app/release/output.json b/Android/MSTG-Android-Java-App/app/release/output.json
new file mode 100644
index 0000000..fb6688e
--- /dev/null
+++ b/Android/MSTG-Android-Java-App/app/release/output.json
@@ -0,0 +1 @@
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release","dirName":""},"path":"app-release.apk","properties":{}}]
\ No newline at end of file
diff --git a/Android/MSTG-Android-Java-App/app/src/main/AndroidManifest.xml b/Android/MSTG-Android-Java-App/app/src/main/AndroidManifest.xml
index 62e7ecb..8846842 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/AndroidManifest.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/AndroidManifest.xml
@@ -127,15 +127,15 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="sg.vp.owasp_mobile.OMTG_Android.MyActivity" />
-
-
-
+
+
+
+
+
+
+
+
+
+#include
+
+// https://developer.android.com/ndk/samples/sample_hellojni
+
+extern "C" JNIEXPORT jstring
+
+JNICALL
+Java_sg_vp_owas_mobile_OMTG_Android_OMTG_1DATAST_1001_1SQLite_1Encrypted_stringFromJNI(
+ JNIEnv *env,
+ jobject /* this */) {
+ std::string hello = "S3cr3tString!!!";
+ return env->NewStringUTF(hello.c_str());
+}extern "C"
+JNIEXPORT jstring JNICALL
+Java_sg_vp_owasp_1mobile_OMTG_1Android_OMTG_1DATAST_1001_1SQLite_1Encrypted_stringFromJNI(
+ JNIEnv *env, jobject thiz) {
+ // TODO: implement stringFromJNI()
+
+ std::string hello = "S3cr3tString!!!";
+ return env->NewStringUTF(hello.c_str());
+}
\ No newline at end of file
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/DisplayMessageActivity.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/DisplayMessageActivity.java
index 4672ec3..5b669c8 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/DisplayMessageActivity.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/DisplayMessageActivity.java
@@ -2,10 +2,8 @@
import android.content.Intent;
import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
@@ -20,14 +18,6 @@ protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
- FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
- fab.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
- .setAction("Action", null).show();
- }
- });
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Intent intent = getIntent();
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/MyActivity.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/MyActivity.java
index dbd0239..f36ff68 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/MyActivity.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/MyActivity.java
@@ -2,8 +2,8 @@
import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
@@ -135,11 +135,11 @@ public void OMTG_DATAST_002_Logging(View view) {
startActivity(intent);
}
-
- public void OMTG_DATAST_004_3rd_Party(View view) {
- Intent intent = new Intent(this, OMTG_DATAST_004_3rd_Party.class);
- startActivity(intent);
- }
+//
+// public void OMTG_DATAST_004_3rd_Party(View view) {
+// Intent intent = new Intent(this, OMTG_DATAST_004_3rd_Party.class);
+// startActivity(intent);
+// }
public void OMTG_DATAST_005_Keyboard_Cache(View view) {
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/MyApplication.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/MyApplication.java
index 734f513..2170cf0 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/MyApplication.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/MyApplication.java
@@ -3,30 +3,30 @@
import android.app.Application;
import android.content.Context;
-import org.acra.*;
-import org.acra.annotation.*;
-import org.acra.sender.HttpSender;
-
-@ReportsCrashes(
- formUri = "https://sushi2k.cloudant.com/acra/_design/acra-storage/_update/report",
- reportType = HttpSender.Type.JSON,
- httpMethod = HttpSender.Method.POST,
- formUriBasicAuthLogin = "MmHZOqxAdT0mWSmXddYBdLPDo",
- formUriBasicAuthPassword = "MmHZOqxAdT0mWSmXddYBdLPDo",
- customReportContent = {
- ReportField.APP_VERSION_CODE,
- ReportField.APP_VERSION_NAME,
- ReportField.ANDROID_VERSION,
- ReportField.PACKAGE_NAME,
- ReportField.REPORT_ID,
- ReportField.BUILD,
- ReportField.STACK_TRACE,
- ReportField.DISPLAY,
- ReportField.TOTAL_MEM_SIZE,
- ReportField.AVAILABLE_MEM_SIZE
- },
- mode = ReportingInteractionMode.SILENT
-)
+//import org.acra.*;
+//import org.acra.annotation.*;
+//import org.acra.sender.HttpSender;
+//
+//@ReportsCrashes(
+// formUri = "https://sushi2k.cloudant.com/acra/_design/acra-storage/_update/report",
+// reportType = HttpSender.Type.JSON,
+// httpMethod = HttpSender.Method.POST,
+// formUriBasicAuthLogin = "MmHZOqxAdT0mWSmXddYBdLPDo",
+// formUriBasicAuthPassword = "MmHZOqxAdT0mWSmXddYBdLPDo",
+// customReportContent = {
+// ReportField.APP_VERSION_CODE,
+// ReportField.APP_VERSION_NAME,
+// ReportField.ANDROID_VERSION,
+// ReportField.PACKAGE_NAME,
+// ReportField.REPORT_ID,
+// ReportField.BUILD,
+// ReportField.STACK_TRACE,
+// ReportField.DISPLAY,
+// ReportField.TOTAL_MEM_SIZE,
+// ReportField.AVAILABLE_MEM_SIZE
+// },
+// mode = ReportingInteractionMode.SILENT
+//)
// ACRA stands for Application Crash Reports for Android. This library helps your software send crash reports to a backend of your choice.
@@ -36,6 +36,6 @@ protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
// The following line triggers the initialization of ACRA
- ACRA.init(this);
+// ACRA.init(this);
}
}
\ No newline at end of file
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_Best_Practice.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_Best_Practice.java
index 55063cd..18bef49 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_Best_Practice.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_Best_Practice.java
@@ -4,8 +4,8 @@
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_SQL_Injection.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_SQL_Injection.java
index 9e98a00..af3f8cd 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_SQL_Injection.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_SQL_Injection.java
@@ -5,8 +5,8 @@
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_SQL_Injection_Content_Provider.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_SQL_Injection_Content_Provider.java
index fd831ae..58b6d2a 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_SQL_Injection_Content_Provider.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_003_SQL_Injection_Content_Provider.java
@@ -1,8 +1,10 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+//import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+//import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.View;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_004_Code_Injection.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_004_Code_Injection.java
index 2f38904..483eb79 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_004_Code_Injection.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_CODING_004_Code_Injection.java
@@ -2,8 +2,8 @@
import android.os.Bundle;
import android.os.Environment;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import java.io.File;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_BadEncryption.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_BadEncryption.java
index 2bdc21e..92db282 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_BadEncryption.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_BadEncryption.java
@@ -1,8 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.util.Base64;
import android.view.View;
import android.widget.Button;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_ExternalStorage.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_ExternalStorage.java
index ab56d7c..0556722 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_ExternalStorage.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_ExternalStorage.java
@@ -2,8 +2,8 @@
import android.os.Bundle;
import android.os.Environment;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_InternalStorage.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_InternalStorage.java
index b0d2c2c..cb8f484 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_InternalStorage.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_InternalStorage.java
@@ -2,8 +2,8 @@
import android.content.Context;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_KeyChain.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_KeyChain.java
index 2699157..3e98d6e 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_KeyChain.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_KeyChain.java
@@ -3,8 +3,8 @@
import android.content.Intent;
import android.os.Bundle;
import android.security.KeyChain;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import java.io.BufferedInputStream;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_KeyStore.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_KeyStore.java
index 4bf2d42..2c16c36 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_KeyStore.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_KeyStore.java
@@ -2,8 +2,8 @@
import android.os.Bundle;
import android.security.KeyPairGeneratorSpec;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.util.Base64;
import android.util.Log;
import android.view.View;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SQLite_Encrypted.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SQLite_Encrypted.java
index 238c99b..ed1249c 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SQLite_Encrypted.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SQLite_Encrypted.java
@@ -3,8 +3,10 @@
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import android.util.Log;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import net.sqlcipher.database.SQLiteDatabase;
@@ -13,6 +15,8 @@
public class OMTG_DATAST_001_SQLite_Encrypted extends AppCompatActivity {
+ String TAG = "OMTG_DATAST_001_SQLITE_Encrypted";
+
@TargetApi(Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -26,14 +30,16 @@ protected void onCreate(Bundle savedInstanceState) {
SQLiteEnc();
}
-
- public native String stringFromJNI();
-
+// static {
+// System.loadLibrary("native");
+// }
static {
- System.loadLibrary("native");
+ System.loadLibrary("native-lib");
}
+ public native String stringFromJNI();
+
private void SQLiteEnc() {
SQLiteDatabase.loadLibs(this);
@@ -42,8 +48,12 @@ private void SQLiteEnc() {
database.mkdirs();
database.delete();
+
+// SQLiteDatabase secureDB = SQLiteDatabase.openOrCreateDatabase(database, "1234", null);
+// Log.e(TAG, "Password to encrypt database: "+ stringFromJNI());
SQLiteDatabase secureDB = SQLiteDatabase.openOrCreateDatabase(database, stringFromJNI(), null);
+
secureDB.execSQL("CREATE TABLE IF NOT EXISTS Accounts(Username VARCHAR,Password VARCHAR);");
secureDB.execSQL("INSERT INTO Accounts VALUES('admin','AdminPassEnc');");
secureDB.close();
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SQLite_Not_Encrypted.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SQLite_Not_Encrypted.java
index 559b35b..cd597fc 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SQLite_Not_Encrypted.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SQLite_Not_Encrypted.java
@@ -2,8 +2,8 @@
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SharedPreferences.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SharedPreferences.java
index 7103279..a02391b 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SharedPreferences.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_001_SharedPreferences.java
@@ -2,8 +2,8 @@
import android.content.SharedPreferences;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import static android.content.Context.MODE_WORLD_READABLE;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_002_Logging.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_002_Logging.java
index 1b504d1..3a171f9 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_002_Logging.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_002_Logging.java
@@ -1,8 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.Button;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_004_3rd_Party.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_004_3rd_Party.java
deleted file mode 100644
index 5cbc12d..0000000
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_004_3rd_Party.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package sg.vp.owasp_mobile.OMTG_Android;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-import android.view.View;
-import android.widget.Button;
-
-public class OMTG_DATAST_004_3rd_Party extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_omtg__datast_004__3rd_party);
- Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
-
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
- // find elements
- Button btnCrash = (Button) findViewById(R.id.crashButton);
-
- // create click listener for crash
- View.OnClickListener oclbtnCrash = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- CrashApp();
- }
- };
-
- // assign click listener
- btnCrash.setOnClickListener(oclbtnCrash);
- }
-
- private void CrashApp() {
- throw new RuntimeException("This is a crash");
- }
-
-}
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_005_Keyboard_Cache.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_005_Keyboard_Cache.java
index 7c2d0e7..7005a44 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_005_Keyboard_Cache.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_005_Keyboard_Cache.java
@@ -1,10 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.View;
import sg.vp.owasp_mobile.OMTG_Android.R;
@@ -18,14 +16,6 @@ protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
- FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
- fab.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
- .setAction("Action", null).show();
- }
- });
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_006_Clipboard.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_006_Clipboard.java
index ee9df60..69de2b1 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_006_Clipboard.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_006_Clipboard.java
@@ -1,10 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.ActionMode;
import android.view.ContextMenu;
import android.view.Menu;
@@ -26,14 +24,6 @@ protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
- FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
- fab.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
- .setAction("Action", null).show();
- }
- });
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
sensitiveInformation = (EditText) findViewById(R.id.ClipboardEditText);
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_011_Memory.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_011_Memory.java
index d7355a2..010f294 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_011_Memory.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_DATAST_011_Memory.java
@@ -1,8 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import com.tozny.crypto.android.AesCbcWithIntegrity;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_ENV_005_WebView_Local.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_ENV_005_WebView_Local.java
index 9c10577..8e09f31 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_ENV_005_WebView_Local.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_ENV_005_WebView_Local.java
@@ -1,8 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.WebChromeClient;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_ENV_005_WebView_Remote.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_ENV_005_WebView_Remote.java
index 5f1dd74..01c51e2 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_ENV_005_WebView_Remote.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_ENV_005_WebView_Remote.java
@@ -1,8 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.Menu;
import android.view.View;
import android.webkit.WebChromeClient;
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_001_Secure_Channel.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_001_Secure_Channel.java
index d09cb8b..de8fc06 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_001_Secure_Channel.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_001_Secure_Channel.java
@@ -1,8 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
import android.webkit.WebView;
public class OMTG_NETW_001_Secure_Channel extends AppCompatActivity {
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_004_SSL_Pinning.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_004_SSL_Pinning.java
index 7900bed..4926985 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_004_SSL_Pinning.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_004_SSL_Pinning.java
@@ -1,10 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.util.Base64;
import android.view.View;
@@ -31,15 +29,6 @@ protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
- FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
- fab.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
- .setAction("Action", null).show();
- }
- });
-
// Quick and dirty fix http://stackoverflow.com/questions/6343166/how-to-fix-android-os-networkonmainthreadexception
Thread thread = new Thread(new Runnable() {
diff --git a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_004_SSL_Pinning_Certificate.java b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_004_SSL_Pinning_Certificate.java
index 792d161..a42fe29 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_004_SSL_Pinning_Certificate.java
+++ b/Android/MSTG-Android-Java-App/app/src/main/java/sg/vp/owasp_mobile/OMTG_Android/OMTG_NETW_004_SSL_Pinning_Certificate.java
@@ -1,10 +1,8 @@
package sg.vp.owasp_mobile.OMTG_Android;
import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.view.View;
@@ -39,15 +37,6 @@ protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
- FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
- fab.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
- .setAction("Action", null).show();
- }
- });
-
try {
HTTPSssLPinning();
} catch (MalformedURLException e) {
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_display_message.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_display_message.xml
index 743989d..62d8ac5 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_display_message.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_display_message.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_my.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_my.xml
index b1ea9ad..518f242 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_my.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_my.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__best__practice.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__best__practice.xml
index 7c3f2aa..f8e99ee 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__best__practice.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__best__practice.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__sql__injection.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__sql__injection.xml
index b9557eb..8eefe2b 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__sql__injection.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__sql__injection.xml
@@ -1,25 +1,20 @@
-
-
-
-
+
-
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__sql__injection__content__provider.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__sql__injection__content__provider.xml
index b4c1766..1d297bb 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__sql__injection__content__provider.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_003__sql__injection__content__provider.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_004__code__injection.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_004__code__injection.xml
index d46b60e..baa28b2 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_004__code__injection.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__coding_004__code__injection.xml
@@ -1,25 +1,20 @@
-
-
-
-
+
-
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__bad_encryption.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__bad_encryption.xml
index 4e2fc53..e017ccb 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__bad_encryption.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__bad_encryption.xml
@@ -1,20 +1,20 @@
-
-
-
-
+
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__external_storage.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__external_storage.xml
index 35f0e35..b86b30b 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__external_storage.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__external_storage.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__internal_storage.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__internal_storage.xml
index ebb6767..f5ff643 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__internal_storage.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__internal_storage.xml
@@ -1,21 +1,21 @@
-
-
-
-
+
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__key_chain.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__key_chain.xml
index 92988f7..fd8f22a 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__key_chain.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__key_chain.xml
@@ -1,20 +1,20 @@
-
-
-
-
+
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__key_store.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__key_store.xml
index 630fe97..88f1d4e 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__key_store.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__key_store.xml
@@ -1,21 +1,21 @@
-
-
-
-
+
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__shared_preference.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__shared_preference.xml
index b47c379..b57ca96 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__shared_preference.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__shared_preference.xml
@@ -1,21 +1,21 @@
-
-
-
-
+
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__sqlite.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__sqlite.xml
index 98c6832..1e6e815 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__sqlite.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__sqlite.xml
@@ -1,20 +1,20 @@
-
-
-
-
+
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__sqlite__secure.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__sqlite__secure.xml
index cd5f653..da39685 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__sqlite__secure.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_001__sqlite__secure.xml
@@ -1,20 +1,20 @@
-
-
-
-
+
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_002__logging.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_002__logging.xml
index cc165f3..2fa6ea6 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_002__logging.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_002__logging.xml
@@ -1,21 +1,21 @@
-
-
-
-
+
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_004__3rd_party.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_004__3rd_party.xml
deleted file mode 100644
index 177224e..0000000
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_004__3rd_party.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_005__keyboard__cache.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_005__keyboard__cache.xml
index a8f74dc..0c90fec 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_005__keyboard__cache.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_005__keyboard__cache.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_006__clipboard.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_006__clipboard.xml
index 0952223..fad158e 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_006__clipboard.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_006__clipboard.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_011__memory.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_011__memory.xml
index 02cd4ea..1188837 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_011__memory.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__datast_011__memory.xml
@@ -1,20 +1,20 @@
-
-
-
-
+
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__env_005__web_view.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__env_005__web_view.xml
index 1c33272..fdca8b8 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__env_005__web_view.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__env_005__web_view.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__env_005__web_view__local.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__env_005__web_view__local.xml
index d1791de..6d710d3 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__env_005__web_view__local.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__env_005__web_view__local.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_001__secure__channel.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_001__secure__channel.xml
index 616ff25..c561238 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_001__secure__channel.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_001__secure__channel.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_004__ssl__pinning.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_004__ssl__pinning.xml
index b7ec0d1..e5ec248 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_004__ssl__pinning.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_004__ssl__pinning.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_004__ssl__pinning__certificate.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_004__ssl__pinning__certificate.xml
index 9aabd97..fc94438 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_004__ssl__pinning__certificate.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/activity_omtg__netw_004__ssl__pinning__certificate.xml
@@ -1,25 +1,21 @@
-
-
-
-
+
-
-
+
diff --git a/Android/MSTG-Android-Java-App/app/src/main/res/layout/content_my.xml b/Android/MSTG-Android-Java-App/app/src/main/res/layout/content_my.xml
index dc4b61d..da7d899 100644
--- a/Android/MSTG-Android-Java-App/app/src/main/res/layout/content_my.xml
+++ b/Android/MSTG-Android-Java-App/app/src/main/res/layout/content_my.xml
@@ -72,13 +72,6 @@
android:onClick="OMTG_DATAST_002_Logging" />
-
-
-
- OMTG_DATAST_004_3rd_Party
- OMTG_DATAST_004_3rd_Party
-
- 3rd Party Libraries Testcase\n
- This app has a 3rd Party Library called ACRA that will send details of a crash to their server. What can you see in Burp?
-
- Crash the App
+
+
+
+
+
+
+
OMTG_DATAST_005_Keyboard_Cache
diff --git a/Android/README.md b/Android/README.md
index cf38224..8e60fae 100644
--- a/Android/README.md
+++ b/Android/README.md
@@ -1,99 +1,64 @@
# MSTG Hacking Playground
-## Project Description
-
-Welcome to the MSTG Playground for Android and iOS. This is a collection of mobile apps, intentionally build insecure. These apps are used as examples to demonstrate different vulnerabilites explained in the the [OWASP Mobile Security Testing Guide](https://github.com/OWASP/owasp-mstg/ "OWASP MSTG"). The current release of the OWASP Mobile Security Testing Guide (MSTG) can be found [here](https://github.com/OWASP/owasp-mstg/releases "MSTG Release").
-
-In order to give practical guidance to developers, security researches and penetration testers, a hacking playground was created that consists of different mobile App’s that contain different vulnerabilities that map to the MSTG test cases. This has two advantages:
-
-- A developer can identify vulnerable code in the provided App’s and can see the implications and risks if such patterns are used and can look for the best practices in the MSTG to mitigate the vulnerabilities.
-- Penetration testers / security researchers can identify bad practices, dangerous methods and classes they should look for when assessing a Mobile App and can gain more knowledge through the information provided in the MSTG.
-
-It is also encouraged to use the App(s) for education purpose during trainings and workshops.
-
-If you want to contribute to the MSTG, please go to the OWASP Slack Channel. You can register here http://owasp.herokuapp.com/ and can find us in the channel #project-mobile_omtg.
-
-You are invited to extend the existing apps or even create your own one. Please ping [Sven Schleier](https://github.com/sushi2k "Sven Schleier") for any questions.
-
-
## Android
-### [MSTG Android Java App](https://github.com/OWASP/MSTG-Hacking-Playground/tree/master/Android/MSTG-Android-Java-App "Android Java App")
+### [MSTG Android Java App](https://github.com/OWASP/MSTG-Hacking-Playground/tree/master/Android/MSTG-Android-Java-App "Android Java App")
-- Author: [Sven Schleier](https://github.com/sushi2k "Sven Schleier")
+- Author: [Sven Schleier](https://github.com/sushi2k "Sven Schleier")
- Maintained by [Sven Schleier](https://github.com/sushi2k "Sven Schleier")
-#### Installation
+#### Installation Java App
This app is compatible with Android 4.4 and up.
-```
+```shell
$ adb install Playground/Android/mstg-java-app/app/build/outputs/apk/debug/app-debug.apk
```
+### [MSTG Android Kotlin App](https://github.com/OWASP/MSTG-Hacking-Playground/tree/master/Android/MSTG-Android-Kotlin-App "Android Kotlin App")
-### [MSTG Android Kotlin App](https://github.com/OWASP/MSTG-Hacking-Playground/tree/master/Android/MSTG-Android-Kotlin-App "Android Kotlin App")
-
-- Author: [Wen Bin Kong](https://github.com/kongwenbin "Wen Bin Kong")
+- Author: [Wen Bin Kong](https://github.com/kongwenbin "Wen Bin Kong")
- Maintained by [Sven Schleier](https://github.com/sushi2k "Sven Schleier")
-#### Installation
-
-This app is compatible with Android 4.4 and up.
-
-```
-$ adb install Playground/Android/mstg-kotlin-app/app/build/outputs/apk/debug/app-debug.apk
-```
-
-
-### Android Studio
-
-Open the project directories mstg-java-app or mstg-kotlin-app in Android Studio. The apps can be compiled with Android Studio 3.1.4 (tested).
-When asked for updating the Gradle Plugin in Android Studio, when opening the projects please don't update Gradle and stay with version 3.1.4.
-
-
-## iOS
-
-No iOS Apps yet. Feel free to start one :-)
-
-## Mobile Security Crackmes
-
-Did you enjoy working with the Playground ? There is more! Go to [the MSTG Crackmes](https://github.com/OWASP/MSTG-Hacking-Playground "MSTG-Crackmes") and find out!
-Having troubles with getting through the playground challenges, check the Write-ups folder right here!
-
-## Issues with the Crackmes
-Currently, the code is being maintained by [@sushi2k](https://github.com/sushi2k "Sven Schleier"). If the app does not boot, or if there is another bug: file an issue at this repository.
+### Android App
+The Android App is located in . After cloning the repo this directory needs to be opened in Android Studio.
+In order to get the App running, besides the Android SDK, also the Android NDK needs to be availabe. If the NDK is not available, Android Studio will ask to download or specify a local path for the NDK when the project is opened. If parts of the SDK are missing, a prompt should show up to install the additional requriments. Afterwards the App can be build and can be run in an emulator or mobile device.
+Check the [Wiki](https://github.com/OWASP/MSTG-Hacking-Playground/wiki) for a description of all available test cases.
-### Android App
+Screenshot:
-The Android App is located in https://github.com/OWASP/MSTG-Hacking-Playground/tree/master/Android/OMTG-Android-App. After cloning the repo this directory needs to be opened in Android Studio.
+![Test cases mapped to MSTG](https://raw.githubusercontent.com/OWASP/MSTG-Hacking-Playground/master/Android/screenshots/android-app-java.png "Test cases mapped to MSTG" )
-In order to get the App running, besides the Android SDK, also the Android NDK needs to be availabe. If the NDK is not available, Android Studio will ask to download or specify a local path for the NDK when the project is opened. If parts of the SDK are missing, a prompt should show up to install the additional requriments. Afterwards the App can be build and can be run in an emulator or mobile device.
+#### Installation Kotlin App
-Check the [Wiki](https://github.com/OWASP/MSTG-Hacking-Playground/wiki) for a description of all available test cases.
+This app is compatible with Android 4.4 and up.
-Screenshot:
+```shell
+$ adb install Playground/Android/mstg-kotlin-app/app/build/outputs/apk/debug/app-debug.apk
+```
-![Test cases mapped to MSTG](https://raw.githubusercontent.com/OWASP/MSTG-Hacking-Playground/master/Android/OMTG-Android-App/screenshots/screenshot_0.png "Test cases mapped to MSTG" )
+#### Android Studio
+Open the project directories `mstg-java-app` or `mstg-kotlin-app` in Android Studio. The apps can be compiled with Android Studio 3.1.4 (tested).
+When asked for updating the Gradle Plugin in Android Studio, when opening the projects please don't update Gradle and stay with version 3.1.4.
## Mobile Apps
The following Mobile Apps are already created:
-* A Android Application is implemented in Java
-* A Android Application is implemented in Kotlin
+- A Android Application is implemented in Java
+- A Android Application is implemented in Kotlin
## License
-This project is using the GNU General Public License v3.0.
-
+This project is using the GNU General Public License v3.0.
## Acknowledgements
-Wen Bin Kong (@kongwenbin)
-Nikhil Soni (@nikhil)
-Ryan Teoh (@ryantzj)
+
+- Wen Bin Kong (@kongwenbin)
+- Nikhil Soni (@nikhil)
+- Ryan Teoh (@ryantzj)
diff --git a/README.md b/README.md
index 3331ea2..3fe05a6 100644
--- a/README.md
+++ b/README.md
@@ -59,7 +59,7 @@ This app is compatible with Android 4.4 and up. Once you checkout the repo you c
$ adb install Android/MSTG-Android-Kotlin-App/app/build/outputs/apk/debug/app-debug.apk
```
-The APK is also available in the [release page](https://github.com/OWASP/MSTG-Hacking-Playground/releases/tag/1.0).
+The APK is available in the [release page](https://github.com/OWASP/MSTG-Hacking-Playground/releases/tag/1.1) for download.
### Android Studio