Il est plus sûr de spécifier explicitement tous les attributs exportés
Parce qu'il peut être publié par inadvertance dans une application externe
Si vous définissez par inadvertance un filtre d'intention sans spécifier exporté, L'activité peut également être lancée depuis une application externe.
En outre, l'intention implicite lancée pour activer l'activité sera également reçue par des applications externes.
Si vous spécifiez par inadvertance exporté et incluez minSdkVersion 17 ou moins Public / privé changera en fonction de la version du système d'exploitation.
Jetez un œil à AndroidManifest.xml, une application sur Google Play.
Installez l'application que vous souhaitez voir Android Manifest sur votre appareil Android
Vérifiez le nom du package de l'application sur Google Play
Vous pouvez le vérifier avec l'URL de la page de l'application
https://play.google.com/store/apps/details?id=【target package name】
Vérifiez le chemin complet avec la commande adb
>adb shell pm list packages -f 【target package name】 package:/data/app/【target package name】-1/base.apk=【target package name】
> adb pull /data/app/【target package name】-1
Changez l'extension d'apk en zip ↓
Extraire sous forme de zip
Convertissez AndroidManifest.xml en zip avec AXMLPrinter2.jar AXMLPrinter2.jar
>java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifestConverted.xml
Dans l'élément \ <activity > autre que android.intent.category.LAUNCHER après la conversion, Recherchez des activités avec exporté = "vrai" ou des activités pour lesquelles le filtre d'intention est défini sans description de exporté. Je pense qu'il est facile de le trouver dans les applications avec peu d'expérience et d'évaluation </ font>
Essayez d'appeler depuis une autre application
MainActivity.kt
val targetPackageName : String = "【target package name】"
val targetActivityName : String = "【target activity name】"
val intent : Intent = Intent()
intent.setClassName( targetPackageName, targetActivityName )
startActivity( intent )
Également possible ici
adb am start -n 【target package name】/.【target activity name】
Puis l'activité démarre normalement
S'il est supposé que cette activité est appelée uniquement par un processus spécifique du même package,
il peut ignorer le processus attendu et fonctionner.
Quant aux connaissances, elles sont écrites ici [Secure Design / Secure Coding Guide for Android Apps] ](https://www.jssec.org/dl/android_securecoding.pdf) En fait, il n'est pas réaliste de tout vérifier dans un examen, et il est réaliste d'utiliser un outil parce qu'il y a des omissions. Le montant que vous pouvez dépenser pour la sécurité dépend de l'application que vous créez,
Recommended Posts