Android öykünücümden gönderilen ve alınan ağ trafiğini nasıl izlerim?
Android öykünücümden gönderilen ve alınan ağ trafiğini nasıl izlerim?
Yanıtlar:
Doğrudan bir Android öykünücüsünden ağ trafiğini yakalamanın iki yolu vardır :
Emülatörde bir ARM uyumlu tcpdump ikili dosyasını kopyalayıp çalıştırın , çıktıyı SD karta yazabilirsiniz, örneğin (örneğin tcpdump -s0 -w /sdcard/emulator.cap
).
Run emulator -tcpdump emulator.cap -avd my_avd
PC'nizde yerel bir dosyaya tüm öykünücüsü'nın trafiğini yazmak için
Her iki durumda da pcap dosyasını normal olarak tcpdump veya Wireshark ile analiz edebilirsiniz.
The -tcpdump flag is not supported in QEMU2 yet and will be ignored.
uyarı eklemek -motor klasik böyle komutunuza: emulator -tcpdump emulator.cap -avd my_avd -engine classic
. Bu, kullanımdan kaldırılan öykünücü motorunu zorlar, ancak sorunu çözene kadar çalışmalıdır.
avd
bulunur?
Emülatörden gelen http isteklerini izlemek için http proxy kullanmak da mümkündür. Android trafiğini izlemek için -http-proxy
proxy (Örnek burp ) ayarlamak için yeni bir emülatör başlatırken bayrak geçirebilirsiniz . Örnek kullanım ./emulator -http-proxy localhost:8080 -avd android2.2
. Örneğimde Burp kullanıyorum ve 8080 numaralı bağlantı noktasını dinliyor. Daha fazla bilgi burada bulunabilir .
OS X için Charles'ı kullanabilirsiniz , basit ve kullanımı kolaydır.
Daha fazla bilgi için lütfen Android Emulator ve Charles Proxy blog gönderisine göz atın .
Charles
önce bilmiyorum . Ancak görebildiğim kadarıyla, HTTP'ye özgü. Ancak OP'nin sorusu değil.
Evet, wireshark çalışacak.
Aynı src IP'sinden geldiği için, yalnızca öykünücü trafiğini filtrelemenin kolay bir yolu olduğunu sanmıyorum.
Belki de en iyi yol, çok çıplak bir VMware ortamı kurmak ve sadece öykünücüyü orada çalıştırmaktır, en azından bu şekilde çok fazla arka plan trafiği olmaz.
Android emülatör trafiğini yakalamak için Wireshark'ı doğrudan kullanmak artık mümkün. Bunu mümkün kılan androiddump adlı bir extcap eklentisi var . Öykünücü üzerinde çalışan sistem görüntüsünde (çoğu güncel görüntüye sahiptir, API 24 ve API 27 görüntüleri ile test edilmiştir) ve ana bilgisayarda kök olarak çalışan (sadece çalıştırın ) bir yürütülebilir dosyaya sahip olmanız gerekir . Wireshark'taki mevcut arabirimler listesinde (yalnızca Qt sürümü, kullanımdan kaldırılmış GTK + 'da yoktur) veya gösterilen listede Bluetooth, Logcat veya Wifi trafiğini koklamaya izin veren birkaç Android arabirimi olmalıdır, örneğin:tcpdump
adbd
adb root
tshark -D
android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 emülatörü-5554)
Emülatörü komutla başlatabilirsiniz -avd Adfmf -http-proxy http://SYSTEM_IP:PORT
. HTTP Analyzer'ı kullandım, ancak başka her şey için çalışmalı. Daha fazla ayrıntı burada bulunabilir:
http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html
Http://docs.mitmproxy.org/en/stable/install.html'yi kullanabilirsiniz.
Kurulumu kolaydır ve fazladan ince ayar gerektirmez.
Çeşitli araçlardan geçtim ama gerçekten iyi ve kolay olduğunu gördüm.
mitmproxy
önce bilmiyorum . Ancak görebildiğim kadarıyla, HTTP'ye özgü. Ancak OP'nin sorusu değil.
Ağ trafiğini Android Studio'dan izleyebilirsiniz. Android Monitor'e gidin ve Ağ sekmesini açın.
http://developer.android.com/tools/debugging/ddms.html
GÜNCELLEME: ⚠️ Android Cihaz Monitörü, Android Studio 3.1'de kullanımdan kaldırıldı. Https://developer.android.com/studio/profile/monitor'da daha fazlasını görün
Wireshark'ı kullanmanızı öneririm .
Adımlar:
- Wireshark'ı kurun.
- Aramalar için kullandığınız ağ bağlantısını seçin (örneğin, kullanıyorsanız Wifi'yi seçin)
- Çok sayıda istek ve yanıt olacak, fazladan uygulamaları kapatın.
- Genellikle istekler yeşil renktedir, isteğinizi tespit ettiğinizde hedef adresini kopyalayın ve hedef adresi yazarak üstteki filtreyi
ip.dst==52.187.182.185
kullanın.
Belirli bir trafik elde etmek için burada bahsedilen diğer filtreleme tekniklerinden yararlanabilirsiniz.