Jak mogę monitorować ruch sieciowy wysyłany i odbierany z mojego emulatora Androida?
127
Istnieją dwa sposoby przechwytywania ruchu sieciowego bezpośrednio z emulatora Androida:
Skopiuj i uruchom plik binarny tcpdump zgodny z ARM na emulatorze, zapisując dane wyjściowe na karcie SD, być może (np tcpdump -s0 -w /sdcard/emulator.cap
.).
Uruchom, emulator -tcpdump emulator.cap -avd my_avd
aby zapisać cały ruch emulatora do pliku lokalnego na komputerze
W obu przypadkach możesz normalnie przeanalizować plik pcap za pomocą tcpdump lub Wireshark.
The -tcpdump flag is not supported in QEMU2 yet and will be ignored.
ostrzeżenie, dodać -engine klasyczny do polecenia jak poniżej:emulator -tcpdump emulator.cap -avd my_avd -engine classic
. Wymusi to przestarzały silnik emulatora, ale powinien działać do czasu rozwiązania problemu.avd
znajduje?Możliwe jest również użycie proxy http do monitorowania żądań http z emulatora. Możesz przekazać
-http-proxy
flagę podczas uruchamiania nowego emulatora, aby ustawić serwer proxy (przykładowe burp ) w celu monitorowania ruchu systemu Android. Przykładowe użycie./emulator -http-proxy localhost:8080 -avd android2.2
. Zauważ, że w moim przykładzie używam Burpa i nasłuchuje on portu 8080. Więcej informacji można znaleźć tutaj .źródło
W przypadku OS X możesz użyć Charlesa , jest prosty i łatwy w użyciu.
Więcej informacji można znaleźć w poście na blogu Emulator Androida i Charles Proxy .
źródło
Charles
wcześniej. Ale o ile widzę, jest to specyficzne dla HTTP. Ale pytanie OP nie jest.Bieżąca wersja Android Studio nie zastosowała poprawnie tego
-tcpdump
argumentu. Nadal mogłem przechwycić zrzut, przekazując odpowiedni parametr do qemu w następujący sposób:źródło
Tak, wireshark będzie działał.
Nie sądzę, aby istniał łatwy sposób na odfiltrowanie ruchu wyłącznie z emulatora, ponieważ pochodzi on z tego samego adresu IP src.
Być może najlepszym sposobem byłoby skonfigurowanie bardzo nagiego środowiska VMware i uruchomienie tam tylko emulatora, przynajmniej w ten sposób nie byłoby zbyt dużego ruchu w tle.
źródło
Możesz użyć programu Fiddler do monitorowania ruchu http:
http://aurir.wordpress.com/2010/03/22/tutorial-getting-android-emulator-working-with-fiddler-http-proxy-tool/
Możesz również użyć Fiddler2 tutaj .
źródło
10.0.2.2
adresem IP maszyny hosta w emulatorach Androida, nie trzeba się dowiadywać co to jest.Teraz można bezpośrednio używać Wireshark do przechwytywania ruchu emulatora Androida. Jest extcap plugin o nazwie androiddump co sprawia, że to możliwe. Musisz mieć
tcpdump
plik wykonywalny w obrazie systemu działający na emulatorze (większość obecnych obrazów ma go, przetestowany z obrazami API 24 i API 27) iadbd
działający jako root na hoście (po prostu uruchomadb root
). Na liście dostępnych interfejsów w Wireshark (tylko wersja Qt, przestarzała GTK + go nie ma) lub na liście pokazanej oboktshark -D
powinno znajdować się kilka interfejsów Androida umożliwiających podsłuchiwanie ruchu Bluetooth, Logcat, czy Wi-Fi, np .:android-wifi-tcpdump-emulator-5554 (emulator Android WiFi Android_SDK_built_for_x86-5554)
źródło
Możesz uruchomić emulator poleceniem
-avd Adfmf -http-proxy http://SYSTEM_IP:PORT
. Użyłem analizatora HTTP, ale powinno działać w czymkolwiek innym. Więcej szczegółów można znaleźć tutaj: http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.htmlźródło
Możesz użyć http://docs.mitmproxy.org/en/stable/install.html
Jest łatwy w konfiguracji i nie wymaga żadnych dodatkowych poprawek.
Korzystam z różnych narzędzi, ale okazało się, że jest to naprawdę dobre i łatwe.
źródło
mitmproxy
wcześniej. Ale o ile widzę, jest to specyficzne dla HTTP. Ale pytanie OP nie jest.Możesz monitorować ruch sieciowy z Android Studio. Przejdź do Android Monitor i otwórz zakładkę Sieć.
http://developer.android.com/tools/debugging/ddms.html
AKTUALIZACJA: ⚠️ Android Device Monitor został wycofany w Android Studio 3.1. Zobacz więcej na https://developer.android.com/studio/profile/monitor
źródło
Sugerowałbym użycie Wireshark .
Aby uzyskać określony ruch, możesz skorzystać z innych wymienionych tutaj technik filtrowania .
źródło