2011-02-25 8 views
48

Vorrei monitorare il traffico di rete del mio telefono Android. Stavo pensando di usare tcpdump per Android, ma non sono sicuro di dover eseguire una compilazione incrociata per il telefono.Monitorare l'attività di rete nei telefoni Android

Un'altra domanda è la seguente: Se voglio monitorare i dati del traffico per una determinata applicazione, c'è qualche comando per farlo?

+0

Lo squalo non viene più gestito e non funziona sulle nuove versioni di Android. Quale metodo stai usando adesso? – Arya

+0

@Arya, prova questa app https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture –

+0

@MateusGondim Grazie per questo. Sai qualcosa che posso usare per la crittografia TLS? – Arya

risposta

21

TCPDUMP è uno dei miei strumenti preferiti per l'analisi della rete, ma se trovi difficile cross-compilare tcpdump per Android, ti consiglio di utilizzare alcune applicazioni dal mercato.

Questo sono le applicazioni di cui parlavo:

  • Shark: è piccola versione di Wireshark per i telefoni Android). Questo programma creerà un * .pcap e potrai leggere con il file sul PC con wireshark.
  • Shark Reader: questo programma consente di leggere * .pcap direttamente sul proprio telefono Android.

L'app Shark funziona con dispositivi rooted, quindi se si desidera installarlo, assicurarsi che il dispositivo sia già rootato.

Buona fortuna;)

+8

Fornire un collegamento diretto per scaricare gli strumenti suggeriti. –

+0

Questi strumenti sono ancora i migliori strumenti in questo momento? –

14

Se si sta facendo dall'emulatore si può fare in questo modo:

Run emulator -tcpdump emulator.cap -avd my_avd di scrivere tutto il traffico del emulatore per un file locale sul PC e quindi aprirlo in wireshark

C'è un post simile che potrebbe essere d'aiuto HERE

2

È necessario eseguire il root del telefono e compilare cross tcpdump o utilizzare la versione già compilata di qualcun altro.

Potrebbe risultare più semplice eseguire questi esperimenti con l'emulatore, nel qual caso è possibile eseguire il monitoraggio dal PC di hosting. Se si deve usare un dispositivo reale, un'altra opzione sarebbe quella di metterlo su una rete wifi che pende da un'interfaccia secondaria su una macchina Linux in esecuzione su tcpdump.

Non so in cima alla mia testa come si farebbe sul filtraggio tramite un processo specifico. Un suggerimento che ho trovato su alcuni googling veloci è quello di usare strace sul processo oggetto invece di tcpdump sul sistema.

0

L'approccio comune è quello di chiamare "cat/proc/net/netstat", come descritto qui:

Android network stats

+1

Questo fornirà un elenco di connessioni, ma non permetterà il monitoraggio dei dati stessi. Potresti anche perdere canali senza connessioni stateful a meno che non li catturi nell'istante giusto. Anche l'uso di exec su cat non è assolutamente necessario - basta leggere/proc/net/netstat "file" in java. –

+0

Non l'ho mai provato, quindi non lo saprei per certo. La prima risposta afferma di funzionare http://stackoverflow.com/questions/3394511/measure-data-roaming-traffic-on-android –

7

Nota: tcpdump richiede i privilegi di root, quindi dovrete per sradicare il telefono se non già fatto. Ecco un ARM binary di tcpdump (questo funziona per il mio Samsung Captivate). Se si preferisce creare il proprio file binario, le istruzioni sono here (sì, è probabile che sia necessario eseguire la compilazione incrociata).

Inoltre, dai un'occhiata a Shark For Root (uno strumento di acquisizione dei pacchetti Android basato su tcpdump).

Non credo che tcpdump possa monitorare il traffico tramite un ID processo specifico. Lo strace method a cui Chris Stratton si riferisce sembra più uno sforzo del suo valore. Sarebbe più semplice monitorare specifici IP e porte utilizzate dal processo di destinazione. Se tali informazioni non sono conosciute, acquisisci tutto il traffico durante un periodo di attività di processo e quindi setaccia il pcap risultante con Wireshark.

2

per i telefoni Android (senza Root): - è possibile utilizzare questa applicazione tPacketCapture questo catturerà l'trafic rete per il dispositivo quando si abilita la cattura. Vedere this url per ulteriori dettagli sullo sniffing della rete senza il rooting del dispositivo.

Una volta ottenuto il file nel formato .pcap, è possibile utilizzare questo file e analizzare il traffico utilizzando qualsiasi analizzatore di traffico come Wireshark.

vedere anche questo post per ulteriori idee su Capturing mobile phone traffic on wireshark

2

Senza radici, è possibile utilizzare i proxy di debug come Charlesproxy & Co.

+1

Questo è vero, sto usando Charlesproxy da molto tempo e questo strumento è davvero interessante. Fornisce inoltre la limitazione e la decrittazione SSL (utilizzando la chiave personalizzata). Ma sarebbe molto più bello avere questo strumento come parte di Android Studio. –

1

Packet Capture è lo strumento migliore per tenere traccia dei dati di rete su Android. Non necessita di alcun accesso root e facile lettura e salva le chiamate in base all'applicazione. check out this