ProbeDroid est un kit d'instrumentation de code Java dynamique pour application Android , qui fournit des API permettant aux utilisateurs de créer leurs propres outils d'instrumentation. En conséquence, les utilisateurs peuvent tracer, profiler ou modifier le comportement d'exécution d'une application intéressée. Essentiellement, la méthode Java est l' unité d'instrumentation de base . Pour manipuler les méthodes intéressées, les utilisateurs doivent remplacer les gadgets d'instrumentation du modèle et les enregistrer pour accrocher les méthodes intéressées. Lorsque les méthodes hookées sont invoquées pendant l’exécution, le flux de contrôle est redirigé vers les gadgets. À ce moment-là, les utilisateurs peuvent manipuler les arguments d’entrée de la méthode encadrée et la valeur de retour. Au stade actuel, ProbeDroid cible Android 5.0 et supérieur. Pour créer le kit ProbeDroid, les utilisateurs extraient simplement le package de GitHub et suivent les commandes de construction. L’arborescence des sources Android n’est pas requise.
Veuillez vous référer au wiki Source Building
Veuillez vous référer au wiki Play and Hack
Cliquez sur l'image pour voir la vidéo de démonstration
Un outil d'instrumentation simple qui suit les chaînes converties à partir des objets StringBuilder et StringBuffer . En effectuant quelques analyses approfondies des chaînes converties, nous pouvons remarquer que GoogleMaps applique la réflexion Java pour certaines authentifications réseau. En outre, il générera dynamiquement du code C/C++ et le compilera pour le rendu de la carte. |
Cliquez sur l'image pour voir la vidéo de démonstration
Un outil d'instrumentation simple qui suit les activités et services démarrés . En effectuant quelques analyses approfondies des composants suivis, nous pouvons remarquer que KKTix applique plusieurs types d'activités pour afficher les pages de réservation de billets. En outre, il démarre un service pour le calcul en arrière-plan. |
Sauf pour le code source suivant :
android/art/runtime/
, common/log.*
, common/stringprintf.*
, common/utf.*
et common/macros.h
appartiennent à [AOSP], qui sont sous licence Apache v2.0 .common/libffi/
appartient à [libffi], qui est sous licence MIT .Tout le code source est sous licence MIT . Voir COPIE pour plus de détails.
Veuillez me contacter via le mail [email protected] .
Notez que le kit est encore en construction. Une contribution et un rapport de bug sont souhaités.