web-dev-qa-db-fra.com

Surveiller l'activité du réseau dans Android Téléphones

Je souhaite surveiller le trafic réseau de mon Android Phone. Je pensais utiliser tcpdump pour Android, mais je ne suis pas sûr de devoir compiler de manière croisée pour le téléphone.

Une autre question est la suivante: Si je veux surveiller les données de trafic pour une application donnée, y a-t-il une commande pour le faire?

59
Iker

TCPDUMP est l'un de mes outils favoris pour l'analyse de réseau, mais si vous avez du mal à compiler de manière croisée tcpdump pour Android, je vous recommanderais d'utiliser certaines applications du marché.

Voici les applications dont je parlais:

  • Shark: est une petite version de wirehark pour les téléphones Android). Ce programme créera un fichier * .pcap et vous pourrez lire le fichier sur PC avec Wirehark.
  • Shark Reader: Ce programme vous permet de lire le fichier * .pcap directement sur votre téléphone Android.

L'application Shark fonctionne avec les appareils enracinés. Si vous voulez l'installer, assurez-vous que votre appareil est déjà enraciné.

Bonne chance ;)

25
Martin Solac

Si vous le faites depuis l'émulateur, vous pouvez le faire comme ceci:

Courir emulator -tcpdump emulator.cap -avd my_avd pour écrire tout le trafic de l'émulateur dans un fichier local de votre PC, puis ouvrez-le dans Wirehark

Un article similaire pourrait aider ICI

16
ninjasense

Remarque: tcpdump nécessite des privilèges root, vous devrez donc rooter votre téléphone si ce n’est déjà fait. Voici un ARM binaire de tcpdump (cela fonctionne pour mon Samsung Captivate). Si vous préférez créer votre propre fichier binaire, les instructions sont ici (oui, vous devrez probablement effectuer une compilation croisée).

Découvrez également Shark For Root (un Android outil de capture de paquets basé sur tcpdump).

Je ne crois pas que tcpdump puisse surveiller le trafic par ID de processus spécifique. Le strace méthode auquel Chris Stratton fait référence semble être plus un effort que sa valeur. Il serait plus simple de surveiller des adresses IP et des ports spécifiques utilisés par le processus cible. Si cette information n'est pas connue, capturez tout le trafic pendant une période d'activité de processus, puis passez au crible le pcap résultant avec Wireshark.

7
user600838

L'outil DDMS inclus dans le Android SDK comprend un outil de surveillance du trafic réseau. Il ne fournit pas le genre de détails que vous obtenez avec tcpdump et des outils de bas niveau similaires, mais il est toujours très utile.

Documentation officielle: http://developer.Android.com/tools/debugging/ddms.html#network

3
emidander

Vous devez rooter le téléphone et effectuer une compilation croisée de tcpdump ou utiliser la version déjà compilée de quelqu'un d'autre.

Vous pourriez trouver plus facile de faire ces expériences avec l’émulateur, auquel cas vous pourriez faire la surveillance à partir du PC hôte. Si vous devez utiliser un périphérique réel, une autre option serait de le mettre sur un réseau wifi suspendu à une interface secondaire sur une boîte Linux exécutant tcpdump.

Je ne sais pas par coeur comment vous allez filtrer selon un processus spécifique. Une suggestion que j'ai trouvée dans certaines recherches rapides consiste à utiliser strace sur le processus sujet plutôt que tcpdump sur le système.

2
Chris Stratton

Sans root, vous pouvez utiliser des proxies de débogage comme Charlesproxy & Co.

2
Megachip

Pour Android Téléphones (sans racine): - vous pouvez utiliser cette application tPacketCapture Ceci capturera le trafic réseau de votre appareil lorsque vous activez la capture. Voir this url pour plus de détails sur le reniflement du réseau sans enraciner votre appareil.

Une fois que vous avez le fichier qui est dans .pcap _ vous pouvez utiliser ce fichier et analyser le trafic à l’aide de n’importe quel analyseur de trafic comme Wireshark.

Voir également ce post pour plus d’idées sur Capture du trafic de téléphones mobiles sur Wirehark

2
Kunal0615

La capture de paquets est le meilleur outil pour suivre les données du réseau sur Android. N'a besoin d'aucun accès root et facile à lire et enregistrer les appels basés sur l'application. Vérifiez this out

1
Sai Prashanth R V

Conditions préalables: adb et wireShark sont installés sur votre ordinateur et vous avez un appareil root Android.

  1. Télécharger tcpdump vers ~/Téléchargements
  2. adb Push ~/Downloads/tcpdump /sdcard/
  3. adb Shell
  4. su root
  5. mv /sdcard/tcpdump /data/local/
  6. cd /data/local/
  7. chmod +x tcpdump
  8. ./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
  9. exit
  10. exit
  11. adb pull /sdcard/dump.pcap ~/Downloads/

Vous pouvez maintenant ouvrir le fichier pcap en utilisant Wireshark.

En ce qui concerne votre question sur la surveillance de processus spécifiques, recherchez l'identifiant de l'ensemble de votre application, appelons-le com.Android.myapp

  1. ps | grep com.Android.myapp
  2. copier le premier numéro que vous voyez à partir de la sortie. Appelons-le 1234. Si vous ne voyez aucune sortie, vous devez démarrer l'application.
  3. Téléchargez strace dans ~/Téléchargements et mettez-le dans /data/local en utilisant la même procédure que pour tcpdump ci-dessus.
  4. cd /data/local
  5. ./strace -p 1234 -f -e trace=network -o /sdcard/strace.txt

Maintenant, vous pouvez regarder strace.txt pour les adresses IP et filtrer votre journal Wirehark pour ces IP.

1
Chris Woolfe

Essayez cette application https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture

Nous pouvons voir toutes les communications réseau .. même les communications cryptées SSL.

1
hkbharath

L’approche courante consiste à appeler "cat/proc/net/netstat" comme décrit ici:

statistiques du réseau Android

0
Peter Knego