diff --git a/.gitignore b/.gitignore
index 22a4ae4..90a2043 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,36 @@
-.gradle
-/local.properties
-/.idea/workspace.xml
-/.idea/libraries
-.DS_Store
-/build
-/captures
-/app/build
+# Gradle files
+.gradle/
+build/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Log/OS Files
+*.log
+
+# Android Studio generated files and folders
+captures/
+.externalNativeBuild/
+.cxx/
+*.apk
+output.json
+
+# IntelliJ
+*.iml
+.idea/
+misc.xml
+deploymentTargetDropDown.xml
+render.experimental.xml
+
+# Keystore files
+*.jks
+*.keystore
+
+# Google Services (e.g. APIs or Firebase)
+google-services.json
+
+# Android Profiling
+*.hprof
+obj/
+libs/
+jniLibs/
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 96cc43e..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
deleted file mode 100644
index 0833b17..0000000
--- a/.idea/gradle.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 1a3eaff..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 146fd35..76d2193 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,7 +3,10 @@
-
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 7f68460..0000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 6564d52..94a25f7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/Diva.iml b/Diva.iml
index 4abea91..af7a2bf 100644
--- a/Diva.iml
+++ b/Diva.iml
@@ -1,19 +1,12 @@
-
-
-
-
-
-
-
-
-
+
+
-
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 8f731a9..b55f642 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,9 @@
+# Attention
+
+I've update the project to the a newer Android SDK version since it seems that the author is not willing to maintain it anymore. Besides I have kept the original README file as much as possible where ever it has a useful information.
+
+
+
# DIVA Android
---
## What is DIVA?
@@ -30,8 +36,8 @@ I tried to put as much vulnerabilities as possible in a short period of time. I
9. Access Control Issues – Part 1
10. Access Control Issues – Part 2
11. Access Control Issues – Part 3
-12. Hardcoding Issues – Part 2
-13. Input Validation Issues – Part 3
+12. Hardcoding Issues – Part 2 **(Not fixed for the new Android SDK)**
+13. Input Validation Issues – Part 3 **(Not fixed for the new Android SDK)**
## Can I contribute?
Yes, you can help by sending us the details of vulnerabilities that we can implement in future versions of Diva. Please send an email to info [at] payatu.com with subject “DIVA Contribution”.
@@ -65,17 +71,7 @@ We would love to hear from you about your experience with Diva. Please send us a
## Author
Aseem Jakhar
-
-## About Payatu
-Payatu is a boutique security testing company with specialization in:
-* IoT Security
-* Mobile Security
-* Cloud security
-* Web Security
-
-We also organize two International Security Conferences
-* nullcon International Security Conference - http://nullcon.net
-* hardwear.io Hardware Security Conference - http://hardwear.io
-
**Website:** http://payatu.com
**Email:** info (at) payatu dot com
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 0a95252..43deaa7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,13 +1,14 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 23
- buildToolsVersion "23.0.2"
+ namespace 'jakhar.aseem.diva'
+ compileSdk 35
+
defaultConfig {
applicationId "jakhar.aseem.diva"
- minSdkVersion 15
- targetSdkVersion 23
+ minSdk 21
+ targetSdk 35
versionCode 1
versionName "1.0"
}
@@ -17,16 +18,31 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_11
+ targetCompatibility JavaVersion.VERSION_11
+ }
sourceSets {
main {
+ resources {
+ srcDirs = ['src/main/jni']
+ }
jni.srcDirs = []
}
}
+ externalNativeBuild {
+ cmake {
+ version "3.22.1"
+ }
+ }
+ ndkVersion '27.1.12297006'
}
dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- testCompile 'junit:junit:4.12'
- compile 'com.android.support:appcompat-v7:23.1.0'
- compile 'com.android.support:design:23.1.0'
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'androidx.appcompat:appcompat:1.7.0'
+ implementation 'com.google.android.material:material:1.12.0'
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.5'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}
diff --git a/app/src/androidTest/java/jakhar/aseem/diva/ApplicationTest.java b/app/src/androidTest/java/jakhar/aseem/diva/ApplicationTest.java
deleted file mode 100644
index d704618..0000000
--- a/app/src/androidTest/java/jakhar/aseem/diva/ApplicationTest.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package jakhar.aseem.diva;
-
-import android.app.Application;
-import android.test.ApplicationTestCase;
-
-/**
- * Testing Fundamentals
- */
-public class ApplicationTest extends ApplicationTestCase {
- public ApplicationTest() {
- super(Application.class);
- }
-}
\ No newline at end of file
diff --git a/app/src/androidTest/java/jakhar/aseem/diva/ExampleInstrumentedTest.java b/app/src/androidTest/java/jakhar/aseem/diva/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..765dc15
--- /dev/null
+++ b/app/src/androidTest/java/jakhar/aseem/diva/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package jakhar.aseem.diva;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("jakhar.aseem.diva", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b3d7e83..a526e7a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ xmlns:tools="http://schemas.android.com/tools">
@@ -15,7 +15,8 @@
+ android:theme="@style/AppTheme.NoActionBar"
+ android:exported="true">
@@ -60,7 +61,8 @@
+ android:label="@string/apic_label"
+ android:exported="true">
@@ -73,7 +75,8 @@
+ android:label="@string/apic2_label"
+ android:exported="true">
diff --git a/app/src/main/java/jakhar/aseem/diva/APICreds2Activity.java b/app/src/main/java/jakhar/aseem/diva/APICreds2Activity.java
index baaad21..d594ced 100644
--- a/app/src/main/java/jakhar/aseem/diva/APICreds2Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/APICreds2Activity.java
@@ -32,9 +32,8 @@
package jakhar.aseem.diva;
import android.content.Intent;
-import android.os.Environment;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
diff --git a/app/src/main/java/jakhar/aseem/diva/APICredsActivity.java b/app/src/main/java/jakhar/aseem/diva/APICredsActivity.java
index e25cff2..46eae3c 100644
--- a/app/src/main/java/jakhar/aseem/diva/APICredsActivity.java
+++ b/app/src/main/java/jakhar/aseem/diva/APICredsActivity.java
@@ -31,8 +31,8 @@
*/
package jakhar.aseem.diva;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.widget.TextView;
public class APICredsActivity extends AppCompatActivity {
diff --git a/app/src/main/java/jakhar/aseem/diva/AccessControl1Activity.java b/app/src/main/java/jakhar/aseem/diva/AccessControl1Activity.java
index d699b47..f126901 100644
--- a/app/src/main/java/jakhar/aseem/diva/AccessControl1Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/AccessControl1Activity.java
@@ -32,8 +32,8 @@
package jakhar.aseem.diva;
import android.content.Intent;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
diff --git a/app/src/main/java/jakhar/aseem/diva/AccessControl2Activity.java b/app/src/main/java/jakhar/aseem/diva/AccessControl2Activity.java
index 10cd6d5..d9c2326 100644
--- a/app/src/main/java/jakhar/aseem/diva/AccessControl2Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/AccessControl2Activity.java
@@ -32,8 +32,8 @@
package jakhar.aseem.diva;
import android.content.Intent;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.RadioButton;
diff --git a/app/src/main/java/jakhar/aseem/diva/AccessControl3Activity.java b/app/src/main/java/jakhar/aseem/diva/AccessControl3Activity.java
index 1dd179c..a9de556 100644
--- a/app/src/main/java/jakhar/aseem/diva/AccessControl3Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/AccessControl3Activity.java
@@ -34,8 +34,8 @@
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
diff --git a/app/src/main/java/jakhar/aseem/diva/AccessControl3NotesActivity.java b/app/src/main/java/jakhar/aseem/diva/AccessControl3NotesActivity.java
index 9fc8002..da2bfa3 100644
--- a/app/src/main/java/jakhar/aseem/diva/AccessControl3NotesActivity.java
+++ b/app/src/main/java/jakhar/aseem/diva/AccessControl3NotesActivity.java
@@ -31,18 +31,16 @@
*/
package jakhar.aseem.diva;
-import android.content.ContentResolver;
import android.content.SharedPreferences;
import android.database.Cursor;
-import android.preference.PreferenceManager;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import android.preference.PreferenceManager;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
-import android.widget.TextView;
import android.widget.Toast;
public class AccessControl3NotesActivity extends AppCompatActivity {
diff --git a/app/src/main/java/jakhar/aseem/diva/Hardcode2Activity.java b/app/src/main/java/jakhar/aseem/diva/Hardcode2Activity.java
index 5a170a4..81bd03f 100644
--- a/app/src/main/java/jakhar/aseem/diva/Hardcode2Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/Hardcode2Activity.java
@@ -31,8 +31,8 @@
*/
package jakhar.aseem.diva;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
diff --git a/app/src/main/java/jakhar/aseem/diva/HardcodeActivity.java b/app/src/main/java/jakhar/aseem/diva/HardcodeActivity.java
index 3f9fc4b..c7ed1ed 100644
--- a/app/src/main/java/jakhar/aseem/diva/HardcodeActivity.java
+++ b/app/src/main/java/jakhar/aseem/diva/HardcodeActivity.java
@@ -31,8 +31,8 @@
*/
package jakhar.aseem.diva;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
diff --git a/app/src/main/java/jakhar/aseem/diva/InputValidation2URISchemeActivity.java b/app/src/main/java/jakhar/aseem/diva/InputValidation2URISchemeActivity.java
index a1db925..dee46de 100644
--- a/app/src/main/java/jakhar/aseem/diva/InputValidation2URISchemeActivity.java
+++ b/app/src/main/java/jakhar/aseem/diva/InputValidation2URISchemeActivity.java
@@ -31,8 +31,8 @@
*/
package jakhar.aseem.diva;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
diff --git a/app/src/main/java/jakhar/aseem/diva/InputValidation3Activity.java b/app/src/main/java/jakhar/aseem/diva/InputValidation3Activity.java
index f4e8421..0e631b6 100644
--- a/app/src/main/java/jakhar/aseem/diva/InputValidation3Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/InputValidation3Activity.java
@@ -31,8 +31,8 @@
*/
package jakhar.aseem.diva;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
diff --git a/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage1Activity.java b/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage1Activity.java
index c91e78e..18041a0 100644
--- a/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage1Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage1Activity.java
@@ -33,8 +33,8 @@
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
diff --git a/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage2Activity.java b/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage2Activity.java
index 4adf6d1..053d457 100644
--- a/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage2Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage2Activity.java
@@ -31,17 +31,14 @@
*/
package jakhar.aseem.diva;
-import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
-import android.os.Environment;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
-import java.io.File;
+import androidx.appcompat.app.AppCompatActivity;
public class InsecureDataStorage2Activity extends AppCompatActivity {
diff --git a/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage3Activity.java b/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage3Activity.java
index 92f40a1..03378f7 100644
--- a/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage3Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage3Activity.java
@@ -31,16 +31,14 @@
*/
package jakhar.aseem.diva;
-import android.os.Environment;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.FileWriter;
public class InsecureDataStorage3Activity extends AppCompatActivity {
diff --git a/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage4Activity.java b/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage4Activity.java
index 31446da..64351a3 100644
--- a/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage4Activity.java
+++ b/app/src/main/java/jakhar/aseem/diva/InsecureDataStorage4Activity.java
@@ -32,8 +32,8 @@
package jakhar.aseem.diva;
import android.os.Environment;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
diff --git a/app/src/main/java/jakhar/aseem/diva/LogActivity.java b/app/src/main/java/jakhar/aseem/diva/LogActivity.java
index 26e1173..ce55106 100644
--- a/app/src/main/java/jakhar/aseem/diva/LogActivity.java
+++ b/app/src/main/java/jakhar/aseem/diva/LogActivity.java
@@ -31,8 +31,8 @@
*/
package jakhar.aseem.diva;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
diff --git a/app/src/main/java/jakhar/aseem/diva/MainActivity.java b/app/src/main/java/jakhar/aseem/diva/MainActivity.java
index 4feea22..d3cddc6 100644
--- a/app/src/main/java/jakhar/aseem/diva/MainActivity.java
+++ b/app/src/main/java/jakhar/aseem/diva/MainActivity.java
@@ -33,13 +33,12 @@
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 android.view.View;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+
import android.view.Menu;
import android.view.MenuItem;
+import android.view.View;
public class MainActivity extends AppCompatActivity {
diff --git a/app/src/main/java/jakhar/aseem/diva/SQLInjectionActivity.java b/app/src/main/java/jakhar/aseem/diva/SQLInjectionActivity.java
index b17132e..5fee4a0 100644
--- a/app/src/main/java/jakhar/aseem/diva/SQLInjectionActivity.java
+++ b/app/src/main/java/jakhar/aseem/diva/SQLInjectionActivity.java
@@ -33,8 +33,8 @@
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
diff --git a/app/src/main/jni/Makefile b/app/src/main/jni/Makefile
index 910fe43..2b43506 100644
--- a/app/src/main/jni/Makefile
+++ b/app/src/main/jni/Makefile
@@ -34,6 +34,7 @@
all:
ndk-build
rm -rf ../jniLibs/*
+ mkdir -p ../jniLibs
cp -r ../libs/* ../jniLibs/
clean:
ndk-build clean
diff --git a/app/src/main/res/layout/activity_access_control1.xml b/app/src/main/res/layout/activity_access_control1.xml
index 03ff9dd..d1fd0df 100644
--- a/app/src/main/res/layout/activity_access_control1.xml
+++ b/app/src/main/res/layout/activity_access_control1.xml
@@ -1,7 +1,9 @@
+ android:maxLength="4"
+ android:gravity="center_horizontal" />