Android emülatörü: Ağ trafiği nasıl izlenir?


Yanıtlar:


104

Doğrudan bir Android öykünücüsünden ağ trafiğini yakalamanın iki yolu vardır :

  1. 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).

  2. Run emulator -tcpdump emulator.cap -avd my_avdPC'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.


Yani gerçek zamanlı / çevrimiçi değil mi? Demek istediğim, paketler ancak sonunda analiz edilebilir mi?
fikr4n

İlk durumda, bir dosyaya yazmak yerine cihazdaki stdout aracılığıyla analiz edebilirsiniz. İkinci durumda, dosyayı yazıldığı gibi aktarabilir / kuyruğa alabilirsiniz. Ya da, öykünücüden ziyade ana makinedeki ağ trafiğini yakalayabilirsiniz.
Christopher Orr

Kullandığım emülatörlerin artık tcpdump yüklü olduğunu buldum ve # 1 komutu bir tane yüklemeden çalışıyor. Ayrıca "adb -e shell tcpdump -s0 -w /sdcard/emulator.cap" ile de çalıştırabilirsiniz.
Les

2
Eğer 2 çözümü kullanmakta ve alıyorsanız 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.
lagoman

nerede avdbulunur?
user3806649

20

Emülatörden gelen http isteklerini izlemek için http proxy kullanmak da mümkündür. Android trafiğini izlemek için -http-proxyproxy (Ö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 .


2
Peki ya https trafiği
pee2pee


6

Android Studio'nun güncel bir sürümü, -tcpdumpbağımsız değişkeni doğru şekilde uygulamadı . Yine de ilgili parametreyi qemu'ya aşağıdaki gibi ileterek bir dökümü yakalayabildim:

tools/emulator -engine classic -tcpdump dump.cap -avd myAvd

5

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.


İyi bir öneri, ancak bir sanal makinenin üzerinde çalışan bir emülatör elde etmek zor. Bunu işe yaradın mı?
MikeSchem

Hangi sorunlarla karşılaştınız? Kendim yapmadım, ama herhangi bir sorun çıkacağını hayal bile edemiyorum.
Bitdivision

Benim durumumda, gönderilen istekler yeşil renkteydi, tek yaptığım diğer tarayıcıları kapatmaktı ve tatlı yeşil satırları görebildim. İsteği bulduğunuzda, hedef adresini kopyalayın ve ardından ip.dst == "kopyaladığınız ip adresini" girip yalnızca ilgili istekleri görerek filtrede kullanabilirsiniz.
Ritveak


4

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:tcpdumpadbdadb roottshark -D

android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 emülatörü-5554)



2

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.


Daha mitmproxyönce bilmiyorum . Ancak görebildiğim kadarıyla, HTTP'ye özgü. Ancak OP'nin sorusu değil.
Siu Ching Pong - Asuka Kenji -

1
Yeni Android Studio 3.0 profil oluşturucu sağlar, bunu kullanabilirsiniz. Ve mitm için her tür protokol, http, https vb. Sağlar. Sadece proxy'yi doğru şekilde yapılandırmanız gerekir.
Dhiraj Himani

Benim geliştirmediğim uygulamalardan paket yakalamak mümkün mü? Ve Nox App Player gibi bir 3. taraf emülatöründe? Teşekkürler!
Siu Ching Pong -Asuka Kenji-

1
Evet, mitm'in kendisi tarafından sağlanan mitm sertifikasını emülatörünüze / cihazınıza yüklemelisiniz ve bunu devam eden talebi ve karşılık gelen yanıtları izlemek için kullanabilirsiniz.
Dhiraj Himani

2

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


5
bağlantıdaki resimde gösterildiği gibi android studio 1.5 (windows) 'da ayrıntılı ağ kullanımı sekmesinin nereden açılacağını söyleyebilir misiniz, sadece bir grafik alıyorum ama ayrıntıları göremiyorum?
Shreyans Jain

Bu seçeneğin sınırlı bilgi verdiğini unutmayın. Android bu istek hakkında bana hiçbir şey söylemediği için bir isteğin neden reddedildiğini öğrenmek istediğimde sorunlarımı çözemedim. Fiddler burada daha uygundur.
Highriser

2

Wireshark'ı kullanmanızı öneririm .

Adımlar:

  1. Wireshark'ı kurun.
  2. Aramalar için kullandığınız ağ bağlantısını seçin (örneğin, kullanıyorsanız Wifi'yi seçin)
  3. Çok sayıda istek ve yanıt olacak, fazladan uygulamaları kapatın.
  4. 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.185kullanın.

Belirli bir trafik elde etmek için burada bahsedilen diğer filtreleme tekniklerinden yararlanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.