web-dev-qa-db-fra.com

Renifler une application Android pour trouver l'URL de l'API

Je suis curieux de savoir comment connaître l'URL de l'API utilisée par une application Android (toute application que j'ai installée) si elle appelle un serveur en ligne (par exemple, un service RESTful). Je suppose que je dois capturer des paquets sur le périphérique et peut-être les analyser dans Wireshark ou quelque chose pour trouver l'URL? Je suis assez compétent en développement Java/Android, mais un peu perdu en matière d'analyse de réseau.

22
derpyderp

vous pouvez le faire avec l’aide de wirehark . Je liste les étapes ici 

  1. Installez Wirehark sur votre ordinateur
  2. nous devons maintenant créer un périphérique virtuel Android (ADV) afin de télécharger le SDK Android à partir du site officiel. Android SDK vient avec émulateur pour les tests 
  3. après avoir configuré Android SDK, créez un périphérique virtuel Android (AVD) sur lequel nous allons installer l'application.
  4. démarrez ce périphérique virtuel. vous pouvez utiliser la ligne de commande pour démarrer (emulator @<AVD name>)
  5. après avoir créé l'application d'installation de périphérique virtuel à l'aide de la commande adb adb install app_file_name.apk
  6. nous pouvons maintenant commencer à capturer les paquets. Je suggèrerai donc de fermer une autre application sur votre ordinateur utilisant le réseau afin que nos paquets capturés soient plus pertinents.
  7. maintenant, démarrez Wirehark avec un accès root 
  8. sélectionnez l'interface que vous souhaitez capturer et cliquez sur Démarrer pour lancer la capture. vous pouvez voir la capture d'écran à http://i.stack.imgur.com/C891Q.png ou ci-dessous

    wireshar start image

  9. maintenant, commencez à utiliser cette application pour que les paquets soient transférés et queharleshark la capture. vous verrez des détails dans brutshark comme celui-ci, à l’écran http://i.stack.imgur.com/9Brdl.png ou plus bas

    list of packets

  10. si vous avez utilisé une application couvrant toutes sortes d'activités, vous pouvez empêcher Warshark de capturer des paquets.

  11. maintenant, lancez votre activité principale pour analyser les paquets avec soin, mais tous ne sont pas utiles à notre travail. laisse donc filtrer les paquets qui sont pertinents pour vous. laisse votre adresse IP est 192.168.0.32 puis filtrez tous les paquets dont l’IP est celle-ci. donc l'expression du filtre sera ip.addr==192.168.0.32 appliquera ce filtre. Néanmoins, nous appliquons un autre filtre pour répertorier uniquement les paquets pertinents, de sorte que l’application accède éventuellement à l’API avec le protocole HTTP, alors appliquez le filtre HTTP. expression serait http. vous pouvez appliquer les deux filtres en même temps ip.addr==192.168.0.32 and http appuyez sur entrée pour appliquer. maintenant, vous verrez les paquets les plus pertinents pour vous. vous pouvez voir la capture d'écran à http://i.stack.imgur.com/rZ6Vu.png ou ci-dessous

    wireshark details

  12. voir attentivement les informations pour les paquets listés, vous verrez beaucoup de détails importants, clés d'API, cookies, etc.

39

Une méthode très rapide.
Allez sur PlayStore, recherchez Capture de paquets

Téléchargez, installez et lancez. 
C'est facile, simple et rapide. Il vous donnera des détails sur les API, les URL et les réponses avec leurs en-têtes.

Cette application suit le concept de Packet Sniffing . Ainsi, cela pourrait ne pas fonctionner avec beaucoup d'applications sécurisées comme WhatsApp, Facebook, Twitter.

UPDATE 1: 
Le Capture de paquets n'est plus disponible dans le Play Store, essayez OS Monitor

7
reverie_ss
0
prithavi raj nagar

Utiliser un proxy de débogage. Cliquez sur le bouton de lecture et vous pourrez capturer des URL et afficher plus de détails.

https://play.google.com/store/apps/details?id=com.dans.apps.webd

0
user8258945