Android 에뮬레이터에서 송수신되는 네트워크 트래픽을 어떻게 모니터링합니까?
Android 에뮬레이터에서 송수신되는 네트워크 트래픽을 어떻게 모니터링합니까?
답변:
Android 에뮬레이터에서 직접 네트워크 트래픽을 캡처하는 방법에는 두 가지가 있습니다 .
에뮬레이터에서 ARM 호환 tcpdump 바이너리 를 복사하고 실행하여 출력을 SD 카드에 기록합니다 (예 :) tcpdump -s0 -w /sdcard/emulator.cap
.
실행 emulator -tcpdump emulator.cap -avd my_avd
하여 모든 에뮬레이터의 트래픽을 PC의 로컬 파일에 씁니다.
두 경우 모두 tcpdump 또는 Wireshark를 사용하여 pcap 파일을 정상적으로 분석 할 수 있습니다.
The -tcpdump flag is not supported in QEMU2 yet and will be ignored.
경고 가 표시되면 다음과 같이 명령에 -engine classic 을 추가 하십시오 emulator -tcpdump emulator.cap -avd my_avd -engine classic
. 이렇게하면 더 이상 사용되지 않는 에뮬레이터 엔진이 강제 실행되지만 문제가 해결 될 때까지 작동합니다.
avd
있습니까?
OS X의 경우 Charles 를 사용할 수 있으며 간단하고 사용하기 쉽습니다.
자세한 내용은 Android Emulator 및 Charles Proxy 블로그 게시물을 참조하세요.
Charles
전에 모른다 . 그러나 내가 볼 수있는 한, 그것은 HTTP에 특정한 것입니다. 그러나 OP의 질문은 아닙니다.
예, wireshark가 작동합니다.
동일한 src IP에서 오는 것이므로 에뮬레이터 트래픽 만 필터링하는 쉬운 방법은 없다고 생각합니다.
아마도 가장 좋은 방법은 VMware 환경을 설정하고 거기에서 에뮬레이터 만 실행하는 것입니다. 적어도 백그라운드 트래픽이 너무 많지 않을 것입니다.
10.0.2.2
Android 에뮬레이터에서 호스트 컴퓨터의 IP 주소 여야하며 그것이 무엇인지 알 필요가 없다고 덧붙일 것입니다.
이제 Wireshark를 직접 사용하여 Android 에뮬레이터 트래픽을 캡처 할 수 있습니다. 있습니다 extcap 라는 플러그인 androiddump 가능하게한다. tcpdump
에뮬레이터에서 실행되는 시스템 이미지에 실행 파일 이 있어야하며 (최신 이미지에는 API 24 및 API 27 이미지로 테스트 됨) adbd
호스트에서 루트로 실행 (을 실행하면됩니다 adb root
). Wireshark에서 사용 가능한 인터페이스 목록 (Qt 버전 만 해당, 더 이상 사용되지 않는 GTK +에는 없음) 또는 함께 표시된 목록에 tshark -D
Bluetooth, Logcat 또는 Wifi 트래픽을 스니핑 할 수있는 여러 Android 인터페이스가 있어야합니다. 예 :
android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 emulator-5554)
명령을 사용하여 에뮬레이터를 시작할 수 있습니다 -avd Adfmf -http-proxy http://SYSTEM_IP:PORT
. HTTP Analyzer를 사용했지만 다른 모든 작업에서 작동합니다. 자세한 내용은 http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html 에서 확인할 수 있습니다
.
http://docs.mitmproxy.org/en/stable/install.html 을 사용할 수 있습니다.
설정이 쉽고 추가 조정이 필요하지 않습니다.
나는 다양한 도구를 살펴 보았지만 그것이 정말 좋고 쉽다는 것을 알았습니다.
mitmproxy
전에 모른다 . 그러나 내가 볼 수있는 한, 그것은 HTTP에 특정한 것입니다. 그러나 OP의 질문은 아닙니다.
Android Studio에서 네트워크 트래픽을 모니터링 할 수 있습니다. Android Monitor로 이동하여 네트워크 탭을 엽니 다.
http://developer.android.com/tools/debugging/ddms.html
업데이트 : ⚠️ Android Device Monitor는 Android Studio 3.1에서 더 이상 사용되지 않습니다. https://developer.android.com/studio/profile/monitor 에서 자세히보기